Development
11.7.18

Sensornetzwerk – Was ist es und wie funktioniert es?

Was versteht man unter einem Sensornetzwerk?

Der Begriff „Netzwerk“ ist im IT-Bereich ein geläufiger Begriff. Die meisten werden dabei sofort an ein Computernetzwerk denken und es kommen schnell Begriffe wie LAN (local area network) oder WLAN (wireless local area network) dazu. Der Gedankensprung zu einem Sensornetzwerk ist dann nicht mehr groß.

Ein Sensornetzwerk ist im Grunde auch nur ein Netzwerk aus Rechnern. Nur das in diesem Fall die Rechner kleiner ausfallen und im Normalfall ihre Funktion auf das Messen und Weiterleiten von Daten (Umweltparametern etc.) beschränkt ist. Als Rechner kommen kleine Mikrokontroller mit entsprechender Sensorik und Funkchips zum Einsatz. Sie bilden die Sensorplatine bzw. ein „Sensor-Node“ – einen Sensorknoten.

Je nach Einsatzzweck sind diese unterschiedlich aufgebaut. Ein leistungsstarker oder ein stromsparender Mikrokontroller, kabelgebunden oder funkbasiert, winzig klein oder groß wie ein Schuhkarton, einfacher Temperatursensor oder komplexes Sensor-Array. Das Ziel ist es, möglichst kostengünstig ein großes Netz aufbauen zu können und flächendeckend Daten zu erfassen. Aktuell sind die Nodes jedoch noch relativ groß und teuer und noch nicht für den großen Massenmarkt tauglich.

Die Einsatzmöglichkeiten sind aufgrund dieser Vielfältigkeit riesig. Beginnend bei einem einfachen Sensornetzwerk zur Temperaturüberwachung in Gebäuden bis hin zu riesigen Sensornetzwerken zur seismologischen Überwachung an Vulkanen. In den USA werden zum Beispiel Sensornetzwerke eingesetzt, um abgeschiedene Waldflächen auf Waldbrände zu überwachen.

All diese Sensornetzwerke sind jedoch relativ ähnlich aufgebaut und setzen auf die gleichen Technologien. Auf den Aufbau und die verwendeten Technologien möchte ich nun etwas näher eingehen.

Funktionsweise eines Sensornetzwerkes

Wie der Name schon sagt, bilden die Sensor-Knoten (Nodes) ein Netzwerk. Das besondere eines Sensornetzwerkes ist jedoch die Art und Weise, wie sie dieses Netzwerk bilden.

Anders als normale Rechnernetzwerke bilden Sensornetze ein Ad-hoc-Netz. Das heißt ein Netz, welches ohne feste Infrastruktur arbeitet. Es entsteht dabei ein vermaschtes Netz, in denen die Nodes mit einem oder mehreren anderen Nodes verbunden sind. Dieser Aufbau ermöglicht es, die Daten der Nodes immer weiterzureichen, bis sie ihr Ziel erreicht haben (siehe Abbildung 1 – blaue Pfeile).

Abbildung 1: Aufbau eines Sensornetzwerkes / Bildquelle: generic.de AG

Die Datenlast verteilt sich somit vorteilhafter als zum Beispiel bei sternförmigen Netzen, welche mit zentralen Knoten arbeiten. Aufgrund des Aufbaus eines Sensorknoten sind die Ressourcen wie Rechenzeit, Energie oder Datenrate sehr begrenzt. Ein vermaschtes Netzwerk erlaubt dennoch ein weitläufiges Netzwerk aufzubauen, da der Abstand zum nächsten Knoten relativ gering ist.

In einem Sensornetzwerk konfiguriert sich das Netzwerk autonom. Das heißt, es wird keine zentrale Instanz für die Netzwerkkonfiguration benötigt. Sensorknoten können ausfallen, sich bewegen oder neue Knoten kommen hinzu. Spezielle Routingprotokolle (dazu später mehr) sorgen immer dafür, dass sich das Netz entsprechend anpasst. Die Sensoren ermitteln stetig den optimalen Weg (Route) zu den anderen Sensoren und erstellen somit eine Routingtabelle. Kriterien sind dabei unter anderem der kürzeste Weg oder die Verwendung von möglichst gering belasteten Knoten. Diese Dynamik hat Vorteile sowie Nachteile.

Der Vorteil wurde bereits erwähnt, die automatische Anpassung des Netzwerks bei Veränderungen. Das Netzwerk ist somit so gut wie ausfallsicher. Fällt ein Knoten aus, so wird der Datenfluss über einen anderen Knoten umgeleitet (siehe Abbildung 1 – grüne Pfeile). Das Sensornetzwerk ist dadurch und durch die gute Lastverteilung sehr leistungsfähig. Des Weiteren sind die Netzwerkkosten durch die dezentrale Verwaltung sehr gering.

Diese Dynamik bringt jedoch auch Nachteile. Die Leistung eines solchen Netzwerkes kann nicht vorhergesehen werden und ist stark abhängig von der Engmaschigkeit des Netzwerkes. Die Anzahl der Knoten kann sich jederzeit verändern, was eine stetige Aktualisierung der Routingtabelle erfordert. Aber auch die Übertragungszeiten, durch unterschiedliche Leitungsqualitäten schwanken sehr. Wie gut ist die Verbindung zwischen den Knoten? Sind Wände dazwischen? Einflüsse, welche nicht vorhersehbar sind. Des Weiteren wird ein vergleichsweises komplexes Routing benötigt. Jeder Knoten muss wissen, wie er seinen Zielknoten erreicht. Um ein möglichst ausfallsicheres Netzwerk zu bekommen, müssen zudem möglichst viele Sensorknoten im Betrieb sein und dürfen nicht in den Standby gehen. Dies ist jedoch bei batteriebetriebenen Sensorknoten oft erwünscht. Man muss sich also Gedanken über sogenannte „always-on-Nodes“ machen, welche den Datenfluss aufrecht halten.

Um mit anderen Netzwerken kommunizieren zu können, gibt es ein Gateway (Parent-Node, siehe blauer Knoten in Abbildung 1), welches als Bindeglied zwischen dem Sensornetzwerk und zum Beispiel eines normalen local-area-network (LAN) fungiert. Dies ermöglicht das weitere Verarbeiten von Sensordaten auf extra Servern oder auf cloudbasierten Plattformen. Eine Verarbeitung oder sonstige Logik sollten im eigentlich Sensornetzwerk vermieden werden, da hier die Leistung oft begrenzt ist.

Dieser Beitrag ist noch relativ allgemein gehalten und hat auf das allgemeine Verständnis eines Sensornetzwerkes beschäftigt. Im zweiten Teil wollen wir dann einen Einblick unter die Haube machen und näher auf die verwendeten Technologien und Protokolle eines Sensornetzwerkes eingehen.

Anforderungen und Technologien

Welche Anforderungen hat ein Sensornetzwerk?

  • Limitierter Speicher
  • Automatische Adressgenerierung
  • Großer Adressenbereich –> große Anzahl an Knoten
  • Automatisches Routing
  • Geringer Paket-Overhead
  • Unkompliziert und robust –> Ressourcenschonend
  • Nahtloses Routing –> bewegliche Knoten, Knotenfluktuation
  • Stromsparend

Welche Technologien kommen zum Einsatz?

Damit diese Anforderungen optimal erfüllt werden, laufen einige Technologien / Protokolle im Hintergrund:

  • IEEE 802.15.4 (physical layer, data link layer)
  • IPv6 / 6loWPAN (network layer)
  • RPL (network layer)
  • UDP (transport layer)
  • CoAP (application layer)

IEEE 802.15.4

IEEE 802.15.4 beschreibt den Standard für ein Übertragungsprotokoll, welches extra für funkbasierte (Sensor-)Netzwerke definiert wurde. In dem Standard sind die beiden untersten Schichten des OSI-Modells beschrieben. Es wurde bei der Entwicklung des Protokolls auf die besonderen Anforderungen eines Sensornetzwerkes geachtet:

  • Geringe Leistungsaufnahme
  • Preiswerte Hardware
  • Nutzung der ISM-Bänder (ohne Lizenz nutzbar)

Eine weitere Besonderheit des Protokolls ist der Einsatz von zwei unterschiedlichen Netzknoten mit einem jeweils unterschiedlichen Funktionsumfang. Zum einen die RFD (Reduced Funktion Devices) und zum anderen die FFD (Full Funktion Devices).  Wie der Name schon sagt, besitzen die RFD einen abgespeckten Funktionsumfang. Dadurch können sie nur mit FFDs kommunizieren, da sie selber keine Verwaltungsfunktionen innehaben. Der Vorteil des geringeren Funktionsumfanges ist die kostengünstigere Entwicklung und der geringere Energiebedarf. Sie eignen sich deswegen optimal für Sensorknoten. Die FFDs hingegen verfügen über den vollen Funktionsumfang und dienen deswegen oft als Verwaltungsknoten oder Gateway. Ein FFD kann zusätzlich die Funktion eines PAN-Koordinators übernehmen und legt somit den PAN-Identifier fest, um das Netzwerk von anderen IEEE-802.15.4-Netzwerken abzugrenzen.

In dem von uns aufgebauten Sensornetzwerk übernimmt später der Border-Router diese Funktion. Die einzelnen Sensorknoten fungieren als RFD, dazu in späteren Beiträgen mehr.

IPv6 / 6loWPAN

6loWPAN steht für „IPv6 over low power Wireless Personal Area Network” und ist ein Kommunikationsprotokoll für eine energiesparende Funkübertragung über IPv6 in einem IEEE-802.15.4 basiertem Netzwerk.

6loWPAN ist auf überwiegend auf dem network-layer tätig und übernimmt die Aufgaben der Header-Komprimierung, die Paket-Fragmentierung und Defragmentierung, sowie das Routing.

Eine wichtige Aufgabe ist vor allem die Header-Komprimierung. Je kleiner der Header, desto weniger muss übertragen werden und desto energiesparender ist es. Ein weiterer Grund der Komprimierung ist der, dass bei der Verwendung des normalen IPv6-Overheads nur 33 Bytes für die Daten zur Verfügung stehen würden:

Die MTU (maximum transmission unit) bei 802.15.4-Netzwerken ist 127 Bytes groß. Bei einem maximalen Frame Overhead bei IEEE-802.15.4 von 25 Bytes und einem zusätzlichen Header für Sicherheitsfunktionen von 21 Bytes bleiben nach dem IP-Header (40 Bytes) und dem UDP-Header (8-Bytes) nur noch 33 Bytes für Daten. Das ist eindeutig zu wenig. Mal davon abgesehen, dass IPv6 eine MTU von 1280 Bytes erfordert.

Bei der Header-Komprimierung geht man davon aus, dass die IPv6-Adresse der Knoten aus einem identischen 64-Bit-Präfix für das Subnetz und aus einem 64-Bit-Suffix besteht, welcher identisch mit der MAC-Adresse des Knoten ist. Werden nun Pakete nur über einen Hop (Knoten) transportiert, so ist das Suffix der Zieladresse identisch mit dessen MAC-Adresse und der Suffix des Senders identisch mit dessen MAC-Adresse und können somit weggelassen werden. Verwendet man nur die Link-Local-Adresse, so kann sogar der Präfix weggelassen werden.

Um das Problem der kleineren MTU-Größe zu umgehen, setzt man eine Paketfragmentierung und -defragmentierung ein, um so virtuell einen MTU-Größe von 1280 Bytes zu generieren.

RPL

RPL steht für „Routing Protocol for Low power and Lossy Networks” und ist ein Routingprotokoll für drahtlose Sensornetzwerke. Das Protokoll setzt komplett auf IPv6 und erfüllt die oben genannten Bedingungen an das Routing optimal. Eine Beschreibung des Protokolls findet ihr in meinem Blogbeitrag.

UDP

UDP steht für „User Datagram Protocol“ und ist ein minimales und verbindungsloses Netzwerkprotokoll. Das heißt, es muss keine extra Verbindung zwischen dem Sender und Empfänger aufgebaut werden. Der Nachteil ist der, dass nicht mit Sicherheit gesagt werden kann, dass ein Paket beim Empfänger ankommt. Des Weiteren kann nicht gesagt werden, ob die Daten unverfälscht sind oder ob sie auch von Dritten empfangen wurden. Der Vorteil der verbindungslosen Übertragung ist aber der schnellere Beginn der Datenübertragung, welcher vor allem bei kleinen Datenpaketen vom Vorteil ist.

Die Zuordnung der Daten auf der Empfangsseite erfolgt über Ports. Eine UDP-Übertragung muss also immer den Ziel-Port mit übertragen. Der UDP-Header besteht deswegen aus vier Datenfeldern mit je 16 Bits: Quell- und Zielport, Länge und Prüfsumme.

CoAP

CoAP steht für „Constrained Application Protocol” und ist ein Nachrichten-Protokoll, welches auf REST aufbaut. Wie der Name aber schon sagt in einer abgespeckten Version, da das volle REST-Protokoll noch nicht leichtgewichtig genug ist für Mikrocontroller.

CoAP führt zusätzlich eine OBSERVE und DISCOVER-Funktion ein und baut anstelle von HTTP/TCP auf UDP auf. Dies führt aufgrund des nachrichtenorientierten Ansatzes von CoAP zu einer Performancesteigerung.

Wer mehr Infos zu CoAP haben möchte, dem empfehle ich den Beitrag von Heise zum Thema „RESTful mit CoAP“.

In dem von mir aufgebauten Sensornetzwerk kommt ebenfalls CoAP zum Einsatz. Dank diverser Implementierungen für Riot OS lassen sich somit schnell und unkompliziert Nachrichten zwischen den Knoten versenden. Mehr Infos zum Thema CoAP mit Riot OS findet ihr in meinem späteren Beitrag, wenn es um das verwendete C-Programm geht.

Fazit

Im Grunde baut ein Sensornetzwerk auf die gleichen Protokolle wie ein normales Netzwerk auf. Nur das die Protokolle entsprechend ihres Einsatzzweckes angepasst oder erweitert wurden. Sei es das optimierte Übertragungsprotokoll IEEE-802.15.4 oder das energiesparendere 6loWPAN. Aber dank diesen speziellen Technologien, lässt sich ein Sensornetzwerk sinnvoll betreiben ohne auf den Komfort der bekannten Technologien zu verzichten.

Wie können wir Sie beraten?
Telefon
Online Beratung
Kontaktanfrage
Hotline
Wir freuen uns auf Ihren Anfruf
+49 (0) 721-619096-0
+49 (0) 721-619096-19
Für Sie erreichbar von
Mo bis Fr 8-16 Uhr
Online Beratung
Buchen Sie online einen für Sie passenden Termin
Wir freuen uns auf Ihre Nachricht
Wenn Du wissen möchtest, welche Daten wir ver­ar­beiten und wie lange wir diese speichern, findest du weiter­führende Infor­mationen in unserer Daten­schutz­erklärung.
Vielen Dank! Ihre Kontaktanfrage wurde von uns empfangen!
Oh nein! Irgendwas ist schiefgelaufen. Probieren Sie es bitte noch einmal!
Kontakt