Ein Sensornetz (von englisch sensor network) ist ein Rechnernetz aus Kleinst-Computern, sogenannten Sensorknoten, die mit Sensoren ausgestattet sind und durch Zusammenarbeit eine gemeinsame Aufgabe bewältigen.
Die zunehmende Miniaturisierung von Computern führte zu der Idee, extrem kleine, kostengünstige und autonome Sensorknoten zu entwickeln, die drahtlos miteinander kommunizieren und sich selbständig organisieren. Diese werden dann in großer Zahl und in einem großen Gebiet ausgebracht und überwachen ihre Umgebung solange, bis ihre Energiereserven erschöpft sind. Die Attribute „klein“, „billig“, „in großer Zahl verfügbar“ und „autonom“ haben die Idee unter dem Schlagwort smart dust („intelligenter Staub“) bekannt gemacht.
Sensornetze sind ein aktuelles und bislang größtenteils theoretisches Forschungsgebiet an verschiedenen Universitäten (siehe auch Weblinks). Es gibt zwar Prototypen für Sensorknoten und einzelne großflächige Anwendungen zu Demonstrations- und Forschungszwecken, jedoch wurde bisher kein Sensornetz zur praktischen Verwendung installiert. Das bis dato größte funktionierende Sensornetzwerk wurde kurzzeitig am 27. August 2001 an der Universität Berkeley in Betrieb genommen und bestand aus 800 Knoten [Largest Tiny Network Yet - Large-Scale Demonstration of Self-Organizing Wireless Sensor Networks Ausgewertet am 26. Januar 2006.]. Einige autarke Hardware-Systeme haben sich als besonders vielseitig einsetzbar erwiesen, zum Beispiel Berkeley Motes[J. Hill, D. Culler: A Wireless Embedded Sensor Architecture for System-Level Optimization 2001], Pico-Radio[J. Rabaey, J. Ammer, J. L. da Silva Jr., D. Patel: PicoRadio: Ad-hoc Wireless Networking of Ubiquitous Low-Energy Sensor/Monitor Nodes 2000], Smart-Dust[J. M. Kahn, R. H. Katz, K. S. J. Pister: Next Century Challenges: Mobile Networking for "Smart Dust" 1999] und WINS''[G. Asada, M. Dong, T. S. Lin, F. Newberg, G. Pottie, W. J. Kaiser: Wireless Integrated Network Sensors: Low Power Systems on a Chip 1998].
Geschichte
Die Entwicklungsgeschichte der Sensornetze geht größtenteils auf militärische Initiativen zurück. Es ist nicht immer möglich, die Ursprünge detailliert anzugeben, da einige Informationen als geheim eingestuft sind. Wahrscheinlich wird auch heute noch geheime Forschung im Zuge militärischer Überwachungstechnik betrieben.
Als Vorläufer der modernen Sensornetze gilt SOSUS, ein während des Kalten Krieges von den USA installiertes Netzwerk von Unterwasserbojen, das mittels Schallsensoren U-Boote aufspüren kann.
Um 1980 begann die Forschung zu modernen Sensornetzen im Rahmen des Projektes Distributed Sensor Networks (DSN) der US-amerikanischen Militäragentur Defense Advanced Research Projects Agency (DARPA).
Anwendungsgebiete
Sensornetze sind in vielen Anwendungsbereichen denkbar. Sie könnten beispielsweise als preiswerte Alternative zu klassischen Sensoranordnungen dienen, wie sie etwa bei Testfahrten der Fahrzeugindustrie eingesetzt werden. Denkbar ist, dass tausende von Sensorknoten in einem Gebiet von Interesse oder innerhalb eines Objektes platziert werden und
pervasive Ad-hoc-Netzwerke bilden, die eine Überwachung komplexer physikalischer Systeme gestatten. Somit würden sich Sensornetze besonders zur Überwachung großer Flächen eignen:
Waldbrand.jpg]]
- Umweltschutz durch Messung von Schadstoffkonzentrationen in Gewässern
- Katastrophenschutz
- zum Beispiel durch frühzeitige Detektion von Waldbränden durch großflächige Temperaturmessung
- oder die Überwachung des Bodenparameters Feuchtigkeit zur Frühwarnung der Bevölkerung vor etwa Hangrutschungen
- Tierbeobachtung mit Hilfe von Bewegungssensoren
- Gebäude- oder Geländesicherung durch Detektion von Geräuschen
Sensornetzwerke übernehmen hauptsächlich Überwachungs- und Kontrollfunktion, falls die Knoten aber zusätzlich mit Aktoren ausgestattet sind, können sie auch Steuerungsaufgaben übernehmen. Die dafür benötigte Hardware steht aber bislang im Gegensatz zur erforderlichen Kleinheit der Knoten.
Anforderungen
Sensornetze zeichnen sich durch ein zeitlich unvorhersagbares, dynamisches Verhalten aus. Das Platzieren von zusätzlichen Knoten in einem bestehenden drahtlosen Sensornetz ist vorstellbar. Dies ist nötig, wenn die geforderte Funktionalität durch zu hohen Knotenausfall nicht mehr gewährleistet werden kann oder wenn zusätzliche Knoten eine Netzregion verstärken sollen, weil der Bedarf an genaueren Messergebnissen dort zugenommen hat.
Für Sensorknoten stellen sich hauptsächlich die folgenden spezifischen Probleme:
- Energie: Da Sensorknoten mit heute verfügbaren Batterien nur eine sehr begrenzte Lebensdauer haben, müssen alle Vorgänge darauf abzielen, Energiereserven sparsam zu haushalten. Zudem ist der Energieverbrauch der Knoten nicht immer gleichmäßig. Beispielsweise müssen Knoten im Inneren einer Topologie neben ihren Messungen und Berechnungen ggf. das Routing mitübernehmen. Sehr rechenintensive Aufgaben sind deshalb nicht durchführbar.
- Kommunikation: Geeignete Kommunikationsmittel wie Funk, Schall oder Licht müssen auf Verwendbarkeit untersucht und bezüglich Größe, Preis und Energieverbrauch optimiert werden.
- Rechenleistung: Um den Energieverbrauch zu minimieren, werden schwache Prozessoreinheiten in Verbindung mit kleiner Speicherkapazität eingesetzt. Dies kann zu Engpässen führen und muss stets beachtet werden.
- Größe: Heutige Prototypen sind etwa so groß wie ein Handteller, wünschenswert wäre eine Größe, die höchstens im Bereich eines Fingernagels liegt. Das Ziel tatsächlich nur staubkorngroße Sensorknoten herzustellen, dürfte auf absehbare Zeit nicht im Bereich des Möglichen liegen.
- Preis: Heutige Prototypen sind durch hohe Entwicklungskosten und geringe Produktionsmengen mit einem Preis von über 100 € deutlich zu teuer, um sinnvoll einsetzbar zu sein; die technische Ausstattung rechtfertigt den hohen Preis allerdings nicht. Für sinnvollen und großflächigen Einsatz wünschenswert wäre ein Preis von ca. 2 €.
- Ökologische Abbaubarkeit: Sensorknoten, die in einer natürlichen Umgebung ausgebracht werden, sollten nach Ablauf ihrer Lebensdauer vollständig biologisch abbaubar sein. Dazu ist die Erfindung und langwierige Entwicklung neuer Werkstoffe vonnöten, weshalb diese Problematik bei der aktuellen Forschungsarbeit vorerst weitgehend ignoriert wird.
Hardware
Das Kernstück eines Sensorknotens ist sein
Prozessor mit dem zugehörigem
Speicher (meist ein
Flash-Speicher), die über eine
Batterie mit Energie versorgt werden. Dazu kommt einerseits die sensorische Ausstattung, also einer oder mehrere passive Sensoren, und andererseits die kommunikative Ausstattung. In der Regel ist dazu eine
Funkeinheit vorhanden, aber es kommen auch drahtgebundene Sensornetze vor. Darüber hinaus verfügen Sensorknoten über eine
Multiplex-Einheit sowie über ein System für die Datenanalyse.
Da Sensorknoten im Allgemeinen nach dem Ausbringen nicht mehr gewartet werden können, liegt bei ihrer Konstruktion besonderes Augenmerk auf einer möglichst langen Lebensdauer. Die Leistungsaufnahme eines Knotens muss also so gering wie möglich gehalten werden.
- Sensoren. Ein Sensorknoten ist mit mindestens einem Sensor ausgestattet, kann jedoch durchaus auch über mehrere verschiedene Sensoren verfügen. Verfügen alle Sensorknoten über dieselbe sensorische Ausstattung, spricht man von einem homogenen Sensornetz, ansonsten von einem heterogenen Sensornetz.
- Kommunikation. Knoten kommunizieren über ein bestimmtes (Kommunikations-)Medium, das über eine Kommunikationseinheit angesprochen wird, die entweder sendebereit oder empfangsbereit sein kann und für das Umschalten zwischen diesen Zuständen meist eine (kurze) Zeitspanne benötigt. Abhängig von Medium und Kommunikationseinheit kann ein Sensor über CSMA (Carrier Senses Multiple Access) verfügen, d. h. er kann ausfindig machen, ob das Medium gerade belegt ist oder nicht.
- Energieversorgung. Sensorknoten sind im allgemeinen mit einer Batterie ausgestattet, manchmal auch mit einer Ausrüstung zum Wiederaufladen, z. B. durch Photovoltaik. Die Stromversorgung über Kabel ist möglich, für den praktischen Einsatz aber meist nicht erwünscht.
- Tagesablauf. Um Energie zu sparen sehen viele Protokolle zwei Grundzustände eines Sensorknotens vor: Eine Wachphase in der Berechnungen durchgeführt werden und die Kommunikation mit anderen Knoten stattfindet und eine Schlafphase in der der Sensorknoten in einen Standby-Zustand fällt. Der Wechsel zwischen diesen Zuständen wird als aufwachen und schlafen gehen bezeichnet. Wechseln diese beiden Zustände in regelmäßigen Abständen, so spricht man von einem Tagesablauf.
Die Entwicklung eines Sensornetzes bedarf hoher Sorgfalt und intensiver Analyse der Umgebung. Eine gründliche Umsetzung der folgenden Kriterien fördert nicht nur die Robustheit des Gesamtsystems, sondern gewährleistet eine optimale Einsatzfähigkeit:
- Sensornetze sind skalierbar.
- Sensornetze unterliegen hohen Hardwarerestriktionen.
- Sensornetze sind selbstorganisierend.
- Kooperative Abarbeitung von Aufgaben im Sensornetz führt zu präziseren Ergebnissen und neuen Anwendungsfeldern.
- Sensornetze benötigen Sicherheitsmechanismen, die anpassungsfähig an die sich verändernde Umwelt sind.
- Die eingesetzten Algorithmen und Protokolle müssen energiesparend und speicheroptimiert sein.
Eine neuartige Entwicklung stellen Netzwerke aus autarken (batterielosen und wartungsfreien) Funksensoren dar. Die für die Aufnahme und Übermittlung der Messdaten erforderliche Energie wird dabei aus der Umgebung gewonnen (Temperaturdifferenzen, Licht, Vibrationen...). Derartige Sensoren können an schwer zugänglichen Stellen eingesetzt werden, wo ein Batteriewechsel schwierig wäre. Pionier auf diesem Gebiet ist EnOcean, Mitglied der ZigBee-Allianz zur Vernetzung von Haushaltsgeräten und Sensoren.
Kommunikation
Der Forschungsbereich Kommunikation beschäftigt sich mit der Entwicklung effizienter Kommunikationsprotokolle für Sensornetze. Ein vollständiges Kommunikationsprotokoll legt das Verhalten der Knoten hinsichtlich der folgenden Punkte fest:
- Mit der Netzinitialisierung finden die Knoten zueinander und bilden die Netztopologie aus.
- Unter dem Tagesablauf. versteht man den Wach- und Schlafrhythmus eines Sensorknotens.
- Das Kommunikationsschema bestimmt, wie ein einzelner Datenaustausch zwischen zwei Sensorknoten abläuft.
- Routing legt fest, auf welchem Weg eine Nachricht durch ein Rechnernetz geleitet wird.
Gute Protokolle sorgen dafür, dass Knoten möglichst lange im Ruhezustand verbleiben können, Nachrichten auf kürzestem Weg zum Empfänger gelangen und möglichst keine Nachrichten durch Fehler verloren gehen. Sie schonen damit die begrenzten Ressourcen der Knoten und ermöglichen schnellen und zuverlässigen Datenaustausch. Die meisten Forschungsarbeiten gehen diese Herausforderungen getrennt an, so dass nur die wenigsten Kommunikationsprotokolle vollständig sind. Für Hersteller und Betreiber eines Sensornetzes stellt sich damit die Aufgabe, effiziente Verfahren auszuwählen und miteinander in Einklang zu bringen.
Kommunikationsprobleme
Sensor_Networks_Hidden_Station_Problem.png
Es gibt vier grundlegene Kommunikationsprobleme in Sensornetzen, die zu sinnloser Verschwendung der Energiereserven oder Informationsverlust führen und daher vermieden werden sollten:
- Untätiges Zuhören (idle listening) bedeutet, dass ein Sensorknoten das Kommunikationsmedium abhört, ohne eine Nachricht zu erhalten. Da das Abhören deutlich mehr Energie verbraucht als der Ruhezustand – selbst dann, wenn gar nichts empfangen wird – verschwendet der Knoten seine Energieressourcen. Das Problem ist verwandt mit dem aktiven Warten auf der Prozessebene eines Betriebssystems.
- Kollisionen (collisions) treten auf, wenn mehrere Knoten gleichzeitig Nachrichten über dasselbe Medium senden. Die Nachrichten überlagern sich dann und sind nicht mehr zu entziffern. Zwei spezielle Formen von Kollisionen tauchen besonders bei der Verwendung von Funk als Kommunikationsmedium auf:
- Versteckte Störenfriede (hidden stations) sind Knoten, die durch eigenes Senden fremde Kommunikation stören, davon selbst aber nichts mitbekommen und daher auch nicht aufhören.
- Entblößte Sender (exposed terminals) sind Knoten, die sich nicht trauen zu senden, da sie fremde Kommunikation wahrnehmen und fürchten, sie könnten diese stören. Tatsächlich würde die eigene Nachricht aber den Empfänger der fremden Kommunikation überhaupt nicht erreichen.
- Mitanhören (overhearing) fremder Kommunikation ist für Sensorknoten Energieverschwendung, da sie Nachrichten, die nicht an sie gerichtet sind, auch nicht verarbeiten.
- Überflüssiges Senden (overemitting) bedeutet, dass ein Sensorknoten Daten sendet, obwohl der Adressierte gar nicht mehr zuhört.
Auf Basis dieser Probleme wurden für Sensornetze bereits eine Anzahl spezieller energieeffizienter Netzwerkprotokolle entwickelt und ausgewertet:
Sensor Medium Access Control (S-MAC)
Siehe Hauptartikel Sensor Medium Access Control.
S-MAC ist ein sehr umfassendes Kommunikationsprotokoll für Sensornetze mit gemeinsamem Kommunikationsmedium. Es regelt Initialisierung, Tagesablauf und Kommunikationsschema eines Sensornetzes.
Sensor Networks S-MAC.png
Zum Aufbau des Netzes dient ein Synchronisationsimpuls, der das Netz in Gruppen aufteilt und deren Tagesablauf festlegt. Alle Knoten hören eine zufällige Zeitspanne lang das Medium ab. Wird kein „Sync-Signal“ empfangen, ernennt sich der ungeduldigste Knoten zum „Synchronizer“ und sendet ein solches mit dem Inhalt „Ich gehe in x Zeiteinheiten schlafen.“ aus. Wer ein Sync-Signal empfängt, betrachtet sich selbst als „Follower“ und sendet die Nachricht mit dem um die eigene Bearbeitungszeit t angepassten Inhalt „Ich gehe in x-t Zeiteinheiten schlafen“ weiter. Dadurch bildet sich eine Gruppe (Cluster), die dem gleichen Tagesablauf folgt. In einem Netz können sich mehrere Cluster bilden, da durch die zufällige Wartezeit zu Beginn mehrere Knoten gleichzeitig Sync-Signale initiieren können.
Als Kommunikationsschema verwendet S-MAC die weit verbreitete Rendezvous-Technik, in diesem Zusammenhang auch als RTS/CTS-Schema bekannt:
- Knoten A möchte Daten an Knoten B senden und sendet daher einen „Sendeantrag“ (RTS, request to send).
- Falls Knoten B bereit ist, eine Nachricht zu empfangen, antwortet er A mit einer „Sendefreigabe“ (CTS, clear to send).
- Daraufhin sendet A seine Daten an B.
- Sind die Daten korrekt bei B angekommen, sendet dieser eine „Empfangsbestätigung“ (ACK, acknowledgement) an A.
S-MAC weist zwei schwerwiegende Nachteile auf:
- Durch die Clusterbildung gibt es fast immer eine Menge von Randknoten, die als Vermittler zwischen verschiedenen Tagesabläufen besonders wichtig sind. Gerade diese verbrauchen aber durch häufige und eventuell doppelte Wachzeiten ihre Energiereserven besonders schnell und fallen dadurch frühzeitig aus.
- Sendewünsche können nur dann geäußert werden, wenn gerade keine andere Kommunikation stattfindet. Dadurch kann es passieren, dass der gewünschte Gesprächspartner schlafen geht, bevor der Sendewunsch geäußert wird.
T-MAC
Siehe Hauptartikel T-MAC.
T-MAC ist eine Verbesserung des Kommunikationsschemas des S-MAC Protokolls (siehe oben). Es addressiert den zweiten der oben genannten Nachteile, indem es das RTS/CTS-Schema um einen „zukünftigen Sendeantrag“ erweitert.
RTS CTS FRTS Schema.png
Das entstehende Kommunikationsschema hat die folgende Gestalt:
- Knoten A möchte Daten an Knoten B senden und sendet zunächst einen Sendeantrag (RTS) an B. Der Sendeantrag enthält gleichzeitig die Menge L (load) der zu erwartenden Daten.
- Falls Knoten B bereit ist die Nachricht zu empfangen, antwortet er A mit einer Sendefreigabe (CTS) und bestätigt die erwartete Datenmenge.
- Knoten C möchte an Knoten D senden, hat bisher aber abgewartet um die Kommunikation zwischen A und B nicht zu stören. Nun sendet er jedoch einen zukünftigen Sendeantrag (FRTS, future request to send) an D. Da C durch Mithören der RTS/CTS-Nachrichten die Länge L der Datenmenge erfahren hat, leitet er diese Information an D weiter. Direkt nach dieser Kommunikation gehen C und D für eine auf L optimal abgestimmte Zeitspanne schlafen. Zeitgleich zum FRTS beginnt A ein Leersignal zu senden, das keinerlei Information enthält und nur dem Zweck dient, B wachzuhalten.
- A sendet seine Daten an B.
- Sind die Daten korrekt bei B angekommen, sendet dieser eine Empfangsbestätigung (ACK) an A.
Nach der auf Basis von
L ausgehandelten Schlapfhase wachen C und D auf und starten ihrerseits das Rendezvous-Manöver.
Wise Medium Access Control (WiseMAC)
Siehe Hauptartikel Wise Medium Access Control.
Beim WiseMAC wacht jeder Knoten zu einem bestimmten Zeitpunkt auf. Diesen Zeitpunkt teilt er regelmäßig allen Knoten in seiner Sendereichweite mit. Will ein Sender nun Daten an diesen Knoten senden, so informiert er ihn zu diesem Zeitpunkt über den Sendewunsch, damit dieser wach bleibt und die Daten empfangen kann.
Da es nicht möglich ist die beiden Uhren von Sender und Empfänger exakt zu synchronisieren, ist es notwendig, dass der Sender seinen Sendewunsch nicht nur punktgenau während des kurzen Erwachens der Station bekannt gibt, sondern in einem Zeitintervall, der sogenannten Preamble-Phase (engl. Einleitungsphase; die Preamble-Phase soll den Datenverkehr einleiten), auf sich aufmerksam macht. Da die Uhren zwischen Sender und Empfänger immer weiter auseinander laufen, verlängert sich die Preamble-Phase, je länger der Sender vom gewünschten Empfänger bereits keine Synchronistationsinformationen mehr erhalten hat. Die Obergrenze für die Preamble-Phase ist die die Dauer zwischen zwei Wachphasen.
SMACS
Siehe Hauptartikel SMACS.
Anders als S-MAC und T-MAC verwendet SMACS zur Kollisionsvermeidung einen Zeitrahmen, der in verschiedene Zeitkanäle (vgl.: Zeitmultiplexing) unterteilt wird. Innerhalb dieser Zeitrahmen vereinbaren 2 Knoten zusammen 2 Zeitslots, sowie eine Frequenz. Jeder der beiden Kommunikationspartner benutzt dabei einen der beiden Timeslots zum senden und den jeweils anderen Timeslot zum empfangen.
Zum Aushandeln der Zeitslots kommt folgendes iterative Verfahren zum Einsatz:
- Ein Knoten sendet an alle Knoten in seiner Sendereichweite eine Einladung.
- Knoten, die eine Nachricht erhalten warten eine zufällige Zeit und antworten dann auf die Einladung.
- Der einladende Knoten sammelt die Antworten und wählt nach einer gewissen Zeit einen Knoten daraus aus, dem er mitteilt, welche seiner Zeitslots noch frei sind und wann sein Zeitrahmen beginnt. Da die nicht gewählten Knoten diese Nachricht ebenfalls mithören können, wissen sie, dass sie in dieser Runde aus dem Rennen sind.
- Sollte der gewählte Knoten noch keinen eigenen Zeitrahmen haben, so synchronisiert er sich mit dem einladenden Knoten. In jedem Fall wählt er jedoch 2 Zeitslots zur Kommunikation.
Eavesdrop and Register (EAR)
Siehe Hauptartikel Eavesdrop and Register.
EAR (Eavesdrop And Register, engl. abhören und registrieren) erweitert SMACS um die Möglichkeit mit mobilen Knoten zu kommunizieren. Dazu werden dem Protokoll die Nachrichtentypen Broadcast Invite (engl. Broadcast Einladung), Mobil Response (engl. mobile Antwort) und Mobil Disconnect (engl. mobiler Verbindungsabbruch'') erweitert.
Die stationären Knoten eines initialisierten SMACS-Netzes senden in regelmäßigen Abständen Broadcast Invite-Nachrichten, um mobile Kommunikationspartner, die zum Netz dazustoßen, einzuladen. Die mobilen Knoten sammeln diese Broadcast Invites und senden nach einer Zeit dem "besten" Knoten, von dem sie eine Einladung erhalten haben, ein Mobil Response. In diesem Mobil Response werden auch die Zeitslots reserviert. Wenn der mobile Knoten das Netz verlässt, so kann er sich entweder mit einem Mobil Disconnect selbstständig abmelden oder die Verbindung wird nach einer gewissen Zeit in der er nicht antwortet vom stationären Knoten beendet.
AMRIS
Siehe Hauptartikel AMRIS.
Ziel des AMRIS-Protokolls ist es, Multicasting in einem Sensornetz zu ermöglichen. Die Herausforderungen liegen hier vor allem darin, die Mobilität, sowie das hinzufügen und entfernen von einzelnen Knoten im Multicast-Baum zu ermöglichen.
- Erstellung des Multicast-Baumes
Ein Knoten, der Informationen in einer Multicast-Gruppe verteilen will, sendet an alle Knoten innerhalb seiner Sendereichweite eine Nachricht, in der eine sessionID zur Identifikation der Multicast-Gruppe, eine nodeID, die den Knoten selbst identifiziert und ein Hop-Counter, der die Anzahl der Übertragungen bis zur Wurzel mitzählt, enthalten ist. Da der Knoten, der die Gruppe gründet, die Wurzel des Baumes ist, ist die nodeID in diesem Fall 1 und der Hop-Counter 0.
Empfängt ein Knoten eine solche Nachricht und hat er zuvor keine Nachricht mit dieser sessionID erhalten, so speichert er die Daten der Nachricht in einer Tabelle, wobei er den Knoten mit der in der Nachricht angegebenen nodeID als seinen Vater betrachtet und wartet eine zufällige Zeit, um dann selbst eine nodeID zu wählen, die um einen Zufallswert n+1 größer ist, als die nodeID des Vaters und sendet seine eigene nodeID, zusammen mit der SessionID an alle Stationen in seiner Sendereichweite.
Bekommt ein Knoten eine Nachricht mit der sessionID einer Gruppe, bei der er bereits Mitglied ist, so speichert er diese Informationen ebenfalls in seiner Tabelle.
- Beitreten zu einer Multicast-Gruppe
Möchte ein Knoten an einer Session teilnemen, so sendet er an alle Knoten in seinem Senderadius eine Anfrage. Ein Knoten, der bereits Mitglied dieser Gruppe ist, sendet eine Bestätigung mit seiner nodeID, sowie seinem Hop-Counter zurück. Ist er nicht Teil der Gruppe, so gibt er die Anfrage rekusiv weiter und wird im Falle des Erfolges Transport-Knoten.
Die Anfragenden Knoten sammeln eine gewisse Zeit lang alle Anfragen, speichern diese in Ihrer Tabelle und wählen den Knoten mit der nodeID, die zum kleinsten Hop-Coutner gehört, als ihren Vater.
- Wartung
Die Tabellen mit den Session-Informationen der Knoten sind absteigend zunächst nach Hop-Countern, dann nach nodeIDs sortiert. Zudem hat jeder Tabelleneintrag eine Lebenszeit. Wenn diese abgelaufen ist, wird der Eintrag gelöscht.
Um die Tabelleneinträge aktuell zu halten, senden alle Knoten regelmäßig an alle anderen Knoten in ihrer Sendereichweite Nachrichten, in denen für jede Session, an der sie teilnehmen, die zugehörige sessionID, ihre eigene nodeID, sowie ihr Hop-Counter angegeben ist.
Wenn der Tabelleneintrag für den Vater in einer Session gelöscht wird, so versucht er, wie oben beschrieben, wieder zu dieser Gruppe beizutreten.
Geografische Netze und Geo-Routing
In vielen Anwendungsszenarien speichert das Sensornetzwerk die erhobenen Daten zunächst nur ab, ohne sie weiterzuleiten. Irgendwann stellt dann der Benutzer an das Netzwerk die Anfrage, alle Daten, die eine bestimmte räumliche Position oder Region betreffen, an ihn weiterzuleiten. Es ist daher wichtig, zu erfassen, wo Messdaten erhoben wurden. Eine Messung wird immer in dem Knoten abgelegt, der sie durchgeführt hat; es kann jedoch sinnvoll sein, sie zusätzlich in anderen Knoten abzulegen (siehe unten,
Abschnitt „Geographic Hash Tables“).
Um aus einem solchen geografisch orientierten Sensornetzwerk Daten abzufragen, bieten sich sogenannte Geo-Routing-Verfahren an. Diese ermöglichen es, als Bestimmungsort einer Nachricht geografische Koordinaten anzugeben, also eine Adresse im Format: „An den Knoten, der der Position (x, y) am nächsten ist.“ Der Benutzer kann dadurch Informationen zu einer Position oder aus einer Region abfragen, ohne vorher ausfindig machen zu müssen, welche Knoten sich in deren Umgebung aufhalten. Das Routing-Verfahren muss dabei nicht nur den richtigen Empfänger ausfindig machen, sondern die Nachricht auch möglichst schnell und direkt dorthin befördern.
Greedy Perimeter Stateless Routing in Wireless Networks (GPSR)
Siehe Hauptartikel Greedy Perimeter Stateless Routing in Wireless Networks.
Das Geo-Routing-Verfahren GPSR verwendet zwei komplementäre Strategien um diese Aufgabe zu erfüllen. Die eine ist die in der Informatik weit verbreitete Greedy-Strategie, nach der zu jedem Zeitpunkt die gerade optimal erscheinende Lösung gewählt wird. Nach ihr wird eine Nachricht immer an denjenigen erreichbaren Nachbarknoten weitergereicht, der dem Ziel am nächsten ist. Dadurch wandert die Nachricht zunächst auf direktem Weg in Richtung Ziel. In einem ausgeglichenen Netzwerk würde die Greedy-Strategie den richtigen Empfänger sicher und effizient ausfindig machen, unter ungünstigen Bedingungen kann sie jedoch in eine Sackgasse führen.
Daher verwendet GPSR ergänzend die Perimeter-Strategie. Sobald mittels der Greedy-Strategie kein besserer Empfänger mehr ermittelt werden kann, wird die Nachricht in einer Kreisbahn um das Bestimmungsziel herumgeleitet. Findet sich auf diesem Weg ein Knoten, der noch näher am Ziel liegt, so geht GPSR wieder zur Greedy-Strategie über. Falls nicht, landet die Nachricht letztendlich wieder bei demjenigen Knoten, der sie in den Perimeter-Modus versetzt hat; dieser schließt daraus, dass er der gesuchte Empfänger ist und verarbeitet die Nachricht. In einer entarteten Netz-Topographie kann es passieren, dass eine Nachricht im Perimeter-Modus das Netzwerk einmal komplett umrundet – ein gänzlich unerwünschter Effekt hinsichtlich Geschwindigkeit und Schonung der Energiereserven.
GPSR findet sicher den richtigen Empfänger, kann jedoch unter ungünstigen Bedingungen sehr ineffizient sein. Voraussetzung für GPSR ist, dass jeder Knoten seine eigene Position in einem globalen Koordinatensystem kennt. Zudem muss die Netz-Topologie einem planaren Graphen entsprechen, da sonst einige Nachrichten endlos im Kreis zirkulieren könnten. Ein großes Plus des Protokolls ist, dass sich die Knoten keine Statusinformationen merken müssen, sondern alle benötigten Daten in der weiterzuleitenden Nachricht untergebracht werden.
Geographic Hash Tables
Siehe Hauptartikel Geographic Hash Tables.
Geographic Hash Tables erweitern GPSR um die Möglichkeit, eine Information auf mehreren Knoten in einer Region gleichzeitig abzuspeichern. Diese gewollte Redundanz verringert die Wahrscheinlichkeit eines Datenverlustes bei Ausfall einzelner Knoten und ermöglicht es, mobile Sensorknoten zu berücksichtigen.
Zu diesem Zweck besitzt jeder Knoten eine Tabelle, die einer Koordinate die zugehörigen Daten zuweist. Ein Knoten gilt als „Heimatknoten“ einer Koordinate, wenn kein anderer Knoten dieser Koordinate näher liegt. Alle anderen Knoten, die Daten zu dieser Koordinate pflegen, werden „Replikaknoten“ genannt. Ein Heimatknoten ist für die Information einer Koordinate verantwortlich und beantwortet alle Anfragen, die sich auf sie beziehen. Die Replikaknoten dienen der Datensicherung.
Von Zeit zu Zeit informiert der Heimatknoten alle Replikaknoten über einen Rundbrief – eine Nachricht im Perimeter-Modus –, dass er noch existiert und frischt gegebenenfalls die Daten der Koordinate auf. Wird diese Nachricht von einem Knoten empfangen, der näher an der betreffenden Koordinate liegt, so ernennt sich dieser selbst zum neuen Heimatknoten und informiert die anderen Knoten darüber, indem er seine eigene Koordinaten in den Header der Nachricht schreibt, bevor er sie weiterleitet. Kehrt die Nachricht schließlich zum alten Heimatknoten zurück und findet dieser die fremden Koordinaten, so degradiert er sich selbst zum Replikaknoten.
Erhält ein Replikaknoten lange Zeit keinen Existenznachweis des Heimatknotens, so ernennt er sich selbst zum Heimatknoten. Anschließend startet er – wie oben beschrieben – einen Rundbrief im Perimeter-Modus, durch den geklärt wird, ob der bisherige Heimatknoten wirklich den Betrieb eingestellt hat und welcher Replikaknoten der betroffenen Koordinate tatsächlich am nächsten liegt.
Geo-Cast
Siehe Hauptartikel Geo-Cast.
Das Verfahren Geo-Cast sucht aus einem Rechnernetz diejenigen Knoten heraus, die in einem ausgwählten geografischen Gebiet liegen. Es wurde entwickelt, um Multicast-Techniken wie Internet-Radio vom Standort des Empfängers abhängig zu machen. So könnte etwa ein Anbieter elektronischer Stauwarnungen seine Nachrichten gezielt an die Autofahrer senden, die sich in der gerade betroffenen Region aufhalten. Kennt der Benutzer außerhalb des Sensornetzes die Standorte aller Sensorknoten, kann er anhand dieser Technik seine Nachrichten gezielt an Knoten innerhalb eines bestimmten Gebietes versenden.
Der Benutzer zeichnet auf eine elektronische Landkarte geometrische Flächen wie Kreise oder Polygone und legt so das Gebiet fest, in das er seine Nachricht versenden möchte. Geo-Cast wählt dann durch einfache Schnittmengentechniken alle Knoten aus, die sich in diesem Gebiet aufhalten. Da das Verfahren keine Aussage darüber macht, wie die Nachrichten letztendlich durch das Netz geleitet werden, kann es nicht selbständig eingesetzt werden, sondern dient lediglich der Unterstützung anderer Routing-Protokolle.
Lokalisation
Wie bereits unter dem Punkt
GPSR deutlich wurde, ist es für Sensornetze oft von Interesse, die eigene Position zu kennen. Grundsätzlich lässt sich diese sehr einfach durch
GPS bestimmen, jedoch widersprechen
GPS-Module auf Grund ihrer Größe und der hohen Kosten dem
smart-dust-Gedanken eines Sensornetzes. Darum stattet man in der Regel höchstens einige wenige Knoten mit
GPS aus oder verzichtet gänzlich darauf.
Eine weitere Hilfe bei der Lokalisation ist die
Distanzabschätzung. Die Distanz zwischen zwei Sensorknoten ist verhältnismäßig einfach abzuschätzen. So ist es zum Beispiel möglich, dass ein Sensorknoten die Nachrichtenlaufzeit misst und dadurch die Entfernung zu einem anderen Knoten abschätzt.
Lokalisation mit Hilfe einiger bekannter Positionen
Kennen die Knoten im Sensornetz die Distanzen zueinander, so kann ein Knoten global eindeutig lokalisiert werden, wenn sich in seiner Sendereichweite 3 Knoten befinden, deren Position bekannt ist. Dabei wird um zwei Knoten mit den bekannten Positionen Kreise gezogen, deren
Radien der Distanz zwischen dem jeweiligen positionierten Knoten entspricht. Die gesuchte Position des Knotens kann nun nur noch einer der beiden Schnittpunkte der Kreise sein. In welchem Schnittpunkt der Knoten liegt, lässt sich nun durch die Lage des dritten positionierten Knotens bestimmen.
Kann die Distanz zwischen den Sensorknoten nicht ermittelt werden, so ist eine genaue Bestimmung der Positionen nicht mehr möglich. In diesem Fall kann allerdings eine Abschätzung gemacht werden. So weiß man zum Beispiel, dass ein Knoten, der zwei Knoten mit bekannter Position empfängt, in der Schnittfläche der Kreise liegen muss, die durch den jeweiligen Knoten und den Radius in Form der Sendereichweite definiert sind. Durch weitere Knoten, die ihre Position genau kennen oder deren Position abgeschätzt wurden, kann diese Abschätzung noch verbessert werden.
Lokalisation ohne bekannte Positionen
Wenn kein Knoten im Sensornetz seine globale Position kennt, so ist es natürlich unmöglich, das Sensornetz an den Weltkoordinaten auszurichten. Ist es darüber hinaus auch nicht möglich, die Distanzen zwischen den Knoten zu messen, so ist auch die Ermittlung lokaler Positionen nur sehr ungenau möglich. Eine Abschätzung macht man, indem man in einer
Bit-
Matrix die Verbindungen zwischen den Knoten einträgt. Für zwei Knoten ohne Verbindung wird in eine solche
Matrix eine 0 eingetragen, für zwei Knoten mit Verbindung eine 1. Mit Hilfe dieser Matrix kann dann zumindest die
Topologie abgeschätzt werden.
Mit einem Verfahren, das von Capkun, Hamdi und Hubaux veröffentlich wurde, ist es jedoch möglich, in einem Sensornetz ein lokales Koordinatensystem zu erstellen, wenn zumindest die Distanzen zwischen den Sensorknoten gemessen werden können.
Die Idee ist dabei, dass zunächst jeder Knoten sein eigenes Koordinatensystem erstellt, bei dem er selbst den 0-Punkt bildet. Um die X-Achse dieses Koordinaten-Systems zu bilden, zieht er eine Linie durch einen anderen Knoten und wählt einen dritten Knoten, der die Richtung der Y-Achse bestimmt. Um ein globales Koordinatensystem über das gesamte Sensornetz zu erstellen, wird ein Knoten als Ursprung ausgewählt. Von den Knoten in der Reichweite des Ursprungs ausgehend, müssen nun nacheinander die anderen Koordinatensysteme durch Drehungen und Verschiebungen in das globale Koordinatensystem überführt werden.
Synchronisation
Messdaten sind oft auf absolute Uhrzeiten angewiesen. Darüber hinaus benötigen einige Kommunikationsprotokolle, wie z. B.
SMACS eine möglichst genaue Synchronisation der Sensorknoten untereinander.
Wie in anderen Rechnernetzen, so hat man auch bei Sensornetzen mit den typischen Ungenauigkeiten bei der Synchronisation zu kämpfen. Bei den Faktoren, die die Synchronisation beeinflussen handelt es sich um die Sendezeit, also die Zeit, die der Sender benötigt um sendebereit zu sein, die Zugriffszeit, also die Zeit, die der Sender benötigt, um die Daten auf dem Kommunikationsmedium abzulegen, die Ausbreitungsgeschwindigkeit, also wie schnell die Nachricht vom Sender beim Empfänger ist und die Empfangszeit, also wie lange der Empfänger benötigt, um eine Nachricht vom Medium abzugreifen und die Information für die betreffende Anwendung zugänglich zu machen.
Da die unterschiedlichen Kommunikationsverfahren vor allem die Zugriffszeit, aber auch andere Faktoren beeinflussen, ist es sinnvoll, die Entscheidung für ein Synchronisationsverfahren auch von ihnen abhängig zu machen.
Synchronisation durch Berechnung der Round Trip Time
Man kann den Unterschied zweier Uhren in einem
Rechnernetz bestimmen, indem man die Uhrzeiten zweier Rechner voneinander abzieht und davon dann nocheinmal die
Round Trip Time subtrahiert, die durch die Nachrichten verursacht wird, die die beiden Rechner austauschen um sich gegenseitig über ihre Uhrzeiten zu informieren. In der Praxis bildet man dazu den Mittelwert der Zeitspannen, die zur Übertragung der Anfrage und ihrer Antwort benötigt wurden. Bei diesem Verfahren wirken sich alle oben genannten Faktoren, außer die
Ausbreitungsgeschwindigkeit aus. Bei einer hohen Varianz der Ausbreitungsgeschwindigkeit ist darum dieses Verfahren vorzuziehen.
Reference-Broadcast Synchronisation
Bei der
Reference-Broadcast Synchronisation (RBS) wird von einer zentralen Stelle aus ein Synchronisationssignal an alle Knoten gesendet. Ein Knoten, der nach dieser Synchronisationsnachricht eine Nachricht versendet, informiert mit dieser Nachricht gleichzeitig den Empfänger darüber, wann er die Synchronisation erhalten hat. Mit Hilfe dieser Information kann der Empfänger dann entscheiden, ob seine Uhr falsch geht, und sie mit der Uhr des Empfängers synchronisieren. Dieses Verfahren ist besonders gut geeignet, wenn bei der
Kommunikation die Sendezeit und die Zugriffszeit variieren, da hier die Zeit, an der sich die Synchronisation orientiert, nur einmal für alle Empfänger gesendet wird und unterschiedliche Zugriffs- oder Sendezeiten sich so nicht auf die Synchronisation auswirken.
Timing-Sync Protocol for Sensor Networks
Das
Timing-Sync Protocol for Sensor Networks (TPSN) wurde von
Ganeriwal,
Kumar und
Srivastava vorgeschlagen und beschreibt den Vorgang, wie in einem Sensornetz die Synchronisation verbreitet wird. Als Synchronisationsverfahren kann hier die
Synchronisation durch Berechnung der Round Trip Time zur Anwendung kommen.
Initalisierung
- Ein Wurzelknoten gibt sich den Level 0
- Die Wurzel versendet über eine level_discovery-Nachricht per Broadcast an alle Knoten in seinem Sendebreich
- Alle Knoten, die einen level_discovery erhalten, der niedriger als ihr eigener Level ist, nehmen den um 1 erhöhten Level der Nachricht an, warten eine zufällige Zeit und beginnen dann ihrerseits mit dem Punkt 2.
Da es trotz der zufälligen Wartezeit immernoch zu Kollisionen kommen kann, gibt es auch die Möglichkeit, dass Knoten einen Level mit einem level_request anfordern. Diese orientieren sich dann an dem jeweils niedrigsten Level, den sie erhalten.
Synchronisation
- Der Wurzelknoten fordert die Knoten mit Level 1 durch ein time_sync-Paket dazu auf, sich bei ihm über die Uhrzeit zu informieren.
- Empfängt ein Knoten ein time_sync, so fordert er durch einen synchronisation_pulse die aktuelle Uhrzeit. Knoten des Level X werden durch den Empfang des synchronisation_pulse ebenfalls aktiv und fordern ihrerseits die Uhrzeit von ihrem Vaterknoten.
- Der Vaterknoten antwortet auf den synchronisation_pulse mit einem ACK, der die aktuelle Zeit enthält.
Aggregation
Oftmals verlangt der Einsatzzweck eines Sensornetzes, dass Daten aus dem ganzen Netz zusammengetragen und schließlich an einen zentralen Empfänger, eine sogenannte „zentrale Senke“, übermittelt werden. Naive Ansätze führen hierbei meist dazu, dass sich ein Engpass entwickelt, der die Leistung des Systems stark vermindert. Daher werden unter dem Schlagwort „Aggregation“ Wege gesucht, Informationen verlustfrei zu bündeln und zusammenzufassen, um die Datenmenge, die letztendlich übermittelt werden muss, soweit wie möglich zu reduzieren. Soll beispielsweise die maximale Temperatur in einem Sensornetz ermittelt werden, so wäre der naive Ansatz, alle gemessenen Temperaturen an die zentrale Senke zu übermitteln, die dann das Maximum heraussucht, während ein fortgeschrittener Ansatz die Daten schon bei der Weitergabe vergleicht und letztlich nur noch einen einzigen Temperaturwert an die zentrale Senke übermittelt.
Bisherige Ansätze sind:
Tiny Aggregation (TAG)
Siehe Hauptartikel Tiny Aggregation.
Tiny Aggregation ist ein Entwurf, der sich an der Datenbanksprache SQL für Relationale Datenbanken orientiert. Die zentrale Senke propagiert eine Anfrage in einem SQL-ähnlichen Format in das Sensornetz. Die Anfrage wird dort analog zu einer Datenbankanfrage ausgewertet, das heißt redundante und überflüssige Informationen werden schon im Vorfeld aussortiert.
Empirische gegenseitige Codierung
Die empirische gegenseitige Codierung intensiviert den Ansatz, Informationen nur dann weiterzureichen, wenn sie nicht dem Normalwert entsprechen. Das Prinzip wird bereits in naiven Ansätzen umgesetzt, wenn z.B. ein Brandbekämpfungs-Sensorknoten nur solche Temperaturmessungen weitergibt, die einen Vorgabewert überschreiten. Die empirische gegenseitige Codierung verbindet diese Idee mit der Tatsache, dass die Messungen einiger Sensorknoten stets ähnlich sind, z.B. weil sie räumlich nah beieinander liegen. In diesem Fall würde ein Sensorknoten seine Messung relativ zu der seines Nachbarn angeben und seine Messung nur dann weiterreichen, wenn der Messwert stark von dem des anderen abweicht. Eine Stärke des Ansatzes ist, dass solche Zusammenhänge durch empirische Methoden automatisch ermittelt werden.
Kritik an Sensornetzen
Michael Crichton zeichnete 2002 in seinem Roman
Beute eine düstere Zukunftsvision, in der er die
smart dust-Idee mit
kollektiver Intelligenz und
Nanotechnologie verband und seine Romanfiguren von Schwärmen bösartiger Mikropartikel töten ließ.
Weitaus realistischere Kritik an Sensornetzen und dem smart dust-Gedanken äußern Datenschützer. Sie sehen in Sensornetzen eine weitere Überwachungsmethode, die zur Überwachung unbescholtener Bürger und Analyse ahnungsloser Verbraucher missbraucht werden kann. Genährt werden diese Befürchtungen durch das militärische Interesse an Sensornetzen.
Weblinks
Quellen
Computernetzwerk | Funktechnik
Sensor network | Red de sensores | 传感器网络