Ein Mesh-Netzwerk – das wohl bekannteste Beispiel ist das intelligente Beleuchtungssystem Philips Hue – ist ein Netzwerk von Geräten, die miteinander verbunden sind und bei denen jedes Gerät Daten zwischen anderen Geräten im Netzwerk senden um empfangen kann. Die Geräte, die auch als Netzknoten bezeichnet werden, können Daten effizient entweder zwischen zwei Knoten oder zu einem Gateway weiterleiten und so eine Cloud-Verbindung, Edge-Computing oder die Verarbeitung durch eine Anwendungssoftware ermöglichen. Typische Anwendungen sind drahtlose Sensornetzwerke für Installationen in der Haus- und Gebäudeautomation (HBA), der Industrieautomation, Alarm- und Sicherheitssysteme, Verfolgung von Einrichtungsgegenständen in Innenräumen und Überwachung von Land- und Forstwirtschaft, um nur einige zu nennen.
Wie Mesh-Netzwerke funktionieren
Ein Knoten empfängt entweder Daten, die für ihn bestimmt sind, oder er erfasst und sendet Daten. In einem Mesh-Netzwerk kann ein Knoten einen nahegelegenen Knoten als Repeater nutzen, um Daten an einen weiter entfernten Knoten weiterzuleiten. Daher muss ein Quellknoten nicht in direktem Kontakt mit dem Endknoten stehen, an den er Daten senden will – andere Knoten zwischen der Quelle und dem Zielknoten können zur Weiterleitung der Daten genutzt werden. Der Vorteil dieses Ansatzes liegt auf der Hand: Die Reichweite des Netzes lässt sich einfach durch Hinzufügen zusätzlicher Knoten erweitern.
In einem herkömmlichen Mesh-Netz ist ein Koordinator erforderlich, um zu organisieren, welche Knoten Nachbarn sind. Wenn ein Knoten hinzukommt oder ausfällt, müssen diese Beziehungen neu konfiguriert werden, um „tote“ Knoten zu entfernen und sicherzustellen, dass alle benachbarten Beziehungen aus „lebenden“ Knoten bestehen. In einer solchen hierarchischen Netztopologie ist der Koordinator für die Funktionsfähigkeit des gesamten Netzwerks von entscheidender Bedeutung.
Sobald die Nachbarschaftsbeziehungen hergestellt sind, ist ein Algorithmus erforderlich, um den Routing-Plan zu bestimmen, der in einer Routing-Tabelle gespeichert wird. Verschiedene Protokolle verfolgen unterschiedliche Ansätze. Z-Wave zum Beispiel verwendet den Koordinator, um eine Routing-Tabelle zu erstellen, die den Knotenpfad von der Quelle zum Ziel auflistet. Zigbee hingegen verwendet ein Ad-hoc-On-Demand-Distance-Vector-Routing (AODV), das das Netz mit Routing-Anfragen überflutet. Sobald der Zielknoten eine Anfrage erhält, wählt er die beste Route aus und sendet diese Information als Eintrag in die Routing-Tabelle an den Quellknoten zurück.
Ein herkömmliches Mesh-Netz besteht also aus Knoten mit unterschiedlichen Rollen – Endknoten, Koordinator oder Routerknoten (Bild 1).
NeoMesh im Detail
Im Gegensatz dazu basiert NeoMesh von NeoCortec auf einem dezentralen Ansatz, bei dem es keine unterschiedlichen Knotentypen gibt (Bild 2). In NeoMesh sind alle Knoten selbstverwaltet und dadurch nicht von einem Koordinator abhängig. Alle Knoten fungieren als Router, und keiner hat eine besonders kritische Aufgabe; es gibt daher keinen Koordinator-Knoten, der bei einem Ausfall das gesamte Netz lahmlegen würde.
Im NeoMesh-Protokoll ist die Routing-Tabelle anders aufgebaut. Jeder Knoten knüpft gegenseitige Beziehungen mit bis zu sechs Nachbarn. Wenn ein Knoten eine Nachricht empfängt, weiß er nur, an welchen seiner Nachbarn er die Nachricht weiterleiten soll, er kennt nicht die gesamte Route. In der Routing-Tabelle ist daher nur aufgelistet, an welchen der Nachbarknoten das Signal zu senden ist. Nur der nächste „Hop“ ist dem Knoten bekannt. Darüber hinaus gibt es dynamische Variablen, die den nächsten Hop beeinflussen, so dass die Route im laufenden Betrieb generiert wird. Mehrere Nachrichten zwischen denselben zwei Knoten nehmen dabei nicht unbedingt alle denselben Weg.
Mit diesem Ansatz entfällt zwar die Rolle des Koordinators und das Netz wird robuster, aber die Herausforderung besteht darin, den Stromverbrauch so gering wie möglich zu halten, damit ein jahrelanger Betrieb mit kleinen Batterien möglich ist. Um dieses Energieproblem zu lösen, arbeitet NeoMesh mit einer sehr präzisen Zeitsynchronisation zwischen den Knoten, die es diesen ermöglicht, effizient zu „schlafen“ und „aufzuwachen“.
Die meiste Zeit schlafen die Knoten und ihre Funkverbindung – der Teil des Moduls, der den meisten Strom verbraucht – ist inaktiv. In regelmäßigen Abständen wachen die Knoten jedoch auf, um auf Nachrichten zu warten und gegebenenfalls Nachrichten zu senden, bevor sie wieder in den Ruhezustand übergehen. Dies ist nur möglich, wenn alle Knoten miteinander synchronisiert sind, so dass sie zur gleichen Zeit aufwachen. Dieser Ansatz führt zu einem durchschnittlichen Stromverbrauch von typischerweise nur einigen zig Mikroampere, was einen batteriebetriebenen Betrieb ermöglicht, was für den Einsatz vor Ort entscheidend sein kann.
Auswahl der passenden Netzwerktechnologie
Bei der Entwicklung eines Mesh-Netzes ist zu bedenken, dass die jeweilige Anwendung viele Designparameter beeinflusst. Der Zugang zum Stromnetz, die Latenzzeit, die Wahl der Frequenzbänder und viele andere Parameter beeinflussen die Wahl der Netztopologie, und es können Kompromisse erforderlich sein. Kurze Latenzzeiten stehen oft im Widerspruch zu niedrigem Stromverbrauch. Ein geringer Stromverbrauch kann mit dem hohen Verkehrsaufkommen, wie es für hierarchische Netze typisch ist, in Konflikt geraten. Die Größe des Netzes steht oft im Widerspruch zu all diesen Faktoren.
Einer der Gründe für den Erfolg des Philips Hue-Systems ist, dass die Latenzzeit sehr kurz ist. Da die Router-Knoten (in diesem Fall Leuchten) ständig auf Übertragungen von Nachbarknoten lauschen, kann jede Nutzlast sofort gesendet oder weitergeleitet werden. Dazu müssen die Knoten ständig wach sein, was einen hohen Stromverbrauch und damit einen Netzanschluss erfordert. Bei Philips Hue ist das kein Problem, da die Leuchten ohnehin ans Stromnetz angeschlossen sind. Ein solches Protokoll eignet sich jedoch nicht für Anwendungen wie die Überwachung von Klimaanlagen oder Feuermeldesystemen in Privathaushalten, wo eine große Reichweite erforderlich ist und die Router-Knoten mit Batterien betrieben werden müssen.
Warum NeoMesh wählen?
Um die Leistung eines Mesh-Netzwerkes zu optimieren, muss der Entwickler Faktoren wie Latenz, Netzreichweite, Datenmenge, Stromversorgung, Netzwerkgröße, Zuverlässigkeit und Sicherheit berücksichtigen, wobei es keine einheitliche Lösung für alle Anwendungsfälle gibt. Der Schwerpunkt von NeoMesh liegt auf Zuverlässigkeit, Skalierbarkeit und geringen Stromverbrauch, so dass auf einfache Weise große Netzwerke realisierbar sind, die jahrelang mit AA-Batterien betrieben werden können und sich bei einem Ausfall eines Knotens selbst reparieren.
Design-Parameter Latenz
Typischerweise hängt die Latenz von der Netztiefe ab, d. h. von der Anzahl der „Node-Hops“, die die Nachricht durchlaufen muss. Bei Netzen, die eine kurze Latenzzeit erfordern, sollte es den Knoten gestattet sein, Nachrichten unmittelbar nach Erhalt einer weiterzuleitenden Nachricht zu senden, was in den meisten Fällen bedeutet, dass diese zu unvorhersehbaren Zeiten gesendet werden. Dies erfordert, dass der empfangende Knoten ständig lauschen muss, was zu einem höheren Stromverbrauch führt. Wenn die Knoten nicht – wie im Beispiel von Philips Hue – am Stromnetz betrieben werden, verkürzt sich dadurch die Batterielaufzeit erheblich.
Der alternative Ansatz besteht darin, die Knoten in den Ruhezustand zu versetzen und sie in geplanten Zeitabständen aufzuwecken, um während einer geplanten Datenübertragungsperiode zu senden und zu empfangen. Dies bedeutet, dass die Latenzzeit sowohl von der geplanten Datenübertragungsperiode als auch von der Netztiefe abhängt. Da die Latenzzeit bei NeoMesh in der Regel die Hälfte der geplanten Datenübertragungsperiode, multipliziert mit der Anzahl der Hops, beträgt, wird NeoMesh niemals die bevorzugte Wahl sein, wenn es vorzugsweise um kurze Latenzzeiten geht.
Netzreichweite und regulatorische Beschränkungen
Die meisten Mesh-Netzwerke nutzen die lizenzfreien ISM-Bänder bei 868 MHz, 915 MHz und 2,4 GHz. Obwohl diese Bänder lizenzfrei sind, unterliegen sie lokalen regulatorischen Anforderungen, die die Performance begrenzen – hierzu zählen beispielsweise Beschränkungen hinsichtlich der Signalstärke, der Kanalbandbreite und des Sendesignal-Tastverhältnisses. Mit Arbeitsfrequenzen im Sub-GHz-Bereich lassen sich im Vergleich zu 2,4 GHz größere Reichweite erzielen. Andererseits gibt es im 2,4-GHz-Band keine Tastverhältnis-Beschränkungen, so dass potenziell mehr Daten pro Zeiteinheit übertragbar sind; außerdem gibt es hier weniger länderspezifische regulatorische Anforderungen, so dass ein und das derselbe Knotengerätemodell weltweit zum Einsatz kommen kann. NeoCortec bietet NeoMesh-Module mit Arbeitsfrequenzen von 868 MHz, 915 MHz und 2,4 GHz an (Bild 3).
Designparameter Datenmenge
Die meisten Mesh-Netzwerke – außer solchen, die auf Wi-Fi basieren – sind für die Übertragung begrenzter Datenmengen ausgelegt. In der Regel sind die Nachrichten kurz und die Begrenzung des Tastverhältnisses verhindert möglicherweise die Übertragung größerer Datenmengen. Ein weiterer zu berücksichtigender Aspekt ist der lokale Datenverkehr über einen bestimmten Knoten. Je mehr Verkehr ein Knoten weiterleiten muss, desto längere Warteschlangen sind zu erwarten. Bei diesem lokalen Datenverkehr kann es sich nicht nur um die Nachricht selbst handeln, sondern auch um Netzwerk-Overhead wie Routing-Tabellen, Bestätigungsnachrichten usw.
NeoMesh ist für einen geringen Overhead-Datenverkehr konzipiert. Es werden nur sehr wenige Overhead-Daten über das Netz gesendet, und da sich die von einer Nachricht gewählte Route dynamisch ändert, kommt es zu einem natürlichen Lastausgleich unter den Knoten.
Designparameter Stromversorgung
Je häufiger ein Mesh-Knoten senden muss, desto höher ist sein Stromverbrauch. Wenn ein Router-Knoten eine Menge Datenverkehr weiterleiten muss, hat dieser Knoten einen höheren Stromverbrauch als Nicht-Router-Knoten. Dies kann die Batterielaufzeit verkürzen oder den Anschluss an das Stromnetz erforderlich machen. Für NeoMesh ist dies kein Problem, da die Nachricht entweder in eine Warteschlange gestellt wird oder einen alternativen Weg findet, was allerdings eine längere Latenzzeit zur Folge haben kann.
Netzwerkgröße und Topologie-Änderungen
In einer hierarchischen Netzstruktur müssen neue Routing-Tabellen erstellt werden, wenn sich die Topologie ändert oder wenn eine bestehende Route nicht mehr funktioniert. Vor dem Senden einer Nachricht muss ein Quellknoten die Route abfragen und auf die Antwort warten. Neben dem zusätzlichen Datenverkehr wird die Komplexität der Routing-Tabellen mit der Anzahl der Hops, die eine Nachricht machen kann, schnell ansteigen, was einen hohen Verarbeitungsaufwand, mehr Datenverkehr und größere Routing-Tabellen erfordert. Dadurch wird die Anzahl der Knoten, die das Netz praktisch handhaben kann, begrenzt, und Topologieänderungen werden schnell zu einem Problem.
Bei NeoMesh gibt es dieses Problem nicht. Es gibt keine Routing-Tabellen für das gesamte Netz; das Routing wird an jedem Knotenpunkt bei der Übertragung der Nachricht eingerichtet. Zudem ist das Netzwerk selbstheilend. Der Datenverkehr lässt sich leicht tote Knoten herumleiten, da mehrere Pfade verfügbar sind. Dieses dynamische Routing ermöglicht auch die Verlegung von Knoten an andere Standorte, ohne den Verkehr zu unterbrechen. Dieser Ansatz wird Speed Routing genannt und ist für NeoCortec patentiert.
Da keine komplexen Routing-Tabellen gepflegt werden müssen und kein Overhead an Routing-Informationen anfällt, ist NeoMesh auch hoch skalierbar. Theoretisch sind NeoMesh-Netze mit bis zu 65.000 Knoten möglich, die typische Netzgröße liegt allerdings aus praktischen Gründen bei einigen tausend Knoten.
Zuverlässigkeit des Netzes
Die gesamte Kommunikation von Knoten zu Knoten erfolgt über einen lokalen Handshake. Wenn eine Nachricht mit der Aufforderung zur Bestätigung gesendet und vom Ziel empfangen wird, wird eine Bestätigungsnachricht an die Quelle zurückgesendet. Wird die Bestätigung nicht innerhalb einer vorgegebenen Zeit empfangen, sendet der Quellknoten die Nachricht mehrmals erneut.
Bestätigte Nachrichten sind in Anwendungen nützlich, in denen jede Nachricht wichtig ist, aber sie erhöhen das Verkehrsaufkommen. Der Verzicht auf Nachrichtenbestätigungen empfiehlt sich für Netze, in denen häufig Daten ausgetauscht werden, oder für Netze mit einer sehr dynamischen Topologie.
Eine häufige Ursache für Nachrichtenverluste ist, dass das verwendete Frequenzband durch ein anderes Gerät blockiert oder durch Rauschen dominiert wird. Bei NeoMesh wird dies entweder durch erneutes Senden der Nachricht – an denselben oder einen anderen Nachbarn – oder durch einen Frequenzwechsel auf ein anderes, nicht blockiertes Band – gelöst. Bei NeoMesh besteht die Hoppingliste aus 15 logischen Kanälen, von denen jeder einer physikalischen Funkfrequenz zugeordnet werden kann. Dadurch kann das Netz so konfiguriert werden, dass es eine beliebige Anzahl von Funkkanälen verwendet, die entweder gleichmäßig über das Frequenzband verteilt oder in Abschnitten gruppiert sind, um bestimmte Teile des Bandes zu vermeiden.
Netzwerksicherheit und –erweiterung
Um unbefugten Zugriff zu verhindern, sind die Nachrichten in NeoMesh mit AES128 oder ähnlichem verschlüsselt. Darüber hinaus bietet NeoMesh eine zusätzliche Sicherheitsebene in Form einer Challenge/Response-Authentifizierung zwischen Quell- und Zielknoten. Jeder Nachrichtenaustausch wird durch eine spezifische Challenge und die dazugehörige Response autorisiert. Neue Knoten zu einem Netz hinzuzufügen, sollte schnell und einfach machbar sein. NeoMesh ermöglicht es, unkonfigurierte Module/Knoten über Funk zu einem bestehenden Netzwerk hinzuzufügen. Dazu wird ein bereits vorhandener Netzknoten als WES-Server eingerichtet. (na)