Verfahren zur redundanten und distributiven

Werbung
Verfahren zur redundanten und distributiven
Datenverarbeitung in drahtlosen Sensornetzen
Dem Fachbereich Ingenieurwissenschaften der Universität
Duisburg-Essen zur Erlangung des akademischen Grades eines
Doktors der Ingenieurwissenschaften genehmigte Dissertation
von
Alexander Coers
aus
Mülheim an der Ruhr
Referent: Prof. Dr.-Ing. Walter Geisselhardt
Korreferent: Prof. Bedrich J. Hosticka, Ph.D.
Tag der mündlichen Prüfung: 19. Dezember 2005
Inhaltsverzeichnis
1 Einleitung
vii
2 Grundlagen
2.1 Methoden zur redundanten Datenspeicherung in Rechnersystemen
2.1.1 RAID Level 0 . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 RAID Level 1 . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 RAID Level 2 . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 RAID Level 3 . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.5 RAID Level 4 . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.6 RAID Level 5 . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.7 Kombinationen der verschiedenen Verfahren . . . . . . . .
2.2 Protokolle für drahtlose Netze . . . . . . . . . . . . . . . . . . . .
2.2.1 Das ISO-OSI Schichtenmodell . . . . . . . . . . . . . . . .
2.2.2 Netztopologien . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Mehrfachzugriffsprotokolle für drahtlose Netze . . . . . . .
2.2.4 Das ALOHA System . . . . . . . . . . . . . . . . . . . . .
2.2.5 Das S-ALOHA System . . . . . . . . . . . . . . . . . . . .
2.2.6 Das CSMA Verfahren . . . . . . . . . . . . . . . . . . . . .
2.2.7 Der IEEE 802.11 Standard . . . . . . . . . . . . . . . . . .
2.2.8 Das S-MAC Protokoll . . . . . . . . . . . . . . . . . . . .
2.2.9 MD Protokoll . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.10 Verteiltes MD Protokoll . . . . . . . . . . . . . . . . . . .
2.2.11 Der IEEE 802.15.4 Standard . . . . . . . . . . . . . . . . .
2.2.12 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.13 Weitere Mehrfachzugriffsverfahren . . . . . . . . . . . . . .
2.3 Drahtlose Sensornetze . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Routing Verfahren . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Sensorknoten . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.3 Anwendungen für drahtlose Sensornetze . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
4
5
6
8
8
9
9
15
21
21
22
22
24
26
28
30
31
33
35
37
39
42
45
.
.
.
.
.
52
54
55
56
58
59
3 Verfahren zur redundanten und distributiven Datenverarbeitung
3.1 Netzwerk Organisation . . . . . . . . . . . . . . . . . . . . . .
3.2 Netztopologie . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Das Beacon-Paket . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Der funktionelle Protokollablauf . . . . . . . . . . . . . . . . .
3.5 Die Mitglieder eines Clusters . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
62
63
63
65
67
70
71
71
73
73
76
76
76
77
79
79
82
4 Realisierung des Netzwerk Simulators
4.1 Der Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Realisierung der unteren Protokollschichten . . . . . . . . . . . . . . . . .
84
84
88
3.6
3.7
3.8
3.9
3.5.1 Das Infopaket . . . . . . . . . . . . . . . . . . . . . . . .
3.5.2 Das Datenpaket . . . . . . . . . . . . . . . . . . . . . . .
Die Clusterheads . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Hinzufügen von Knoten . . . . . . . . . . . . . . . . . .
3.6.2 Das Cluster Infopaket . . . . . . . . . . . . . . . . . . .
3.6.3 Datenverteilung im Cluster . . . . . . . . . . . . . . . . .
3.6.4 Ausfall des Clusterheads . . . . . . . . . . . . . . . . . .
Die Basisstation . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.1 Der Request . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.2 Ausfall der Basisstation . . . . . . . . . . . . . . . . . .
3.7.3 Hinzufügen einer Basisstation . . . . . . . . . . . . . . .
Proaktives Routingverfahren . . . . . . . . . . . . . . . . . . . .
3.8.1 Routing innerhalb des Clusters . . . . . . . . . . . . . .
3.8.2 Cluster zu Cluster Routing . . . . . . . . . . . . . . . . .
3.8.3 Leistungscharakteristik und Beschreibung des Verfahrens
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.1 Kontrollpakete . . . . . . . . . . . . . . . . . . . . . . .
3.9.2 Signalpakete . . . . . . . . . . . . . . . . . . . . . . . . .
5 Simulation
5.1 Netzaufbau . . . . . . . . . . . . . . . . . . . . . . .
5.2 Datenverteilung . . . . . . . . . . . . . . . . . . . . .
5.2.1 Datenverteilung innerhalb eines Sensornetzes .
5.2.2 Datenverteilung innerhalb eines Clusters . . .
5.3 Betrachtung des Mehraufwandes an Kommunikation .
5.3.1 Betrieb mit Basisstation . . . . . . . . . . . .
5.3.2 Betrieb ohne Basisstation . . . . . . . . . . .
5.4 Zusammenfassung der Ergebnisse . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
91
97
97
98
104
104
105
106
Zusammenfassung und Ausblick
107
Literatur
109
Häufig verwendete Abkürzungen
117
iii
Bildverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Striping mit Raid Level 0 . . . . . . . . . . . . . . . . . . . . . . . . . .
Spiegelung mit Raid Level 1 . . . . . . . . . . . . . . . . . . . . . . . . .
RAID Level 2 mit Fehlerkorrektur Code . . . . . . . . . . . . . . . . . .
RAID mit Parität (Bit- und Byteorientiert) . . . . . . . . . . . . . . . .
RAID Level 5, links-symmetrische Organisation . . . . . . . . . . . . . .
Das ISO-OSI Schichtenmodell . . . . . . . . . . . . . . . . . . . . . . . .
Bustopologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ringtopologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sterntopologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Baumtopologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vermaschtes Netz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hidden und Exposed Terminal Problem . . . . . . . . . . . . . . . . . . .
Zeitlicher Ablauf der Datenübertragung bei IEEE 802.11 . . . . . . . . .
Zeitlicher Ablauf der Datenübertragung unter Benutzung von Datenfragmenten bei IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zeitlicher Ablauf einer Übertragung mittels Message Passing in S-MAC .
Zeitlicher Ablauf eines Datentransfers beim MD Protokoll . . . . . . . . .
Sternnetz mit IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . .
Vermaschtes Netz mit IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . .
Das Pollingverfahren bei Bluetooth . . . . . . . . . . . . . . . . . . . . .
Schematische Darstellung der schrittweisen Erhöhung der Auflösung durch
Hinzufügen von Sensorknoten bei der Messung eines Phänomens . . . . .
Schematische Darstellung eines Sensornetzes . . . . . . . . . . . . . . . .
Schematische Darstellung eines Sensorknotens . . . . . . . . . . . . . . .
Foto des am IMS entwickelten Sensorknotens . . . . . . . . . . . . . . . .
Sensornetz mit drei Clustern . . . . . . . . . . . . . . . . . . . . . . . . .
Schematische Darstellung der funktionellen Netzwerk Hierarchie . . . . .
Schematische Darstellung des HopCount . . . . . . . . . . . . . . . . . .
Zusammenhang zwischen logischer und physischer Topologie in einem Sensornetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zeitliche Abfolge der Beacon-Pakete . . . . . . . . . . . . . . . . . . . . .
Funktioneller Protokollablauf der Einschaltphase . . . . . . . . . . . . . .
Funktioneller Protokollablauf für Sensorknoten . . . . . . . . . . . . . . .
Funktioneller Protokollablauf für Clusterheads . . . . . . . . . . . . . . .
Hinzufügen von Sensorknoten zu einem Cluster . . . . . . . . . . . . . .
iv
3
4
6
7
8
10
16
17
18
19
20
23
25
25
28
30
32
34
35
38
40
44
46
53
54
55
57
58
60
61
64
66
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Datenverteilung in einem Cluster . . . . . . . . . . . . . . . . . . . . . .
Funktioneller Protokollablauf der Basisstation . . . . . . . . . . . . . . .
Basisstation sendet Request . . . . . . . . . . . . . . . . . . . . . . . . .
Broadcast des Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Weiterleiten des Requests an den Sensorknoten . . . . . . . . . . . . . .
Datenpaket an die Basisstation . . . . . . . . . . . . . . . . . . . . . . .
Flussdiagramm des Routingverfahrens . . . . . . . . . . . . . . . . . . .
Schichtenmodell des entwickelten Protokolls . . . . . . . . . . . . . . . .
Bildschirmfoto des entwickelten Simulators . . . . . . . . . . . . . . . . .
Auszug aus den statistischen Informationen eines Knotens . . . . . . . .
Gegenüberstellung von gebildeter Clusteranzahl und Knotenanzahl im Sensornetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gegenüberstellung von benötigter Zeit und Knotenanzahl im Sensornetz
Gegenüberstellung der Mittelwerte von Clusteranzahl und benötigter Zeit
in Abhängigkeit der Netzgröße . . . . . . . . . . . . . . . . . . . . . . . .
Grafische Darstellung des Zusammenhangs von Clustergröße und kompensierbaren Paketausfällen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verteilung von Daten in einem Sensornetz . . . . . . . . . . . . . . . . .
v
69
72
74
74
75
75
80
83
87
88
96
97
98
102
103
Vorwort
Die vorliegende Arbeit entstand im Rahmen meiner Tätigkeit als wissenschaftlicher Mitarbeiter am Fraunhofer-Institut für Mikroelektronische Schaltungen und Systeme (IMS)
in Duisburg, bei dessen Leiter, Prof. Dr. rer. nat. Günter Zimmer, ich mich an dieser Stelle
für die Möglichkeit bedanken möchte, die Tätigkeit als wissenschaftlicher Mitarbeiter mit
einer Promotion zu verbinden. Ohne die Unterstützung einer Reihe von Personen hätte
diese Arbeit nicht gelingen können:
Zu allererst sei hier Herr Prof. Dr.-Ing. Walter Geisselhardt erwähnt, der sich trotz der
im Zusammenhang meiner Arbeit entstandenen komplexen Situation bereit erklärte, die
Betreuung zu übernehmen. Dafür meinen herzlichsten Dank. Herrn Prof. Bedrich J. Hosticka, Ph.D. danke ich für die Übernahme des Korreferates.
Ein besonderer Dank gilt Herrn Dr. Rainer Kokozinski, der als Leiter der InstitutsAbteilung Wireless Chips & Systems“ durch viele Gespräche und Vorschläge die komple”
xe Situation immer wieder entschärfte. Herrn Hans-Christian Müller, Leiter der Gruppe
Hardware Software Architectures“, danke ich für die Freiheiten, die er mir trotz Termin”
drucks immer wieder ließ, um diese Arbeit zu erstellen und für den Rat, mit dem er mir
jederzeit zur Seite stand.
Herrn Martin Lörcks danke ich für das Korrekturlesen und die diversen Diskussionsabende
mit unzähligen Flaschen Erdinger Weissbier (Alkoholfrei).
Für das verständnisvolle Ertragen meiner Wehklagerei möchte ich an dieser Stelle noch
den Herren Winfried Bilgic, Dr. Stephan Kolnsberg, Markus Holzapfel, Michael Marx
und Andreas Jansen danken. So manche Anregung kam von ihnen.
Bei meinen Eltern Ilse und Hans-Jürgen Coers möchte ich mich ebenfalls bedanken. Ohne
ihre Unterstützung wäre weder mein Studium noch diese Arbeit möglich gewesen.
Meiner Lebensgefährtin Elke Graf danke ich für das Ertragen meiner (schlechten) Launen
und für manches aufmunternde Wort, wenn es mal nicht weiter ging.
Zu guter Letzt möchte ich mich bei der Firma Microsoft dafür bedanken, dass sie mir die
Entscheidung, ihre Software nicht zu nutzen, so einfach gemacht hat.
Dortmund, im April 2006
Alexander Coers
vi
1 Einleitung
Sensornetze sind in vielen Bereichen der Elektrotechnik und Informatik Gegenstand aktueller Forschung. Sie setzen neue Maßstäbe bei den Anforderungen an Hard- und Software,
um das Ziel des ubiquitous computing“, den allgegenwärtigen Rechnern, zu erreichen.
”
Sensornetze bestehen aus hunderten oder tausenden kleiner Rechner, den Sensorknoten,
die aufgrund der Fähigkeit, komplexe Netzwerke zu bilden, die verschiedensten Aufgaben
bewerkstelligen können. Die gebildeten Netze sind hochgradig vermascht, so dass mehrere Strecken von einem Knoten zu jedem anderen Knoten innerhalb eines Netzes gebildet
werden können. Die Anwendungen reichen von einfachen Überwachungs- und Messtätigkeiten einzelner Sensorknoten bis hin zu Situationen, deren Lösung von Sensorknoten im
Kollektiv und ohne Interaktion mit einem Benutzer erbracht werden muss.
Sensorknoten besitzen zu diesem Zweck eine eigene Energieversorgung, die das autarke
Arbeiten über einen Zeitraum von mehreren Tagen bis hin zu Jahren ermöglicht. Um
solch eine lange Lebensdauer erreichen zu können, müssen die einzelnen Komponenten
energiesparend ausgelegt sein. Dies ist jedoch nicht immer mit den an Sensorknoten gestellten Aufgaben vereinbar, da Energieeinsparung meist auch mit Leistungseinsparung
(Sendeleistung, Rechenleistung) einhergeht. Dieser Widerspruch führte u.a. in der Entwicklung von Sensornetzen und Sensorknoten zu neuen Netzwerk- und Datenverarbeitungstechniken [GCYE03], um die Schwierigkeiten zu überwinden. Netzwerkprotokolle
und Routingalgorithmen [SGAP00b], [Bow03], die sowohl energiesparend als auch autonom arbeiten, und die Fähigkeit besitzen, Ausfälle einzelner Knoten zu kompensieren,
sind zum festen Bestandteil jedes Sensornetzes geworden.
Die Ermittlung von Messwerten, die heute noch größtenteils mit Hilfe von kabelgebundenen Systemen durchgeführt werden, lässt sich in vielen Fällen durch den Einsatz von
Sensornetzen kostengünstiger und effizienter gestalten. Nicht nur die Tatsache, dass die
durch Verkabelung entstehenden Kosten wegfallen, sondern auch die schnelle Einsatzfähigkeit aufgrund der einfachen Installation rechtfertigt den Einsatz von Sensornetzen.
Hinzu kommt, dass durch ihr vermaschtes Netz die Ausfallsicherheit im Vergleich zu einfachen Verbindungen, wie sie bei einer kabelgebundenen Lösung bestehen, gesteigert wird.
Weiterhin kann die Anzahl der möglichen Alternativrouten durch das Hinzufügen weiterer Sensorknoten erhöht werden. Dies steigert darüber hinaus die räumliche Auflösung,
so dass eine messbare physikalische Größe nicht nur zeitlich sondern auch räumlich hoch
aufgelöst erfasst werden kann.
Wie bei den herkömmlichen Lösungen werden auch bei einem Sensornetz die gesammelten Daten zentral an einer Station gesammelt. Doch im Gegensatz zu einer kabelgebundenen Lösung, wo alle Datenleitungen an dieser Zentrale zusammengeführt werden
vii
müssen, ist die Basisstation nicht an örtliche Gegebenheiten gebunden. Eine Basisstation
kann die ermittelten Daten, nach einer möglichen Auswertung, über eine andere drahtlose
Verbindung oder über ein lokales Netz an den Benutzer leiten. Dadurch kommuniziert ein
potentieller Anwender von Sensornetzen über die Basisstation mit dem Netz und benötigt
keinen direkten Kontakt zu den einzelnen Knoten. Dieser sehr flexible Ansatz versetzt
Anwender in die Lage, Sensornetze mit geringem Aufwand und gegebenenfalls parallel zu
bestehenden Lösungen einzusetzen.
Obwohl Sensorknoten zur Messung teilweiser kritischer Größen eingesetzt werden können und die Verbindung zu anderen Knoten oder zu einer zentralen Auswertestation über
unsichere drahtlose Verbindungen durchgeführt wird, existieren keinerlei Systeme ([CT],
[Sca]), die eine hohe Datenintegrität garantieren. Sie beruhen in ihrer Funktionsweise
darauf, dass mindestens (genau nur) eine Basisstation im Netzwerk vorhanden ist und
die Verbindung zwischen dem Sensornetz und der Basisstation nicht abbricht. Sollte die
Verbindung dennoch über einen längeren Zeitraum abbrechen, verliert der Benutzer unwiederbringlich Daten. Im schlimmsten Fall bricht das Sensornetz zusammen und wird
unbenutzbar, da die Basisstation bei den meisten Anwendungen mit deutlich leistungsfähigerer Hardware ausgerüstet ist und neben dem Datensammeln auch Kontrollaufgaben
im Netzwerk übernimmt.
Des Weiteren existieren in den vorhandenen Lösungen keinerlei Möglichkeiten, die
Nutzdaten der jeweiligen Applikation so zu sichern, so dass diese nach dem Ausfall eines
Knotens noch für Auswertungen zur Verfügung stehen.
Allerdings sind Systeme zur redundanten Speicherung von Daten aus der heutigen
Rechnertechnologie nicht mehr wegzudenken. Jede Applikation, die die Handhabung von
wichtigen und teilweise einzigartigen Daten steuert, benötigt eine zuverlässige und fehlertolerante Hardwareumgebung. Solch eine Umgebung wird in Rechnernetzen mit RAID
( Redundant Array Of Independent Disks“, Redundanter Verbund unabhängiger Festplat”
ten, kurz RAID) Systemen oder mit Hilfe von Storage Area Network“ (SAN) realisiert.
”
Diese Arbeit untersucht, ob ein System, das ähnlich wie die gebräuchlichen Systeme bei
Rechneranlagen, auch auf drahtlosen Sensorknoten implementiert werden kann, obwohl
die Ressourcen der Sensorknoten beschränkt sind.
In Abschnitt 2 werden die Grundlagen zu RAID Systemen, Sensorknoten und drahtlosen Netzwerktechnologien beschrieben.
Das entwickelte Verfahren wird in Abschnitt 3 funktionell beschrieben.
Abschnitt 4 beschreibt den Aufbau der für die Simulation entwickelten Software, bevor
in Abschnitt 5 die Simulationen und deren Ergebnisse beschrieben und diskutiert werden.
Mit einer Zusammenfassung und einem Ausblick auf die Zukunft in Kapitel 5.4 wird die
Arbeit abgeschlossen.
viii
2 Grundlagen
1
2 Grundlagen
In diesem Kapitel wird auf diejenigen Verfahren und Technologien eingegangen, die grundlegend für das Verständnis des hier vorgestellten Verfahrens sind. Nach einem kurzen
Überblick über die moderne redundante Datenverarbeitung in Rechnersystemen folgt eine Betrachtung von möglichen Netzstrukturen, Protokollen und Organisationsformen in
drahtlosen Netzen. Anschließend werden mögliche Anwendungen für drahtlose Sensornetze diskutiert.
2.1 Methoden zur redundanten Datenspeicherung in
Rechnersystemen
Eine grundlegende Eigenschaft von Rechnersystemen ist die Fähigkeit, Daten für eine
spätere Verarbeitung zu sichern. Unter dem Begriff Massenspeicher versteht man Peripheriegeräte, die in der Lage sind, große Mengen an Daten über einen längeren Zeitraum
(bis zu einigen Jahren) zu speichern. Anfänglich waren das Magnetbänder, doch wurden
diese durch Festplatten ersetzt. Heutzutage werden zusätzlich noch Compact Disks (CD)
oder Digital Versatile Disks (DVD) für die Datenspeicherung genutzt.
Ein Rechner steuert Festplatten über einen Controller an. Der Controller meldet dem
Rechner und damit auch dem darauf arbeitenden Betriebssystem die Anzahl der zur Verfügung stehenden Festplatten und deren jeweilige Kapazität. Die weitere Nutzung der
Festplatten obliegt damit dem Betriebssystem, das nun Daten in Blöcken über den Controller schreiben oder lesen kann. Durch die fortschreitende Entwicklung in verschiedenen
Bereichen der Mikroelektronik werden Rechnersysteme immer leistungsfähiger. Mit dem
Anwachsen der Rechnerleistung wächst auch der Bedarf an permanenten Datenspeichern,
die nicht nur schnell, sondern besonders zuverlässig eine Vielzahl von Nutzdaten unterbringen können. Die Entwicklung der Festplatten konnte diesem Entwicklungstempo nicht
folgen. Die Spanne zwischen zur Verfügung stehender und von den Anwendungen benötigtem Datendurchsatz und Kapazität wurde immer größer ([Hol94]). Einen Ausweg bot das
Bilden von Festplattenverbunden, den Redundant Array Of Independent Disks“ (Redun”
danter Verbund unabhängiger Festplatten, kurz RAID). Dabei werden zwei oder mehrere
Festplatten zu einem Verbund zusammengefügt, in dem die einzelnen Festplatten parallel
arbeiten und vom verwendeten Computersystem als eine große Einheit betrachtet werden.
Dadurch wird nicht nur die Kapazität vervielfacht, sondern auch der Datendurchsatz.
Ein Festplattenverbund wird immer von einem Controller gesteuert. Dieser stellt die
Verbindung zwischen dem Verbund und dem Betriebssystem des Rechners her. Wenn
das Betriebssystem Datenblöcke (meistens mehrere Kilobytes) lesen oder schreiben will,
werden entsprechende Anfragen an den Controller weitergeleitet. Dieser übernimmt die
2 Grundlagen
2
Ansteuerung der einzelnen Festplatten und das Zusammensetzen der Daten. Der Vorgang
ist für das Betriebsystem (oder den Anwender) nicht erkennbar, d.h. es ist nicht zu unterscheiden, ob der Festplattenverbund aus einer, zwei oder mehreren Festplatten besteht
und von welcher Festplatte gelesen oder auf welche geschrieben wird.
Mit der weiteren Entwicklung der RAID Technologie ergaben sich unterschiedliche
Möglichkeiten, die Datenblöcke auf den einzelnen Festplatten zu organisieren. Diese unterschiedlichen Techniken werden in Stufen (Level) eingeteilt, die im Folgenden kurz beschrieben werden1 . Je nach RAID Methode kann der Controller Festplattendefekte erkennen und die Daten auf anderen, nicht defekten Festplatten, wiederherstellen. Bei einer
späteren Realisierung von RAID Algorithmen in Festplattencontrollern wird nicht nur der
Algorithmus des genutzten Verfahrens implementiert, sondern es werden auch analytische
Modelle der verwendeten Hardware [VLW97] benötigt, um auf spezielle Eigenschaften der
Festplatten (Aufbau der Festplatten, Umdrehungsgeschwindigkeit, Schreib/Lesekopf Bewegung) einzugehen. Diese Modelle sollen hier nicht weiter berücksichtigt werden, da nur
die in den einzelnen RAID Verfahren genutzten Methoden von Interesse sind.
2.1.1 RAID Level 0
Eine einfache Methode einen Festplattenverbund zu bilden, ist das Erstellen einer großen
Festplatte durch die Aneinanderreihung mehrerer kleinerer Platten. Dabei werden die zu
schreibenden Daten in gleich große Blöcke unterteilt und nacheinander auf alle beteiligten
Festplatten geschrieben, wie in Bild 1 (Seite 3) dargestellt.
Dieses Verfahren wird auch Striping“ genannt, da die Daten in Stripes“ (Streifen)
”
”
auf die einzelnen Festplatten gespeichert werden. Ein solcher einfacher Verbund wird als
RAID Level 0, oder umgangssprachlich Just a Bunch Of Disks“ (JBOD, engl. für Nur
”
”
ein Haufen Festplatten“) bezeichnet. Dadurch, dass bei einem Schreib- oder Lesevorgang
alle beteiligten Festplatten gleichzeitig genutzt werden können, steigt gegenüber einer
einzigen Festplatte der Datendurchsatz bei gleichzeitiger Verringerung der Zugriffszeit.
Allerdings geht dieser Geschwindigkeitsvorteil auf Kosten der Datensicherheit. Ein Ausfall einer einzigen Festplatte hat den Verlust aller Daten zur Folge, da nur komplette,
zusammenhängende Datenstreifen von dem angeschlossenen Rechnersystem verarbeitet
werden können. Eine Wiederherstellung der Daten ist aufgrund nicht vorhandener Redundanz nicht möglich.
Somit steigt die Fehleranfälligkeit eines solchen Systems, und es läßt sich für einen
Verbund von N Festplatten unter der Voraussetzung, dass die Ausfallrate aller verwendeten Festplatten identisch und unabhängig von einander ist, zeigen, dass die mittlere
1
Eine genauere Betrachtung der einzelnen Verfahren findet sich in ([Hol94]).
2 Grundlagen
3
RAID Controller
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
Disk 1
Disk 2
Disk 3
Disk 4
Disk 5
Bn entspricht einem Datenblock von mehreren Bytes.
Bild 1: Striping mit Raid Level 0
Zeit zwischen zwei Ausfällen genau das 1/N -fache der mittleren Ausfallzeit einer einzelnen Festplatte beträgt [Hol94]. Dies wird umso mehr zu einem entscheidenden Faktor, je
weiter durch die fortschreitende Technik die Kapazität der einzelnen Festplatten ansteigt.
Die Kapazität K eines RAID Level 0 Systems lässt sich mit
K =n∗D
(1)
beschreiben, wobei n die Anzahl der Festplatten und D die Kapazität der einzelnen
Festplatten bezeichnet.
2.1.2 RAID Level 1
Aufgrund der unter Umständen problematischen Ausfallrate von Festplatten bei RAID
Level 0 wurde ein einfaches Verfahren gesucht, um schon auf Hardwareebene ein gewisses
Maß an Datensicherheit zu gewährleisten. Bei RAID Level 1, wie in Bild 2 auf Seite 4
dargestellt, werden die Festplatten in Paaren organisiert, was eine gerade Anzahl von
Festplatten voraussetzt.
Jedes Paar wird wie eine einzelne Festplatte angesprochen und die angeforderten
Schreib-/Leseoperationen werden immer für beide Platten ausgeführt. Dadurch ergeben
sich zwei identische Festplatten, man spricht von einer Spiegelung (eng. mirroring“). Die
”
2 Grundlagen
4
RAID Controller
B0
B0
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5
B6
B6
B7
B7
Disk 1
Disk 2
Disk 3
Disk 4
Bn entspricht einem Datenblock von mehreren Bytes.
Bild 2: Spiegelung mit Raid Level 1
Datenblöcke verteilen sich auf die einzelnen Festplattenpaare. Fällt nun in einem Paar
eine Festplatte aus, so sind die Daten auf der zweiten Festplatte dennoch intakt und
lassen sich wiederherstellen. Ein so organisierter Verbund mit N Festplatten kann, wenn
von jedem Paar nur maximal eine Festplatte ausfällt, N/2 gleichzeitige Ausfälle überstehen. Die Kapazität reduziert sich jedoch im Vergleich mit RAID Level 0 um die Hälfte,
was die Kosten pro Datenbyte stark erhöht und die Attraktivität dieser RAID Variante
verringert. Datenverlust ist dennoch möglich, nämlich genau dann, wenn alle Festplatten
eines Paares ausfallen.
Abschliessend kann die Kapazität K eines RAID Level 1 Systems mit
K = n/2 ∗ D
(2)
angegeben werden, wobei n die Anzahl der Festplatten und D die Kapazität der einzelnen
Festplatten bezeichnet.
2.1.3 RAID Level 2
RAID Level 2 benutzt eine andere Datenorganisation. Hier werden die im Verbund vorhandenen Festplatten vom Controller in Check-Disks“ und Data-Disks“ eingeteilt. Wäh”
”
rend die Data-Disks“ als eigentliche Datenspeicher fungieren und somit die Gesamtka”
2 Grundlagen
5
pazität des Verbundes darstellen, wird auf den Check-Disks“ ein Hamming-Code zur
”
Fehlerkorrektur gespeichert, wie in Bild 3 (siehe Seite 6) zu sehen ist.
Darüber hinaus werden die Daten nicht in Blöcken zu mehreren Kilobytes abgelegt,
sondern in Blöcken von wenigen Bits bis hin zu einigen Bytes. Je nach verwendetem
Hamming-Code können Ausfälle von ein bis hin zu mehreren Festplatten toleriert werden, allerdings steigt mit der Komplexität des Hamming-Codes auch der dafür benötigte
Speicherplatz und somit die Anzahl der Check-Disks“. Gegenüber RAID Level 1 sinken
”
die Kosten für die geforderte Redundanz, da für die gewünschte Speicherkapazität eines
Verbundes nicht doppelt so viele Festplatten benötigt werden. Je nach Hamming-Code
liegt der zusätzlich benötigte Speicherplatz bei 30% bis 40% der Datenkapazität.
Die Kapazität K eines RAID Level 2 Systems lässt sich mit
K = (n − c) ∗ D
(3)
beschreiben, wobei n die Anzahl der Festplatten, c die Anzahl der benötigten Check-Disks
und D die Kapazität der einzelnen Festplatten bezeichnet.
2.1.4 RAID Level 3
RAID Level 3 ist eine Weiterentwicklung von RAID Level 2. Die Daten werden wieder in
Blöcken zu mehreren Bits oder Bytes auf die Festplatten geschrieben und, wie in Bild 4(a)
(siehe Seite 7) gezeigt, auf die einzelnen Platten verteilt. Für die Fehlerkorrektur wird
kein Hamming-Code, sondern eine einfache Parität verwendet.
Diese Parität wird auf einer separaten Parity Disk“ gespeichert. Dadurch verringert
”
sich der Speicherbedarf für die geforderte Redundanz bei einem Verbund aus N Festplatten auf 1/N . Bei einem Ausfall einer Festplatte kann der Inhalt dieser Festplatte mit
Hilfe der Parität und der anderen noch vorhandenen Daten errechnet werden.
Die Ausfälle mehrerer Festplatten können ebenfalls kompensiert werden, allerdings nur
unter Verwendung effektiverer Fehlerkorrektur-Codes und mehrerer Parity Disks“. Da
”
die gespeicherten Datenblöcke im Vergleich zu den von einem Betriebssystem angefragten Datenmengen klein sind, werden bei einer Anfrage des Betriebssystems alle DatenFestplatten belastet, was schon bei einem RAID Level 0 Verbund zu einer hohen Datenrate führte. Allerdings müssen durch diese Organisation der Daten einzelne Anfragen
des Betriebssystems nacheinander abgearbeitet werden, da stets alle Festplatten benötigt
werden. Deshalb eignet sich ein solcher Verbund für Anwendungen, die sequentiell große
Datenmengen anfordern.
2 Grundlagen
6
RAID Controller
B0
B1
B2
H1
H2
B3
B4
B5
H3
H4
B6
B7
B8
H5
H6
B9
B10
B11
H7
H8
Disk 1
Disk 2
Data Disks
Disk 3
Disk 4
Disk 5
Check Disks
Bn entspricht einem Datenblock von mehreren Bits oder Bytes,
Hn entspricht einem Hamming-Code für mehrere Bits oder Bytes.
Bild 3: RAID Level 2 mit Fehlerkorrektur Code
2.1.5 RAID Level 4
RAID Level 4 ist prinzipiell identisch mit RAID Level 3 (Bild 4(b), auf Seite 7), nur wurde es für andere Anwendungen entwickelt. Um auch kleinere Datenmengen effizient lesen
und schreiben zu können, werden die Daten in Blöcken zu mehreren Kilobytes auf die
Festplatten geschrieben und mit dem aus RAID Level 3 bekannten Verfahren der dazugehörige Paritätsblock gebildet. Dieser wird, analog zu RAID Level 3, auf einer separaten
Parity Disk“ gespeichert. Da nun durch die höhere Blockgröße für eine Datenanfrage des
”
Betriebssystems selten mehr als eine Festplatte benötigt wird, kann ein so organisierter
Festplattenverbund schneller kleine Datenmengen parallel verarbeiten. Allerdings kann
sich die einzelne Parity Disk“ auch als Engpass erweisen. Bei vielen kleinen Schreibvor”
gängen auf den Datenplatten muss immer auf den Schreibvorgang auf der Parity Disk“
”
gewartet werden, da Schreibzugriffe nur nacheinander erfolgen können.
Die Kapazität K eines RAID Level 3 und Level 4 Systems lässt sich mit
K = (n − 1) ∗ D
(4)
beschreiben, wobei n die Anzahl der Festplatten und D die Kapazität der einzelnen
Festplatten bezeichnet.
2 Grundlagen
7
RAID Controller
b0
b1
b2
b3
p[0-3]
b4
b5
b6
b7
p[4-7]
b8
b9
b10
b11
p[8-11]
b12
b13
b14
b15
p[12-15]
Disk 1
Disk 2
Disk 3
Disk 4
Disk 5
Parity Disk
Data Disks
(a) Raid Level 3
RAID Controller
B0
B1
B2
B3
P[0-3]
B4
B5
B6
B7
P[4-7]
B8
B9
B10
B11
P[8-11]
B12
B13
B14
B15
P[12-15]
Disk 1
Disk 2
Disk 3
Disk 4
Disk 5
Parity Disk
Data Disks
(b) Raid Level 4
bn(Bn) entspricht einem Datenblock von mehreren Bits (Bytes),
pn(P n) entspricht einem Paritätsblock von mehreren Bits (Bytes).
Bild 4: RAID mit Parität (Bit- und Byteorientiert)
2 Grundlagen
8
2.1.6 RAID Level 5
Der Engpass der Parity Disk“ aus RAID Level 4 wird bei RAID Level 5 eliminiert.
”
Die Daten werden wieder in mehrere Kilobyte große Blöcke auf die einzelnen Festplatten
verteilt und ein Paritätsblock errechnet. Dieser wird jedoch nicht auf einer speziellen
Festplatte gespeichert, sondern mit den Daten auf die Festplatten verteilt. Das in Bild 5
dargestellte Standardverfahren speichert die Paritätsblöcke entlang einer Diagonalen und
ordnet die Datenblöcke um diese an. Dieses Verfahren nennt man links-symmetrische
”
Organisation“.
RAID Controller
B0
B1
B2
B3
P[0-3]
B5
B6
B7
P[4-7]
B4
B10
B11
P[8-11]
B8
B9
B15
P[12-15]
B12
B13
B14
Disk 1
Disk 2
Disk 3
Disk 4
Disk 5
Bn entspricht einem Datenblock von mehreren Kilobytes,
P n entspricht einem Paritätsblock von mehreren Kilobytes.
Bild 5: RAID Level 5, links-symmetrische Organisation
Dadurch wird sichergestellt, dass bei größeren Anfragen ein Maximum an Festplatten
arbeitet. Es existieren neben der links-symmetrischen Organisation noch andere Anordnungsverfahren, allerdings ist das grundsätzliche Verfahren immer gleich. Die Kapazität
eines RAID Level 5 Systems lässt sich mit der bereits für RAID Level 3 und RAID Level
4 gebildeten Gleichung 4 (siehe Seite 6) beschreiben.
2.1.7 Kombinationen der verschiedenen Verfahren
Es ist auch durchaus üblich, mehrere RAID Level miteinander zu kombinieren: die Daten
auf einem RAID Level 0 Verbund können mittels RAID Level 1 auf einen zweiten RAID
2 Grundlagen
9
Level 0 Verbund gespiegelt werden. Diese Technik, auch RAID Level 10 oder RAID Level 1+0 genannt, wird von modernen RAID Controllern beherrscht. Es existieren auch
weitere, auf bestimmte Applikationen spezialisierte RAID Verfahren, wie das von Stodolsky [Sto93] beschriebene Optimierungsverfahren für kleine Schreibzugriffe, oder das
von Stonebraker in [SSIGA90] beschriebene Distributed Raid“, was verschiedene Raid
”
Systeme durch das Internet verbindet, die hier aber nicht weiter betrachtet werden, da
das grundsätzliche Verfahren nicht verändert wird.
2.2 Protokolle für drahtlose Netze
Mit Hilfe von Sensorknoten können Anwender drahtlose Netze mit unterschiedlicher Teilnehmeranzahl bilden. Dazu bedarf es leistungsstarker Netzprotokolle, die den Zugriff auf
die Ressource Netz“ regeln und die Kommunikation zwischen den Netzteilnehmern or”
ganisieren. Diese Protokolle basieren im Wesentlichen auf bereits verfügbaren Techniken,
die ihren Ursprung in Rechnernetzen besitzen. Diese Vielzahl an verfügbaren Protokollen
für Netze und deren unterschiedliche Organisationsformen wird im Allgemeinen mit Hilfe
eines Modells beschrieben und diskutiert. Nach einer Einführung in dieses Modell folgt
eine Übersicht möglicher Organisationsformen von Rechnernetzen und eine Beschreibung
spezieller Eigenschaften, die bei der Entwicklung von Protokollen für drahtlose Netze
berücksichtigt werden müssen.
2.2.1 Das ISO-OSI Schichtenmodell
Drahtlose Sensorknoten bilden Netze. Der Aufbau dieser Netze findet ohne äußeres Zutun
statt, spontan (ad-hoc) und selbstkonfigurierend. Dies stellt neue Forderungen an die verwendeten Netzprotokolle. Protokolle, die in Rechneranlagen Verwendung finden, lassen
sich bei diesen Netzen nicht anwenden, da sie entweder für den jeweiligen Einsatzort im
Vorfeld konfiguriert werden müssen (z.B. bei den Protokollen TCP/IP2 oder SPX/IPX3 ),
oder mit den beschränkten Ressourcen der Sensorknoten nicht zu implementieren sind
(z.B. bei den Protokollen AppleTalk, NetBIOS/SMB 4 oder Datenkomprimierende Protokolle wie [CM02]). Weiterhin sind diese Protokolle nicht für den drahtlosen Einsatz
optimiert, so dass sich beispielsweise überflüssiges Senden oder mangelnde Fehlerkorrektur negativ auf den Energieverbrauch auswirken.
Der funktionelle Aufbau von Netzprotokollen lässt sich mit Hilfe des OSI Schichtenmodells (OSI, Open Systems Interconnection) anschaulich beschreiben. Wie in Bild 6 auf
Seite 10 dargestellt, teilt das OSI-Modell ein Protokoll in Schichten und schreibt dabei
2
Transmission Control Protocol/Internet Protocol“ [Tan02]
Sequence Packet Exchange/Internetwork Packet eXchange“[Tan02]
4”
Network Basic Input Output System/Server Message Block“ [Tan02]
”
3”
2 Grundlagen
10
jeder Schicht eine eigene Funktion zu. Die einzelnen Schichten stellen die Funktionen
über definierte Schnittstellen den oberhalb liegenden Schichten zur Verfügung. So kann,
unter der Voraussetzung, dass die Schnittstellen unverändert bleiben, die Implementierung einer Schicht geändert werden, ohne andere Schichten verändern zu müssen. Die
im Zusammenhang mit diesem Modell entwickelten OSI Netzprotokolle wurden aufgrund
der großen Verbreitung des Protokolls TCP/IP selten genutzt; das allgemein gehaltene
Schichtenmodell ist jedoch immer noch gültig, da es den Sachverhalt zufriedenstellend
wiedergibt. Das OSI-Modell wurde 1983 von der International Standards Organization
(ISO) vorgeschlagen und 1995 überarbeitet. In diesem nun ISO-OSI-Referenzmodell genannten Modell werden sieben Schichten definiert, die im Folgenden, beginnend mit der
Bitübertragungsschicht von unten nach oben beschrieben werden:
Anwendungsschicht
Anwendungsschicht
Darstellungsschicht
Darstellungsschicht
Sitzungsschicht
Sitzungsschicht
Transportschicht
Transportschicht
Vermittlungsschicht
End-To-End
Sicherungsschicht
Vermittlungsschicht
Sicherungsschicht
Mediumzugriff
Mediumzugriff
Bitübertragungsschicht
Bitübertragungsschicht
Übertragungskanal
Bild 6: Das ISO-OSI Schichtenmodell
2 Grundlagen
11
Die Bitübertragungsschicht
In der Bitübertragungsschicht oder dem Physical Layer“ wird die Art der Übertragung
”
von einzelnen Bits über einen Übertragungskanal definiert. Dabei wird sichergestellt,
dass beide Seiten das binäre Zeichen 1“ auch als solches erkennen und nicht etwa ein
”
gesendetes binäres Zeichen 1“ auf Empfängerseite zum binären Zeichen 0“ mutiert. Hier
”
”
sind also bei der Entwicklung mehrere physikalische Aspekte wie z.B. die Übertragungszeit
für ein Bit zu berücksichtigten. Es werden mechanische, elektrische und zeitbezogene
Schnittstellen definiert.
Die Sicherungsschicht
Die Sicherungsschicht oder Data Link Layer“ stellt eine sicherere und effiziente Verbin”
dung zwischen zwei Netzteilnehmern her. Sie bildet eine Leitung nach, die sich wie eine
direkte Kabelverbindung zwischen der Quelle und der Senke der Daten verhält. Zu den
Aufgaben der Sicherungsschicht gehören die Sicherstellung der Reihenfolge der gesendeten
Bits, die Behandlung von Übertragungsfehlern und die Steuerung der Übertragungsgeschwindigkeit. Daten werden von der Sicherungsschicht in Rahmen gekapselt und verwaltet. Jeder Rahmen (Frame) besteht aus einem Header“ (Nachrichtenkopf), dem Nutzda”
tenfeld und einem Trailer“ (Nachspann). In einem Nachrichtenkopf sind Informationen
”
über die Daten einkodiert, beispielsweise die Länge der Daten und eine Paketnummer.
Der Nachspann enthält Prüfsummen, mit denen die Daten auf Fehler getestet werden
können.
Die Sicherungschicht stellt der nächst höheren Schicht, der Vermittlungsschicht, über
Schnittstellen unterschiedliche Dienste zur Verfügung. Häufig werden nur die folgenden
drei Dienste implementiert:
• Der unbestätigte, verbindungslose Dienst
• Der bestätigte, verbindungslose Dienst
• Der bestätigte, verbindungsorientierte Dienst
Bei Nutzung des ersten Dienstes werden Datenrahmen von der Quelle zum Ziel gesendet, ohne dass das Ziel den erfolgreichen Empfang bestätigen muss. Weiterhin wird auch
ein Verlust von Datenrahmen nicht erkannt und somit auch nicht versucht, einen fehlenden
Datenrahmen neu zu senden. Dieser Dienst wird genutzt, wenn das Übertragungsmedium annähernd fehlerfrei ist, so dass ein Erkennen von Fehlern in höhere Schichten des
2 Grundlagen
12
Protokolls verlagert werden kann, oder wenn die Applikation Daten in Echtzeit erwartet
(Sprachübertragung5 ).
Bei Nutzung des bestätigten, verbindungslosen Dienstes muss der Empfang jedes Datenrahmens vom Ziel bestätigt werden. Stellt die Quelle fest, dass ein Datenrahmen nicht
bestätigt wurde, wird der Rahmen noch einmal gesendet. Dabei muss die Reihenfolge der
Datenrahmen am Empfänger nicht unbedingt mit der gesendeten übereinstimmen, da das
Wiederholen von nicht bestätigten Daten zu keinem bestimmten Zeitpunkt erfolgen muss.
Weiterhin kann es vorkommen, dass Datenrahmen mehrfach bei einem Empfänger ankommen, da die Bestätigung des erfolgreichen Empfangs nicht bis zur Quelle durchdrang. Die
Erkennung und Behebung dieser beiden möglichen Fehler muss somit auch in der Sicherungsschicht erfolgen. Dieses Verfahren stellt eine Steigerung der Übertragungssicherheit
dar und wird in der drahtlosen Kommunikation verwendet, da dieser Übertragungskanal
im Vergleich zu einer kabelgebundenen Übertragung unzuverlässig ist.
Der bestätigte, verbindungsorientierte Dienst baut bei jeder Datenübertragung zwischen Quelle und Ziel eine Verbindung auf. Es wird garantiert, dass Daten, die innerhalb
dieser Verbindung gesendet werden, nur einmal bei dem Empfänger ankommen und zwar
in ihrer gesendeten Reihenfolge. Der Vermittlungsschicht wird somit ein zuverlässiger
Bitstrom von der Quelle bis zur Senke zur Verfügung gestellt.
Um einen Zielknoten in die Lage zu versetzen, den erfolgreichen Empfang eines Datenrahmens zu bestätigen, muss dem Datenrahmen diesbezüglich Informationen zugefügt werden. Üblicherweise werden, je nach Übertragungsmedium, entweder Fehlerkorrekturcodes6 oder Fehlererkennungscodes verwendet. Letztere werden eingesetzt, wenn
das Übertragungsmedium annähernd fehlerfrei ist und ein vereinzeltes Wiederholen von
Datenrahmen nicht ins Gewicht fällt. In diese Klasse fallen Polynomcodes, die auch zyklische Redundanzprüfung oder CRC (Cyclic Redundancy Check) genannt werden.
Fehlerkorrekturcodes werden bei störanfälligen Übertragungsmedien, beispielsweise bei
einer drahtlosen Übertragung, eingesetzt. Bei dieser Übertragung ist es effizienter, die
Datenrahmen um Informationen zu erweitern, mit deren Hilfe der Empfänger bei einem
auftretenden Fehler die Ursprungsdaten wiederherstellen kann, als permanent komplette
Datenrahmen zu wiederholen. In diese Klasse fallen die so genannten Hamming-Codes.
Als Beispiel für die Sicherungsschicht kann das Punkt-zu-Punkt Protokoll (Point-toPoint Protocol, PPP) angesehen werden. Dieses Protokoll wird verwendet, um über gestörte Telefonleitungen eine Punkt-zu-Punkt Verbindung aufzubauen und oberhalb lie5
Bei der Sprachübertragung wird ein verspätetes Senden als deutlich störender empfunden als ein Fehlen
von Daten.
6
Fehlerkorrekturcodes werden auch als Vorwärtsfehlerkorektur, oder Forward Error Correction“ be”
zeichnet.
2 Grundlagen
13
genden Protokollen, beispielsweise TCP/IP, eine Kommunikation über einen gestörten
Kanal zu ermöglichen.
Beispiele und weitere Erklärungen zu den Fehlererkennungs- oder Fehlerkorrekturcode
werden in [Tan02] erläutert.
Die Vermittlungsschicht
Die der Sicherungsschicht folgende Vermittlungsschicht (Network Layer) überträgt Pakete
von ihrem Ursprungsknoten bis zum Ziel. Dabei ist es unerheblich, ob der Datentransfer
zwischen zwei benachbarten Knoten stattfindet, oder das Paket über viele Zwischenstationen weitergeleitet (geroutet) wird. Dies unterscheidet sich von der Sicherungsschicht,
die nur Daten von einem Ende der Leitung bis zum anderen Ende (also von Knoten zu
Knoten) leitet. Damit ist die Vermittlungsschicht die unterste Schicht, die Endpunkt zu
Endpunkt Dienste anbietet.
In der Vermittlungsschicht muss, um diese Aufgabe lösen zu können, zumindest in Teilen Kenntnis über das Netz vorhanden sein. Es müssen gültige Netzrouten gebildet und
dabei auf eine gleichmäßige Auslastung der einzelnen Routen geachtet werden. Neben
diesen Quality-of-Service (QoS) Diensten kann die Vermittlungsschicht der nächsthöheren Schicht, der Transportschicht, zwei Arten von Diensten bereitstellen: zum einen den
verbindungslosen Dienst, zum anderen den verbindungsorientierten Dienst. Unabhängig
welche Art implementiert wird, schirmt die Vermittlungsschicht die oberhalb liegenden
Schichten von der verwendeten Hardware und Netztopologie ab.
Der verbindungslose Dienst stellt keinerlei Fehler- und Flusskontrolle zur Verfügung.
Es werden nur Funktionen zum Versand und Empfang von Paketen bereitgestellt. Der
verbindungsorientierte Dienst wiederum stellt eben solche Fehler- und Flusskontrollfunktionen zur Verfügung. Damit lassen sich Netze realisieren, die eine hohe Dienstgüte, also
eine hohe Zuverlässigkeit, besitzen.
Da die Vermittlungsschicht ihre Dienste in Form von hardwareunabhängigen Programmfunktionen anbietet, müssen bei der Realisierung dieser Schicht die Eigenschaften
der Hardware berücksichtigt werden. Erlaubt beispielsweise die verwendete Hardware nur
Datenrahmen einer bestimmten Größe (z.B. Ethernet), müssen größere Datenpakete in
passende Datenpakete aufgeteilt werden (Fragmentieren oder Segmentieren). Daraus folgt
jedoch, dass diese Pakete am anderen Ende von der Vermittlungsschicht wieder zusammengesetzt werden müssen, bevor sie an die oberhalb liegenden Schichten weitergegeben
werden.
2 Grundlagen
14
Die Transportschicht
Die Transportschicht (Transport Layer) bietet wiederum zwei Arten von Diensten an. Dies
sind der verbindungslose und der verbindungsorientierte Dienst. Tanenbaum beizeichnet
diese Schicht als Kern der Protokollhierarchie [Tan02]. Obwohl sie ähnliche Dienste wie die
Vermittlungsschicht zur Verfügung stellt, ist sie die wichtigste Schicht; denn während die
Vermittlungsschicht als Teil der Hardware implementiert wird, ist die Transportschicht
Teil der Software. Sie kann, unabhängig von der verwendeten Hardware, die Dienstgüte
verbessern und somit zuverlässiger arbeiten als die darunter liegende Vermittlungsschicht.
In dieser Schicht wird ermittelt, wie viele Daten nach einem unerwarteten Verbindungsabbruch fehlerfrei übertragen wurden und ab welchem Datensatz die Übertragung fortgesetzt werden muss. Sie stellt ihre Dienste der Sitzungsschicht zur Verfügung. Es existiert
eine Standardmenge von Dienst-Primitiven, so dass Anwendungen, die diese nutzen, auch
bei unterschiedlichen Netzen mit unterschiedlicher Anfälligkeit für Störungen funktionieren. Deshalb werden die Schichten von der Bitübertragungsschicht bis einschließlich der
Transportschicht auch als Transportschichtdienst-Bereitsteller bezeichnet, die Schichten
oberhalb der Transportschicht werden als Transportschichtendienst-Benutzer bezeichnet.
Die Sitzungsschicht
Die Sitzungsschicht (Session Layer) stellt Sitzungen zwischen zwei unterschiedlichen Rechnern her. Eine Sitzung kann unterschiedliche Dienste zur Verfügung stellen. Dies kann ein
Synchronisationsdienst sein, der nach einem unerwarteten Abbruch der Verbindung feststellt, bis zu welchen Byte die Übertragung erfolgreich war, oder eine Tokenverwaltung,
die sicherstellt, dass eine kritische Operation nicht von zwei oder mehr Anwendern gleichzeitig durchgeführt wird.
Die Darstellungsschicht
In der Darstellungsschicht (Presentation Layer) werden die Datenstrukturen, die zwischen
den Mitgliedern des Netzes ausgetauscht werden, verwaltet und kodiert. Hier liegt der
Unterschied zu den unteren Schichten. Während dort auf Bitebene gearbeitet wird, wird
in der Darstellungsschicht mit kompletten Strukturen gearbeitet.
Die Anwendungsschicht
Die oberste Schicht, der Anwendungsschicht (Application Layer), stellt dem Benutzer
nun eine Vielzahl von Diensten zur Verfügung. Die im Internet meist genutzen Protokol-
2 Grundlagen
15
le für Webseiten (HTTP7 ), E-Mail (SMTP8 , POP39 , IMAP10 ) und Dateiübertragungen
(FTP11 ) sind allesamt Anwendungen, die Funktionen der Anwendungsschicht nutzen. Von
diesen Diensten lassen sich andere Dienste ableiten, wie das in [CBJ+ 02] vorgestellte Verfahren, da die Anwendungsschicht als oberste Schicht im ISO-OSI Schichtenmodell nur
sehr allgemein gehaltene Funktionen zur Verfügung stellt, so dass die Anwendungen leicht
zu modifizieren sind.
2.2.2 Netztopologien
Computer oder andere Geräte können zu Netzen verbunden werden. Ein Gerät ist mit
dem Netz verbunden, wenn mindestens eine Verbindung zwischen dem Endgerät und
einem Netzteilnehmer besteht. Ein Gerät, das Teilnehmer in einem Netz ist, wird als
Knoten12 bezeichnet. In der Computertechnik wird von Netztopologie gesprochen, wenn
die Form beschrieben wird, in der die einzelnen Geräte ein Netz bilden. Es wird zwischen
der logischen Topologie, die den Datenfluss zwischen den Knoten beschreibt und der physischen Topologie, die den eigentlichen Aufbau des Netzes (Verkabelung, Anschlüsse,...)
beschreibt, unterschieden. Die physische Topologie eines Netzes ist ein entscheidender
Faktor, wenn die Ausfallsicherheit des Netzes aufgrund von Hardwaredefekten betrachtet
wird.
Man unterscheidet in der Netztopologie fünf Grundformen, wobei sich komplexere Formen aus der Kombination dieser Grundformen ableiten lassen:
• Bus
• Ring
• Stern
• Baum
• Vermaschtes Netz
Bustopologie
Bei der Bustopologie (Bild 7) sind alle Geräte (Teilnehmer) des Netzes an einen zentralen
Bus angeschlossen, dem so genannten Backbone“.
”
7
Hyper Text Transport Protocol, Protokoll zum Übertragen von Webseiten.
Simple Mail Transport Protocol, Protokoll zum Versenden von E-Mail.
9
Post Office Protocol Version 3, Protokoll zum Empfangen von E-Mail.
10
Internet Message Access Protocol, Protokoll zum Bereitstellen von auf Servern gespeicherten E-Mails.
11
File Transfer Protocol, Protokoll für die einfache Übertragung von Dateien.
12
eng. node
8
2 Grundlagen
16
Bild 7: Bustopologie
Der Zugriff auf diesen Bus muss sequentiell erfolgen, damit die einzelnen Netzteilnehmer
sich nicht gegenseitig stören. Um miteinander kommunizieren zu können, müssen alle
Knoten kontinuierlich Daten empfangen. Daraus folgt, dass jeder Teilnehmer die Sendung
des anderen mithören muss. Durch dieses kontinuierliche Mithören können möglicherweise
vertrauliche Daten empfangen werden, die nur an einen bestimmten Empfänger gerichtet
waren. Dies ist ein Problem für die Datensicherheit (Abhörsicherheit) von Netzen mit
Bustopologie. Ein aktuelles Beispiel für dieses Problem ist das Mithören von Daten bei
Wireless LAN Netzen. Ein weiteres Problem ist die Backbone“-Abhängigkeit des Netzes.
”
Fällt der Backbone“ aus, ist das gesamte Netz funktionsuntüchtig. Von Vorteil sind auf
”
der anderen Seite die kostengünstige Installation und die einfache Erweiterungsfähigkeit
des Netzes.
Ringtopologie
Bei der in Bild 8 (siehe Seite 17) dargestellten Ringtopologie werden immer zwei Netzteilnehmer mit einer Punkt-zu-Punkt Verbindung verknüpft, so dass jedes Gerät immer
zwei direkte Nachbarn besitzt.
Dadurch entsteht ein Ring. Werden Daten von einem Knoten an einen anderen Knoten gesendet, nimmt ein Nachbarknoten diese entgegen und leitet sie solange an seinen
Nachbarn weiter, bis der Zielknoten erreicht wird. Dabei ist die Richtung, in der die
Daten durch den Ring gesendet werden immer gleich, entweder im Uhrzeigersinn oder
entgegengesetzt. Um ein Netz in Ringtopologie erfolgreich betreiben zu können, bedarf es
eines Adressierungsverfahrens, bei dem jeder Teilnehmer eine eindeutige Adresse im Netz
erhält. Da jeder Knoten eine Nachricht, die nicht für ihn bestimmt ist, an seinen Nach-
2 Grundlagen
17
Bild 8: Ringtopologie
barn weiterleitet (Repeater Funktion), kann mit dieser Topologie problemlos eine deutlich
größere Distanz überbrückt werden (bei Verwendung von Lichtwellenleitern mehrere Kilometer), als die durch physikalische Gegebenheiten (Wellenausbreitung, Kabelgeometrie)
festgelegte maximale Entfernung zwischen zwei Knoten. Fällt eine Verbindung zwischen
zwei Teilnehmern aus, ist das gesamte Netz funktionsunfähig. Um dies zu verhindern,
beherrschen einige Netze den Wechsel der Umlaufrichtung (z.B. von Uhrzeigersinn auf
Gegenuhrzeigersinn). Damit ist das Netz erst vollständig unterbrochen, wenn zwei Teilstücke ausfallen.
Ein Beispiel für ein Ringnetz ist das Token-Ring Netz (IEEE 802.5 [IEE05]). Dieses
kollisionsfreie Netz basiert auf der Weiterleitung eines Schlüssels, der Token genannt wird.
Dieses Token wird von Knoten zu Knoten weitergeleitet, es kreist durch das Netz. Wenn
ein Knoten Daten versenden möchte, wartet er auf das Eintreffen des Tokens. Bevor er
das Token an seinen Nachbarn weiterleitet, hängt er sein Datenpaket an dieses Token.
Dieses wird, zusammen mit dem Token, von Knoten zu Knoten weitergeleitet, bis der
Zielknoten erreicht wird. Dieser liest die Daten und markiert diese als gelesen. Kommt
das Datenpaket nach dem Durchlauf des kompletten Ringes zu seinem Ausgangspunkt,
wird überprüft ob es gelesen wurde. Ist dies der Fall, nimmt der Sender das Paket vom
Netz, andernfalls meldet er die Nichterreichbarkeit des Ziels.
2 Grundlagen
18
Sterntopologie
Netze, die in Sterntopologie (Bild 9) aufgebaut werden, sind im Vergleich zu den vorherigen Topologien gegenüber Ausfällen von Netzstrecken oder einzelner Knoten resistenter.
Ein solches Netz besitzt ein zentrales Gerät, an das alle anderen Netzteilnehmer mittels
einer Zweipunktverbindung angeschlossen sind.
Bild 9: Sterntopologie
Fällt nun ein Gerät oder eine Strecke aus, arbeitet das Restnetz weiter. Fällt jedoch
das zentrale Gerät aus, ist auch dieses Netz nicht mehr funktionsfähig. Solche Netze sind
im Small Office and Home Application“ (SOHO) Bereich beliebt, da sie einfach zu er”
stellen sind und eine erhöhte Sicherheit bieten. Ein einfaches Mittel, die Zuverlässigkeit
eines solchen Netzes zu erhöhen, ist das Hinzufügen einer zweiten zentralen Komponente
(Redundanz). Ein Beispiel für ein Netz mit Sterntopologie ist die Bluetooth Funktechnologie [Blu]. Dort übernimmt ein zentrales Gerät, der Master, die Koordinierung von bis
zu sieben anderen Geräten, den Slaves. Jegliche Kommunikation wird über den Master
abgewickelt, kein Slave kann direkt mit einem anderen Slave kommunizieren.
2 Grundlagen
19
Baumtopologie
Die in Bild 10 dargestellte Baumtopologie ist eine Mischform zwischen mehreren Sternnetzwerken und einem Busnetz. In seiner einfachsten Form sind nur die zentralen Komponenten der Sternnetze hierarchisch mit dem Bus verbunden.
Bild 10: Baumtopologie
Diese Topologie bietet bessere Erweiterungsmöglichkeiten als ein Busnetz (nur bedingt
für große Netze geeignet, da durch viele Knoten der Zugriff auf das Medium erschwert
wird) oder ein Sternnetz (dort ist der limitierende Faktor die Kapazität13 des zentralen
Gerätes).
Vermaschtes Netz
In einem vermaschten Netz (Bild 11) ist jeder Teilnehmer mit einem oder mehreren anderen Geräten direkt verbunden. Wenn jeder Teilnehmer mit allen anderen Geräten verbunden ist, spricht man auch von einem vollständig vermaschten Netz.
13
Dies kann beispielsweise eine Hardware-Beschränkung sein (Anschlüsse), oder die für viele Netzteilnehmer unzureichende Verarbeitungsgeschwindigkeit.
2 Grundlagen
20
Bild 11: Vermaschtes Netz
Es existieren so mehrere Möglichkeiten für ein Gerät, eine Verbindung zu einem anderen Netzteilnehmer aufzunehmen: entweder über eine mögliche direkte Verbindung, oder
durch Weiterleitung der Daten durch Nachbargeräte. Die Anfälligkeit gegenüber Geräteoder Leitungsausfällen ist dadurch im Vergleich mit anderen Topologien deutlich geringer,
da in den meisten Fällen eine Ausweichstrecke existiert, über die die Daten umgeleitet
werden können. Das Internet besitzt eine dem vermaschten Netz ähnliche Struktur: in
weiten Teilen existieren mehrfach vermaschte Netze, allerdings existieren auch Strecken,
über die verhältnismäßig viele Daten geleitet werden (z.B. Tiefseekabel im Atlantik oder
Pazifik). An diese Strecken, Backbones“ genannt, sind einzelne vermaschte Netze ange”
schlossen, was der Struktur den Charakter einer Bustopologie gibt.
Die logische Topologie eines Netzes nutzt die gleichen Grundformen wie die physische Topologie, ist aber von dieser unabhängig . So wird beispielsweise bei dem TokenRing Netz der Firma IBM auf Hardwareebene ein Sternnetz aufgebaut, während in den
Protokollschichten ein Ringnetz realisiert wird. Verschiedene Protokollschichten können
ebenfalls unterschiedliche logische Topologien implementieren. So kann auf den unteren
Schichten, wie der Bitübertragungsschicht oder der Sicherungsschicht, ein vermaschtes
Netz genutzt werden, während auf den darüber liegenden Schichten ein Sternnetz genutzt wird.
2 Grundlagen
21
2.2.3 Mehrfachzugriffsprotokolle für drahtlose Netze
Der Zugriff auf das Übertragungsmedium, der in einer Unterschicht der Sicherungsschicht, der Mediumzugriffskontrolle (engl. Medium-Access-Layer oder MAC-Layer), geregelt wird, muss bei drahtlosen Netzen seriell erfolgen14 , da sonst die zur Datenübertragung genutzten elektromagnetischen Wellen interferieren und Informationen verloren
gehen. Dies entspricht in der physischen Topologie einem Busnetz. Allerdings werden an
einen MAC-Layer, der für drahtlose Sensorknoten entwickelt wird, ganz andere Anforderungen gestellt als z.B. an den Wireless LAN Standard IEEE 802.11 [Sik01]. Dieses
besitzt aufgrund seines Einsatzgebietes (drahtloser Ersatz für kabelgebundenes Ethernet
in Rechnernetzen) keine hoch entwickelten Techniken zur Energieeinsparung, wie beispielsweise der von Y. Sagduyu vorgestellte collision resolution algorithm“ (CRA), der
”
bei einer Kollision eine Wiederholung des Sendevorgangs von der zur Verfügung stehenden Restenergie des Senders abhängig macht [SE03]. Eine Abschätzung inwieweit das
Senden, Empfangen und somit der verwendete MAC-Layer Einfluss auf die Lebensdauer
eines batteriebetriebenen Sensorknotens hat, liefert [BG01]. Eine weitere Analyse zur maximalen operativen Lebensdauer von Sensornetzen wurde von Zhihua Hu und Baochun
Li in [HL04] präsentiert.
Es soll nun eine nicht notwendigerweise vollständige Übersicht über Zugriffsprotokolle
für drahtlose Netze und die damit verbundenen Anforderungen gegeben werden. Auf weitere Details der darunter liegenden Bitübertragungsschicht soll an dieser Stelle verzichtet
werden, da dabei Aspekte der Hardware diskutiert werden müssen, was den Rahmen
dieser Arbeit überschreitet.
2.2.4 Das ALOHA System
Das ALOHA [Kah00] System wurde um 1970 von Norman Abramson an der Universität
von Hawai entwickelt. Es regelt den gleichzeitigen Zugriff vieler Sender auf die Luftschnittstelle. Ursprünglich für die Nutzung von Bodenfunk entwickelt lässt sich die Grundidee
auf viele Systeme übertragen. Die Grundidee ist recht einfach. Jeder Sender sendet Datenpakete mit einer festgelegten Länge zu einem beliebigen Zeitpunkt. Kollisionen und damit
der Totalverlust des Datenpaketes können auf zwei Arten detektiert werden: entweder ist
ein Knoten in der Lage, beim Senden gleichzeitig das Medium zu überwachen (Voll-Duplex
Modus), oder der Empfänger muss Empfangsbestätigungen versenden (Halb-Duplex Modus). Falls das Datenpaket nicht fehlerfrei übertragen werden konnte, wird es wiederholt.
Eine mögliche Wiederholung wird nicht sofort ausgeführt, sondern das Senden wird um
eine zufällig gewählte Zeit verzögert. So wird erreicht, dass die gleichen Datenpakete nicht
14
Ohne besondere Vorkehrungen, wie Kodierung oder Frequenzwechsel.
2 Grundlagen
22
wieder kollidieren. Systeme, bei denen es zu Kollisionen kommen kann, werden Konkurrenzsysteme (Contention Systems) genannt.
2.2.5 Das S-ALOHA System
Eine Erweiterung von ALOHA ist Slotted ALOHA (S-ALOHA) [Kah00]. Dabei wird
die Zeit in Intervalle mit der Länge des Datenrahmens eingeteilt. Ein Sender kann also nicht zu einem beliebigen Zeitpunkt senden, sondern muss auf den nächstmöglichen
Zeitschlitz warten. Dies setzt Zeitsynchronität bei allen Netzteilnehmern voraus. Erreicht
werden kann dies beispielsweise, indem jeder Knoten eine genaue Uhr besitzt, die in kurzen Intervallen mittels eines Zeitnormals (Funkuhr) justiert wird, oder ein Knoten im
Netz sendet zu Beginn eines Intervalls ein spezielles Signal aus, durch das die Knoten
synchronisiert werden. Der Ablauf ist ansonsten mit dem des ALOHA Systems identisch.
S-ALOHA stellt eine gewisse Verbesserung gegenüber ALOHA dar, da die Anzahl der
möglichen Kollisionszeitpunkte reduziert wurde.
2.2.6 Das CSMA Verfahren
Eine weitverbreitete Methode zur Regelung des Zugriffs ist Carrier Sense Multiple Ac”
cess“ (CSMA). In seiner einfachsten Form versucht der Transceiver, bevor Daten gesendet
werden, die Verfügbarkeit des Mediums zu ermitteln (Carrier Sense). Ist das Medium frei,
werden die Daten gesendet, andernfalls wird das Versenden der Daten um eine zufällig
gewählte Zeit verzögert. Ein Nachteil dieses Verfahrens wird durch diese zufällige Verzögerungszeit hervorgerufen. Wenn das Medium innerhalb dieser Verzögerungszeit frei
wird, wird dies nicht erkannt. Folglich ist das Übertragungsmedium für einige Zeit ungenutzt, was einer effektiven Reduzierung der Kapazität des Mediums gleichzusetzen ist.
Um dies zu verhindern, testen die Transceiver auch während dieser Verzögerungszeit, ob
das Medium frei ist und senden gegebenenfalls die Daten, bevor die zufällig gewählte Verzögerungszeit abgelaufen ist. Mit dieser Implementierung von CSMA kann es allerdings
vorkommen, dass zwei Quellen gleichzeitig ein freies Medium erkennen und Daten senden.
Um diesen Fall der Kollision zu vermeiden, wird eine Wahrscheinlichkeit p eingeführt. Mit
dieser Wahrscheinlichkeit p werden die anstehenden Daten gesendet, wenn innerhalb der
Verzögerungszeit ein freies Medium erkannt wird. Mit der Wahrscheinlichkeit (1 − p) wird
das Versenden der Daten verzögert. Das Optimum von p ist eine Funktion der Datenrate
[EHC02]. Eine weitere Verbesserung ist die Detektion von Kollisionen. Wenn Kollisionen
erkannt werden, wird die Übertragung sofort unterbrochen. Dieses Vorgehen spart Zeit
und Bandbreite und wird als CSMA/CD (Carrier Sense Multiple Access with Collision
2 Grundlagen
23
Detection) bezeichnet. Allerdings existieren in einem drahtlosen Netz mit CSMA eine
Reihe weiterer Probleme, die im Folgenden kurz beschrieben werden:
Hidden Terminal Problem
Das sogenannte Hidden Terminal Problem“ (Bild 12) tritt auf, wenn zwei Sender A
”
und C, die sich nicht in gegenseitiger Reichweite befinden, gleichzeitig das Medium als
frei erkennen und Daten an einen dazwischenliegenden Empfänger B senden wollen. Als
Folge der Überlagerung der elektromagnetischen Wellen bei B kann der Empfänger die
gesendeten Daten nicht rekonstruieren.
B
A
C
D
Bild 12: Hidden und Exposed Terminal Problem
Exposed Terminal Problem
Als Exposed Terminal Problem“ wird folgende Situation bezeichnet: Knoten C soll Daten
”
an Knoten D senden, aber das Medium kann nicht als frei erkannt werden, da ein Knoten
in Reichweite von Knoten C bereits Daten sendet, beispielsweise Knoten B an Knoten
A. Eine Möglichkeit, die Auswirkungen der beschriebenen Probleme zu reduzieren, ist
das Einführen einer Handshake-Methode“: Knoten, die Daten an andere Knoten senden
”
möchten, senden erst ein sogenanntes Request To Send“ (RTS) Signal an den Zielknoten.
”
Dieses Paket wird mit einem Clear To Send“ (CTS) beantwortet. Erst nach einem er”
folgreichen Senden der RTS/CTS Pakete werden Daten zwischen den beiden Teilnehmern
ausgetauscht. Dieses Verfahren wird Carrier Sense Multiple Access with Collision Avoi”
dance“ (CSMA/CA) genannt und findet unter anderem auch im IEEE 802.11 Wireless
LAN Standard Anwendung.
2 Grundlagen
24
2.2.7 Der IEEE 802.11 Standard
Obwohl sich der Standard IEEE 802.11 (Wireless LAN) [IEEa] aufgrund seines hohen
Energiebedarfs nicht für drahtlose Sensornetze eignet, wird hier die Übertragung von
Daten in einem solchen Netz beschrieben, da die dort durchgeführten Überlegungen Einfluss auf die Entwicklung von Protokollen für drahtlose Sensornetze haben. Der Standard
IEEE 802.11 verwendet zwei Betriebsarten, die verteilte Koordinierungsfunktion (Distributed Coordination Function, DCF) und die punktbezogene Koordinierungsfunktion
(Point Coordination Function, PCF). PCF setzt zum Betrieb eine zentrale Kontrollinstanz voraus (beispielsweise einen Access Point), die den Kommunikationsaufbau steuert
und ist hier nur der Vollständigkeit halber erwähnt. DCF verwendet im Gegensatz dazu
keine zentrale Koordinierung.
Es wird nochmals das Szenario aus Bild 12 betrachtet. Knoten B soll Daten an Knoten
C senden. Dazu wird getestet, ob der Kanal frei ist (carrier sense) und Knoten B sendet
ein RTS Paket, um die Daten senden zu können. Knoten C empfängt das RTS Paket und
beantwortet es mit einem CTS. Knoten B empfängt anschließend das CTS Paket und
beginnt die Daten zu senden. Der erfolgreiche Empfang wird von Knoten C mit einem
Acknowledge“ (ACK) Paket bestätigt. Dieser Ablauf entspricht soweit dem des oben
”
besprochenen CSMA/CA Verfahrens.
Der Standard IEEE 802.11 verfügt allerdings noch über einen sogenannten virtuellen
Test, ob der Kanal zum Senden frei ist. Wenn Knoten A in der Phase, in der Knoten C
das CTS Paket sendet, den Kanal prüft, wird er diesen als frei erkennen. Da der Kanal für
Knoten A frei ist, beginnt dieser zu senden. Dies führt dann zu einer Kollision am Knoten B, da Knoten B mit Knoten C kommuniziert, was die Hardware auf Knoten A nicht
detektieren konnte. Um eine solche Situation zu vermeiden, wird ein Netzbelegungsvektor (Network Allocation Vector, NAV) eingeführt. Dieser Vektor wird mit der zeitlichen
Dauer einer Übertragung initialisiert, sobald ein RTS oder CTS Paket empfangen wurde.
Dies setzt natürlich voraus, dass in einem solchen Paket die zu übertragende Datenlänge
enthalten ist. In dem in Bild 13 (siehe Seite 25) dargestellten Fall, kann Knoten A das
RTS Paket von B empfangen (aufgrund der einzelnen Reichweiten jedoch nicht das CTS
von Knoten C) und bestimmen, wie lange der Übertragungsvorgang dauert.
Innerhalb dieses Zeitraumes macht es aus Sicht von Knoten A keinen Sinn, das Medium auf Verfügbarkeit zu testen, da eine Übertragung in seiner Nachbarschaft stattfindet. Analog gilt dies für Knoten D. Hier wird das CTS von Knoten C empfangen und
der NAV entsprechend initialisiert. Bevor nun eine neue Kommunikation gestartet wird,
muss nicht nur das Medium getestet werden, sondern auch der Netzbelegungsvektor, ein
virtuelles Übertragungsmedium. Dass dieses Verfahren nicht alle Hidden/Exposed Ter”
minal“ Probleme eleminiert, zeigt Kaixin Xu in [XGB03]. Um das Verfahren zuverlässiger
2 Grundlagen
25
Knoten A
Knoten B
WAIT
Daten
RTS
Knoten C
CTS
ACK
Knoten D
WAIT
Zeit
Bild 13: Zeitlicher Ablauf der Datenübertragung bei IEEE 802.11
zu gestalten, wurden verschiedene Änderungen vorgeschlagen. So soll beispielsweise ein
Knoten nur dann auf ein RTS Paket mit einem CTS Paket antworten, wenn die Energie
des RTS Paketes beim Empfang einen bestimmten Schwellwert überschreitet (CTS-replythreshold), wodurch vorzeitige Verbindungsabbrüche verhindert werden.
Bei einer (drahtlosen) Übertragung ist die Wahrscheinlichkeit, dass lange Datenpakete
durch Übertragungsfehler unbrauchbar werden, größer als bei kurzen Datenpaketen. Aus
diesem Grund existiert bei IEEE 802.11 die Möglichkeit, die Datenpakete in kurze Datenfragmente aufzuteilen. Tritt nun in einem Datenfragment ein Übertragungsfehler auf,
braucht nur dieses wiederholt werden, nicht aber das komplette Datenpaket. Der Übertragungsvorgang wird dadurch effizienter. Die einzelnen Datenfragmente werden nacheinander von der Quelle zum Ziel gesendet, wie in Bild 14 dargestellt. Das RTS/CTS
Paketpaar reserviert das virtuelle Medium (NAV) nur für die Dauer der Übertragung des
ersten Fragmentes.
CTS
Knoten A
Knoten B
NAV
RTS
ACK
Daten
ACK
Daten
NAV Paket 2
NAV Paket 1
Zeit
Bild 14: Zeitlicher Ablauf der Datenübertragung unter Benutzung von Datenfragmenten
bei IEEE 802.11
Jedes neue Datenfragment muss den NAV für die Dauer der Übertragung neu belegen.
Möglich wird dies durch die Angabe der Übertragungsdauer im Datenfragment. Jedes einzelne Fragment wird mittels eines ACK Paketes bestätigt. Sollte ein Datenfragment vom
Empfänger nicht bestätigt werden, muss der Sender die Übertragung abbrechen und ver-
2 Grundlagen
26
suchen, die restlichen Datenfragmente in einem erneuten Übertragungsvorgang zu senden.
Durch dieses Vorgehen wird es anderen Netzteilnehmern ermöglicht, bei einer fehlerhaften Übertragung ihren eigenen Übertragungsvorgang zu starten. Dieses kooperierende
Verhalten wird als node-to-node fairness“ bezeichnet.
”
2.2.8 Das S-MAC Protokoll
Wei Ye u.a. entwickelten ein speziell auf die Eigenschaften von Sensornetzen zugeschnittenes Protokoll. Aufgrund einer Analyse verschiedener Protokolle, unter anderem des
IEEE 802.11 Standards, wurden die Hauptfaktoren für einen hohen Energiebedarf auf
Protokollebene identifiziert [YHE01],[LYH03]:
• Kollisionen von Paketen (collisions).
Kollisionen führen zu unnötigen Wiederholungen von Sende- und Empfangsvorgängen.
• Zu großer Kontrolloverhead (control packet overhead).
Zu viele Kontroll- und Steuerungspakete werden benötigt, um ein Datenpaket zu
senden.
• Unnötiges Mithören (overhearing).
Knoten empfangen Daten, die nicht für sie bestimmt sind.
• Unnötiges Warten auf Pakete (idle listening).
Ein Knoten erwartet Pakete, es werden keine an ihn adressierte Pakete gesendet.
Aus den daraus gefolgerten Gegenmaßnahmen entstand das Sensor Medium Access“
”
(S-MAC) Protokoll. Das S-MAC Protokoll erlaubt den Netzteilnehmern, in regelmäßigen
Abständen sich abzuschalten (Deep Sleep), es vermeidet Kollisionen (collision avoidance)
und unnötiges Mithören (overhearing avoidance) und erlaubt den Aufbau von sogenannten Multihop“ Netzen durch die Weiterleitung von Paketen.
”
Die Funktionsweise von S-MAC ist wie folgt: jeder Knoten hört für einen kurzen Augenblick auf Kontrollpakete, sogenannte SYNC-Messages, anderer Knoten. In einem SYNC
Paket ist neben einer eindeutigen Knoten Identifikationsnummer (Knoten ID) auch der
Zeitpunkt des nächsten Abschaltens vermerkt und zwar relativ zu dem Moment, an dem
das Senden des SYNC-Paketes beendet ist. Dieser Zeitpunkt entspricht in etwa dem Empfangszeitpunkt an einem möglichen Nachbarknoten. Werden in der Empfangsphase keine
Pakete empfangen, schaltet sich der Knoten für einen Zeitraum von zufällig gewählter
Dauer ab, nachdem er dies mit einer SYNC-Message mitgeteilt hat. Er behält diesen
2 Grundlagen
27
periodischen Wechsel von Empfangs- und Abschaltphase bei. Dieser periodische Wechsel
wird Zeitplan genannt.
Wurde jedoch ein SYNC-Kontrollpaket empfangen, wird der empfangene Zeitplan des
Nachbarknotens genutzt, so dass beide Knoten zur gleichen Zeit Daten empfangen und
sich abschalten. Nach einer zufällig gewählten Verzögerungszeit wird der übernommene
Zeitplan per SYNC-Message an die Nachbarknoten gesendet. Diese Verzögerung ist notwendig, um Kollisionen mit dem ursprünglichen Sender der SYNC-Message zu vermeiden.
Wird nach diesem Vorgang ein weiterer Zeitplan empfangen, wird dieser ebenfalls übernommen und der Knoten folgt beiden Zeitplänen, d.h. er wartet an zwei verschiedenen
Zeitpunkten auf Pakete. Dieser Fall sollte jedoch die Ausnahme sein, denn dies kostet
den betroffenen Knoten mehr Energie, so dass die Lebensdauer des Knotens aufgrund
der nicht permanenten Energieversorgung verringert wird. Die Zeitsynchronisation innerhalb eines solchen Netzes ist durch die regelmäßige Wiederholung des SYNC-Paketes
gewährleistet.
Für den Datenverkehr benutzt S-MAC ein RTS/CTS Verfahren ähnlich dem in CSMA/CA. Die Empfangsphase wird in zwei nicht gleich große Bereiche geteilt: im ersten Bereich
wird ausschliesslich auf SYNC-Pakete gewartet, während in der zweiten Hälfte auf RTS
Pakete gewartet wird, die direkt an den Knoten adressiert sind. Wird ein solches Paket
empfangen, sendet der Knoten eine CTS Nachricht und erwartet die Daten. Nach dem
erfolgreichen Empfang der Daten wird das Paket mittels eines Acknowledge “-Paketes
”
(ACK) bestätigt.
Das S-MAC Protokoll testet vor jedem Senden eines SYNC- oder RTS-Paketes, ob
das Medium frei ist. Zusätzlich zu diesem physikalischen Test führt das Protokoll noch
den von IEEE 802.11 bekannten virtuellen Test mit Hilfe des Netzbelegungsvektors durch.
Durch diesen zweifachen Test werden Kollisionen vermieden, und das RTS/CTS Verfahren
vermeidet das Hidden/Exposed Terminal“ Problem. Das unnötige Mithören von Paketen
”
wird ebenfalls mittels NAV vermieden. Nach einem mitgehörten RTS/CTS wird die zu
erwartende Paketlänge der Daten ermittelt und der Knoten kann solange abgeschaltet
werden, bis der NAV null erreicht hat. Zu diesem Zeitpunkt findet kein Datenverkehr
mehr statt, und es kann seitens des Knotens von neuem mit dem periodischen Empfangsund Abschaltzeitplan begonnen werden.
Das S-MAC Protkoll unterstützt das Fragmentieren von Datenpaketen. Im Gegensatz zu IEEE 802.11 ist dabei allerdings keine node-to-node fairness“ gegeben, da ein
”
RTS/CTS Vorgang das Medium für die gesamte Übertragungsdauer belegt. Nach einem
erfolgreichen RTS/CTS Austausch werden hintereinander alle Datenfragmente in einem
sogenannten burst“ [YHE04] gesendet. Dieses, von den Entwicklern als message passing“
”
”
bezeichnete Verfahren ist in Bild 15 dargestellt. In dieser Darstellung überträgt Knoten
2 Grundlagen
28
B Datenfragmente an Knoten A, die jeweils separat durch ein ACK Paket bestätigt werden. Für die Gesamtdauer der Übertragung ist das virtuelle Medium (NAV) belegt. Alle
Fragmente enthalten einen Wert, der die Übertragungsdauer für das gesamte Datenpaket
repräsentiert.
CTS
Knoten A
Knoten B
NAV
RTS
ACK
ACK
Daten
Daten
NAV Paket 1
Zeit
Bild 15: Zeitlicher Ablauf einer Übertragung mittels Message Passing in S-MAC
Wird von einem anderen Knoten ein Sende-/Empfangsvorgang mitgehört, kann er anhand der Übertragungsdauer seinen NAV entsprechend belegen, so dass erst nach Ablauf
der gesamten Kommunikation der virtuelle NAV Test erfolgreich ist. Dies hat den Vorteil,
dass bei S-MAC die Knoten für die Dauer eines belegten NAV in einen Energiesparmodus
versetzt werden können, um die Lebensdauer zu erhöhen. Sollte während der Übertragung ein Paket fehlerhaft übertragen werden, wird dieses unmittelbar wiederholt und der
Eintrag der Übertragungsdauer in den Paketen entsprechend angepasst, damit Knoten,
die aufgrund ihres nicht mehr belegten NAV aufwachen, diesen mit dem ersten empfangenen Paket an das neue Übertragungsende anpassen können. Die Implementierung der
Datenfragmentierung in S-MAC hat gegenüber der in IEEE 802.11 den großen Vorteil,
dass Knoten für die Gesamtdauer einer Übertragung abgeschaltet werden können, was
sehr viel energiesparender ist, als das kurze Abschalten für die Dauer der Übertragung
eines Datenfragmentes, wie es in IEEE 802.11 realisiert ist.
2.2.9 MD Protokoll
Einen ähnlichen Ansatz verfolgt das in [EHC02] vorgestellte MD Protokoll. Dabei steht
MD für Mediation Device, einem sogenannten Vermittler Gerät. Das Protokoll nutzt
ebenfalls ein RTS/CTS/ACK Schema.
2 Grundlagen
29
Jeder Knoten meldet sich mit einem Query15 -Beacon16“ genannten Paket. Dieses Pa”
ket wird mit einem im gesamten Netz einheitlichen, periodischen Intervall wiederholt. Die
Länge des Beacon-Paketes ist dabei sehr kurz, so dass durch die verschiedenen Zeitpunkte,
an denen die einzelnen Knoten zu senden beginnen, ein ALOHA ähnliches Szenario entsteht. Nach diesem Paket wird für eine kurze Zeitspanne auf Antworten gehorcht. Danach
schaltet sich der Knoten bis zum nächsten Query-Beacon ab. Sollen von einem Knoten
nun Daten gesendet werden, wird der Query-Beacon durch ein RTS Paket ersetzt. Dieses wird nun, genau wie das Query-Beacon, periodisch wiederholt, bis innerhalb der sich
anschliessenden Empfangsphase ein CTS Paket detektiert wird. Nach einem erfolgreich
empfangenen CTS Paket werden die Daten gesendet und auf ein ACK Paket gewartet.
Im Anschluss an einen solchen Übertragungsvorgang wird das Query-Beacon Paket wieder periodisch laut Zeitplan gesendet. Da jeder Knoten im Netz eine andere Zeitbasis
besitzt und die gesendeten Query-Beacon bzw. RTS Pakete sehr kurz sind, entstehen
keine Kollisionen. Allerdings ist die Wahrscheinlichkeit, dass auf diesem Wege zwei Knoten, die miteinander kommunizieren wollen, zur gleichen Zeit auf Senden bzw. Empfang
schalten recht gering, was zur Einführung eines Vermittlers führt. Der Vermittler wartet
kontinuierlich auf Beacon/RTS Pakete. Jeder empfangene Beacon wird in eine Tabelle
eingetragen. Wird nun ein RTS Paket empfangen, kann anhand dieser Tabelle ermittelt
werden, wann der Zielknoten sendet und empfängt. Der Vermittler wartet nun auf die
Empfangsphase des Zielknotens, also auf die kurze Phase nach einem Query-Beacon und
wiederholt das RTS Paket des Senders in Form eines Query-Response-Paketes17 . Dieses
Paket enthält als Zusatzinformation den Zeitplan desjenigen Knoten, der das RTS ursprünglich sendete. Anhand dieses Paketes kann der Zielknoten nun ermitteln, wann der
erste Knoten ein erneutes RTS Paket senden wird und seinen eigenen Zeitplan so anpassen, dass er zum richtigen Zeitpunkt ein CTS Paket senden kann. Dadurch wird die
Kommunikation zwischen den beiden Knoten initiiert. Nachdem Daten gesendet worden
sind wechselt der Knoten, der die Daten empfangen hat, wieder zu seinem eigenen Zeitplan zurück. Diese Art der Synchronisation von Netzteilnehmern wird als dynamische
Synchronisation bezeichnet.
15
Query: engl. für Anfrage oder Suchanfrage.
Beacon: engl. für Leuchtfeuer. Da ein solches Paket in regelmäßigen Abständen gesendet wird, können sich andere Knoten an diesem orientieren, ähnlich einem Leuchtfeuer, wie es in der Fliegerei
oder Schifffahrt eingesetzt wird. Um die Lesbarkeit zu verbessern, wird im weiteren Text auf die
Anführungszeichen verzichtet.
17
response: engl. für Rückantwort oder Rückmeldung.
16
2 Grundlagen
30
In Bild 16 ist die Kommunikation zwischen den drei Knoten A, B und C dargestellt.
Knoten B ist in der Mediatorphase und erkennt das Senden des RTS Paketes von Knoten
A an Knoten C. Da Knoten C dieses Paket nicht empfangen kann, sendet der Vermittler
in der Empfangsphase nach dem Query-Beacon (QRY) ein Query-Response (RES) Paket.
Knoten A
Knoten B
Knoten C
RTS
RX
RTS
RX
RES
QRY
RX
RX
Daten
RX
RX
ACK
RX
RX
CTS
Zeit
Bild 16: Zeitlicher Ablauf eines Datentransfers beim MD Protokoll
Knoten C passt anschliessend seinen Zeitplan so an, dass er ein CTS Paket an Knoten
A senden kann. Dabei muss er nicht notwendigerweise das RTS Paket selbst empfangen
haben, es genügt das RES Paket des Mediators. Im Anschluss an das CTS Paket werden
die Daten auf bekannte Weise ausgetauscht.
Dieses Verfahren hat allerdings auch Nachteile: das vermittelnde Gerät muss in Reichweite aller Teilnehmer sein, sonst kann es nicht zwischen allen Knoten vermitteln. Weiterhin muss es über eine permanente Energieversorgung verfügen, denn das andauernde
Mithören von Nachrichten lässt keine Energiesparmaßnahmen zu.
2.2.10 Verteiltes MD Protokoll
Die Einschränkungen bezüglich des vermittelnden Gerätes führten zu einer Weiterentwicklung des Protokolls, das verteilte MD Protokoll (Distributed MD Protocol) [EHC02].
Die Rolle des vermittelnden Knoten wird dabei über die im Netz vorhandenen Knoten verteilt. Jeder Netzteilnehmer wechselt für eine bestimmte Zeit von seinem Zeitplan
in eine MD Phase. In dieser Phase hört er auf Beacon/RTS Pakete und versucht, die
Kommunikation zwischen Start- und Zielknoten zu initiieren. Dabei kann es vereinzelt
vorkommen, dass zwei Knoten, die sich in Reichweite befinden, zur selben Zeit in die MD
Phase wechseln. Dies lässt sich dadurch verhindern, dass bei Eintritt in die MD Phase ein
kurzes Kontrollpaket gesendet wird. Bei Empfang eines solchen Kontrollpaketes verlässt
ein Knoten die MD Phase und wechselt zu seinem ursprünglichen Zeitplan zurück.
Alternativ kann der zweite MD Knoten alle Transaktionen des ersten überwachen und
gegebenenfalls unbeantwortete Kommunikationsversuche initiieren. Dieses Szenario tritt
auf, wenn sich die MD Knoten in gegenseitiger Reichweite befinden, aber die Anfragen von
Knoten kommen, die nur in Reichweite eines der beiden MD Knoten liegen. In Bild 12 auf
2 Grundlagen
31
Seite 23 ist beispielsweise Knoten C in der MD Phase und Knoten B wechselt kurze Zeit
später in diese. Knoten A beginnt jetzt mit dem Senden von RTS Paketen. Diese können
aufgrund der Positionen der Knoten nur von Knoten B gehört werden. Also initiiert
Knoten B die Kommunikation, obwohl Knoten C der eigentliche Mediator des Netzes
ist. Dies verkürzt im Gegensatz zur ersten Lösung die Latenzzeiten der Datenpakete. Die
Länge der MD Phase ist abhängig von dem Beacon Intervall des Netzes. Um sicher zu
stellen, dass alle Beacon-Pakete in der Umgebung des MD Knotens empfangen werden,
muss die MD Phase mindestens die im Netz eingestellte Intervalllänge zuzüglich der
benötigten Sendezeit für ein Beacon umfassen.
2.2.11 Der IEEE 802.15.4 Standard
Auch der IEEE 802.15.4 Standard arbeitet mit Beacon-Paketen [IEEb]. Wie in [Sik04]
beschrieben, unterscheidet der Standard zwischen zwei Gerätetypen, dem Reduced Func”
tion Device“ (RFD), einem Gerät mit nur teilweiser Unterstützung der Funktionen des
Standards und dem Full Function Device“ (FFD). Ein FFD muss alle Funktionen des
”
Standards unterstützen. Es können zwei Netzformen mit diesen Geräten gebildet werden.
Zum einen ein Sternnetz (Bild 17, Seite 32), bei dem das zentrale Gerät zwingend ein
FFD sein muss und ein vermaschtes Netz (peer-to-peer Netz, Bild 18, Seite 34), bei dem
RFDs nur eine einzige Verbindung zu einem FFD haben können. Es sind noch andere
Formen möglich, wie z.B. Cluster-Tree“ Netze, jedoch sind diese nicht Bestandteil des
”
Standards.
Jedes Netz, das nach IEEE 802.15.4 gebildet wird, besitzt genau einen Koordinator,
der die Kommunikation leitet. Diese Funktion kann nur von einem FFD ausgeübt werden,
da hierfür alle Funktionen des Netzes benötigt werden. Dieser kann das Netz mit zwei
Betriebsmodi aufbauen, dem Beacon Enabled“ Modus und dem Non Beacon Enabled“
”
”
Modus. Im ersten Modus sendet der Koordinator in regelmäßigen Abständen BeaconPakete aus, die von den anderen im Netz vorhandenen Knoten zur Synchronisation verwendet werden. Dies hat den Vorteil, dass alle beteiligten Knoten über einen längeren
Zeitraum zur Energieeinsparung abgeschaltet werden können, da sie nur zu den Beacon Zeitpunkten aktiv sein müssen. Die Übertragung von Daten funktioniert in einem
Beacon Enabled“ Netz nach dem bereits bekannten Muster: Ein Knoten, der Daten ver”
senden möchte, wartet auf die Beacon Nachricht des Koordinators. Nach dem Empfang
dieser Nachricht wird die Kommunikation initiiert und der Koordinator empfängt die
Daten. Wenn diese Daten nicht für den Koordinator bestimmt sind, wird das nächste
Beacon-Paket des Koordinators die Information enthalten, für welchen Knoten er Daten
bereithält. Der potentielle Empfänger kann nun den Koordinator kontaktieren, um diese
Daten zu empfangen. Mit diesem Betriebsmodus können allerdings nur Sternnetze rea-
2 Grundlagen
32
RFD
B
FFD
F
FFD
A
PAN
Koordinator
RFD
RFD
E
C
FFD
D
Bild 17: Sternnetz mit IEEE 802.15.4
2 Grundlagen
33
lisiert werden, da alle Netzteilnehmer sich in Funkreichweite des Koordinators befinden
müssen.
Mit dem Non Beacon Enabled“ Betriebsmodus lassen sich sowohl Sternnetze als auch
”
vermaschte Netze realisieren. Dabei muss jeder FFD, der eine Verbindung zu einem oder
mehreren anderen Knoten unterhält, kontinuierlich auf Daten horchen, um auf eventuelle
Kommunikationsversuche reagieren zu können. Daraus folgt, dass die beteiligten FFDs
eine permanente Energieversorgung besitzen sollten.
2.2.12 Bluetooth
Im Gegensatz zu den bereits vorgestellten sogenannten kollisionsbehafteten Protokollen
verwendet die Bluetooth Funktechnik [Blu],[Wol02] eine kollisionsfreie Methode zur Zugriffsregelung, das sogenannte Polling. Bei dieser Methode kann kein Knoten direkt mit
einem anderen Netzteilnehmer kommunizieren, sondern wird von einer zentralen Instanz
abgefragt. Dieser zentrale Knoten erstellt und verwaltet einen Zeitplan, der jedem einzelnen Knoten einen festen Zeitpunkt zur Kommunikation zuweist. Bluetooth teilt die Zeit
in 625µs lange Intervalle, den sogenannten Slots ein. Der zentrale Knoten, der Master,
beginnt mit dem Senden in den geraden Slots; die anderen Netzteilnehmer, sogenannte
Slaves, beginnen in den ungeraden. Datenrahmen in Bluetooth können einen, drei oder
fünf Slots lang sein. In Bild 19 auf Seite 35 ist eine mögliche Kommunikation zwischen
einem Master und drei Slaves dargestellt. Der Master sendet im ersten Slot eine Anfrage
an Slave A, die direkt im folgenden Slot beantwortet wird. Danach sendet der Master
einen Datenrahmen von drei Slots Länge an Slave B, der als Antwort ebenfalls einen
Datenrahmen von drei Slots Länge sendet. Wie zu erkennen ist, brauchen die Slaves nur
in den Masterslots auf eventuelle Anfragen zu horchen und können bei einer Anfrage im
nächstmöglichen Slaveslot antworten.
Durch dieses feste Schema werden Anfragen nur noch zu bekannten Zeitpunkten durchgeführt, was sie vorhersagbar macht. Weiterhin können die zeitlichen Abstände konstant
gehalten werden, was für Applikationen, die eine Echtzeitdatenübertragung erfordern
(Sprache, Video) von Vorteil ist. Bluetooth bietet für diesen Zweck die Möglichkeit, bestimmte Slots für einen Slave zu reservieren. Für die notwendige zeitliche Synchronisierung sorgt die lokale Uhr des zentralen Knotens, der alle Slaves folgen. Durch die zentral
gesteuerte Abfrage werden Probleme wie das Hidden/Exposed Terminal Problem“, um”
gangen. Allerdings hat das Polling Verfahren auch Nachteile gegenüber dem CSMA/CA
Verfahren. So wird derjenige Knoten, der als zentrale Instanz fungiert, übermäßig beansprucht. Ein Abschalten des Transceivers wird mit steigender Teilnehmerzahl seltener, so
dass Stromsparmaßnahmen nur noch schwer durchzuführen sind. Weiterhin wird im Falle
von großen drahtlosen Netzen das Erstellen eines Zeitplans zur Abfrage immer schwie-
2 Grundlagen
34
RFD
F
B
G
RFD
FFD
FFD
C
FFD
PAN
Koordinator
A
FFD
D
RFD
RFD
E
H
Bild 18: Vermaschtes Netz mit IEEE 802.15.4
2 Grundlagen
Master
Slave
A
Slave
B
Slave
C
35
A
B
M
M
Zeit
Bild 19: Das Pollingverfahren bei Bluetooth
riger. Ein weiterer schwerwiegenderer Nachteil ist die Voraussetzung eines Netzes mit
Sterntopologie, bei dem jeder Teilnehmer direkten Kontakt zur zentralen Einheit haben
muss. Damit ist ein Multihop“ Netz, also ein Netz bei dem die Datenpakete über meh”
rere Stationen (den Hops) gesendet werden können, nur sehr aufwendig zu realisieren.
Das Multihopverfahren ermöglicht seinerseits den Aufbau von großen drahtlosen Netzen,
bei dem die Fläche, die das Netz abdeckt, deutlich größer sein kann, als die eigentliche
Reichweite der auf den einzelnen Knoten benutzten Funktechnologie. Aber gerade diese
Multihop Fähigkeit ist entscheidend für die Bildung großer drahtloser Netze, die eine
möglichst lange Zeit autark arbeiten können. Aus diesen Gründen wird die Bluetooth
Funktechnik nur für kleine Netze (ein zentraler Knoten und bis zu sieben Teilnehmer)
eingsetzt. Für größere Netze eignen sich andere Verfahren besser.
2.2.13 Weitere Mehrfachzugriffsverfahren
Neben den bereits erwähnten Verfahren existieren noch andere Möglichkeiten, den Zugriff
auf das Übertragungsmedium zu regeln. Da sich mit diesen Verfahren die Realisierung
von drahtlosen Sensornetzen als schwierig gestaltet, werden diese im Folgenden nur sehr
verkürzt dargestellt.
Frequenzmultiplexverfahren
Bei dem Frequenzmultiplexverfahren (Frequency Division Multiple Access, FDMA) wird
jede Verbindung zwischen einem Sender und einem Empfänger in einem anderen Frequenzbereich durchgeführt, so dass benachbarte Übertragungen sich nicht gegenseitig
stören können. Die Frequenzzuteilung kann entweder zentral für ein Netz gesteuert werden, oder anhand einer Überprüfung der Feldstärke von jedem Sender und Empfänger
2 Grundlagen
36
lokal geregelt werden. Dies erfordert einen hoch entwickelten Transceiver, was der Forderung nach kostengünstigen Sensorknoten widerspricht.
Zeitmultiplexverfahren
Das Zeitmultiplexverfahren (Time Division Multiple Access, TDMA) teilt die Zeit in
Zeitschlitze (Slots, siehe Bluetooth, Unterabschnitt 2.2.12 auf Seite 33) ein, die sich periodisch wiederholen. Jeder Verbindung zwischen zwei Knoten wird ein bestimmter Slot
zugeordnet, so dass Kollisionen vermieden werden. Die Zuteilung der Slots kann auch hier
zentral oder von den einzelnen Knoten lokal geregelt werden. Da mit zunehmender Anzahl
Knoten die Abstände zwischen den zugeordneten Slots größer werden müssen, um jedem
Knoten einen eigenen Slot zuordnen zu können, ist die Realisierung eines Sensornetzes
mit diesem Zugriffsverfahren nur bedingt möglich. Ein Netzprotokoll für Sensorknoten
auf Basis des TDMA Verfahrens wird exemplarisch in [SGAP00a] vorgestellt.
Raummultiplexverfahren
Das Raummultiplexverfahren (Space Division Multiple Access, SDMA) [Sik01] teilt das
drahtlose Netz räumlich in Cluster ein. Die zur Verfügung stehenden Übertragungskanäle
werden auf die einzelnen Cluster verteilt, so dass kein Nachbarcluster den gleichen Kanal
belegt. Dadurch, dass die Feldstärke des Funksignals mit zunehmendem Abstand zum
Sender stark abnimmt, können gleiche Übertragungskanäle an unterschiedlichen geografischen Orten im Netz genutzt werden und so, trotz einer begrenzten Anzahl von Kanälen,
alle Knoten miteinander kommunizieren. Dieses Verfahren besitzt jedoch Probleme an
den Schnittstellen der einzelnen Cluster, da sich dann die Cluster auf einen Übertragungskanal zum Datenaustausch einigen müssen, oder die Knoten an den Schnittstellen
gleichzeitig auf mehreren Kanälen senden und empfangen müssen.
Von diesen grundlegenden Verfahren ausgehend wurden mehr und mehr Protokolle
speziell für Sensornetze entwickelt. So wird in [MA04] ein Netz beschrieben, dass den jeweiligen Energievorrat der Sensorknoten berücksichtigt und die Sende- und Empfangszeiten entsprechend anpasst. Bei diesen komplexeren Protokollen wird nicht ein bestimmtes
Mehrfachzugriffsverfahren verwendet, sondern verschiedene Techniken miteinander kombiniert. Komplexere Methoden Netze zu bilden existieren unter anderem mit dem in
[XBH03] beschriebenen Verfahren, das aufgrund von geografischen Informationen (der
Position der einzelnen Knoten) die Funktionen im Netz so verteilt, dass die Lebenszeit
des gesamten Netzes maximiert wird. Dies setzt eine Lokalisierung der einzelnen Knoten
voraus, die entweder manuell erfolgt, also beim Aufbau des Netzes in die Knoten programmiert wird, oder durch spezielle Lokalisierungsverfahren, wie sie in [MCH04] beschrieben
2 Grundlagen
37
werden. Techniken, ähnlich den in S-MAC verwendeten, führten bei Rhee u.a. zur Entwicklung des i-Bean Sensornetzes [RSL04]. Das i-Bean Netz unterscheidet, vergleichbar
dem IEEE 802.15.4 Standard, Geräte mit unterschiedlicher Funktion und Hardware. Die
batteriebetriebenen Sensorknoten, die i-Beans, können nur mit Hilfe deutlich besser ausgestatteter Router ein Netz aufbauen. Die i-Beans können selbst keine Verbindung initiieren, sondern werden von den Routern abgefragt (Polling). Eine weitere, nicht vollständige
Übersicht über Netzprotokolle für Sensornetze liefern A. Ahmed u.a. in [ASS04] und I.F.
Akyildiz u.a. in [ASSC02].
2.3 Drahtlose Sensornetze
Drahtlose Sensornetze sind Gegenstand der Forschung in verschiedenen Gebieten der
Elektrotechnik, Informatik und Mathematik. Ein solches Netz besteht aus einer nahezu beliebigen Anzahl von batteriebetriebenen Sensorknoten18 , die drahtlos miteinander
kommunizieren. Sie bilden automatisch ein Netz oder integrieren sich in ein bereits vorhandenes Netz. Jeder Sensorknoten ist in der Lage, mittels Sensoren die verschiedensten
Ereignisse zu registrieren und Messdaten über diese zu sammeln, um sie sofort oder zu
einem späteren Zeitpunkt an eine Basisstation zu leiten. Die Basisstation besteht entweder aus einem Rechner, an dem ein Benutzer die Daten auswertet, oder die Basisstation
ist ein spezieller Sensorknoten. Im letzten Fall wertet die Basisstation die Daten aus oder
führt eine Vorverarbeitung durch (wie Komprimierung oder statistische Funktionen) und
sendet diese über ein zweites Netz an den Benutzer. Als zweites Netz kann ein vorhandenes lokales Rechnernetz (Local Area Network, LAN) genutzt werden oder ein weiteres
drahtloses Netz, beispielsweise IEEE 802.11 (Wireless LAN) oder das Global System for
Mobile Communication (GSM). In Bild 21 auf Seite 40 ist ein solches Sensornetz schematisch dargestellt. Dieses Netz besteht aus 13 Knoten und einer Basisstation, die die
ermittelten Daten über ein GSM Netz an den Benutzer weiterleitet. In diesem Fall ist
dies die Detektion des Ereignisses i“ durch den Knoten 3.
”
Durch Hinzufügen von Knoten kann ohne größeren Aufwand die räumliche Auflösung der gemessenen Umgebungsparameter verbessert werden. Beispielsweise soll mit
einem Sensornetz ein Phänomen (z.B. die Intensität einer Lichtquelle) gemessen werden
Bild 20(a). Dieses Ereignis wird von einigen wenigen Sensorknoten aufgezeichnet und
nach einer Auswertung können die Daten wie in Bild 20(b) räumlich aufgelöst dargestellt
werden. Die Auflösung ist jedoch nicht genau genug, um das Originalereignis hinreichend genau abbilden zu können. Um dies zu verbessern, wird in einem ersten Schritt die
Knotenanzahl vervierfacht. Dabei entfällt jeglicher Konfigurationsaufwand, da die Sen18
Im weiteren Verlauf auch Knoten genannt.
2 Grundlagen
38
sorknoten sich selbst konfigurieren und in das vorhandene Netz integrieren. Das Resultat
einer weiteren Messung stellt Bild 20(c) dar. Die räumliche Verteilung des ursprünglichen Ereignisses ist noch immer nur sehr grob zu erkennen. Im letzten Schritt wird die
Knotenanzahl wieder vervierfacht. Das Resultat dieser letzten Messung ist in Bild 20(d)
dargestellt. Mit dieser letzten Näherung kann das beobachtete Phänomen gut abgebildet
werden.
(a) Zu beobachtendes Phänomen
(b) Erste Beobachtung mit wenigen Sensorknoten
(c) Zweite Beobachtung mit vierfacher Anzahl der(d) Dritte Beobachtung mit erneuter vervierfachung
Sensorknoten
der Anzahl der Sensorknoten
Bild 20: Schematische Darstellung der schrittweisen Erhöhung der Auflösung durch Hinzufügen von Sensorknoten bei der Messung eines Phänomens
Die Einsatzgebiete solcher Sensornetze reichen von einfachen Überwachungsaufgaben
in der Umwelt- und Gebäudetechnik ([Mon]) bis hin zu komplexen Beobachtungsaufgaben, die nur mit einer Vielzahl von Knoten gemeinsam gelöst werden können. Zusätzlich
werden durch die zunehmende Miniaturisierung und steigende Lebensdauer neue Anwendungsgebiete z.B. in der Militärtechnik und Sicherheitsindustrie erschlossen. Sie eignen
sich im Besonderen für Anwendungen, die lediglich eine niedrige Datenrate erfordern und
2 Grundlagen
39
bei denen über einen längeren Zeitraum kein Eingreifen des Benutzers möglich oder nötig
ist.
2.3.1 Routing Verfahren
Sensornetze müssen je nach Anwendung große Flächen abdecken. Damit Knoten, die aufgrund ihrer beschränkten Funkreichweite nicht in direktem Kontakt mit der Basisstation
stehen, ihre Daten zur Basisstation senden können, werden die Daten an benachbarte Knoten gesendet. Stehen diese Knoten ebenfalls nicht in direktem Kontakt mit der
Basisstation, werden die Daten zu einem anderen Nachbarknoten weitergeleitet. Ist ein
direkter Kontakt mit der Basisstation vorhanden, werden die Daten direkt an diese gesendet. Dieses Verfahren wird Multihop genannt und ein so aufgebautes Netz wird als
Multihop-Netz bezeichnet. Das ist eine wesentliche Eigenschaft von Sensornetzen, da die
einzelnen Sensorknoten aufgrund ihrer geringen Größe mit Transceivern ausgerüstet werden, die lediglich eine geringe Reichweite (im Freien ca. 100 m, in Gebäuden ca. 30 m)
besitzen. Dabei ist die Datenrate solcher Netze sehr gering (höchstens ein paar Bytes pro
Sekunde) und nicht zu vergleichen mit anderen drahtlosen Technologien wie beispielsweise
IEEE 802.11 Wireless LAN (11 MBit/s) oder Bluetooth (1 MBit/s).
In Bild 21 (Seite 40 erkennt Knoten 3 ein Ereignis, das an die Basisstation gemeldet
werden soll. Die Basisstation, in diesem Fall Knoten 14, ist jedoch nicht in Reichweite,
so dass die Nachricht über das Ereignis an Knoten 4 gesendet wird. Dieser ist ebenfalls
nicht in Reichweite der Basisstation und leitet die Nachricht an Knoten 9 weiter. Knoten
9 wiederum sendet an Knoten 8 und die Nachricht erreicht ihr Ziel, da in Reichweite
von Knoten 8 die Basisstation liegt. Die Realisierung eines solchen Verfahrens erfordert,
dass jeder Knoten im Netz in der Lage ist, einen Weg zur Basisstation zu berechnen, um
die Pakete zu den richtigen Knoten weiterzuleiten. Ein solcher Weg wird als Route und
ein Zwischenschritt auf diesem Weg als Hop bezeichnet. Die Berechnung der Route kann
dabei unter Berücksichtigung vieler Kriterien durchgeführt werden. Beispielsweise kann,
unter der Voraussetzung, dass der Energievorrat jedes Knotens bekannt ist, die Route
so gewählt werden, dass möglichst nur Knoten an der Weiterleitung beteiligt werden,
deren Energievorrat nicht unter ein gewisses Niveau gesunken ist. Oder die Route wird
so berechnet, dass eine möglichst geringe Zahl von Hops benötigt wird.
Es kann auch vorkommen, dass eine Route neu berechnet werden muss, weil eine Zwischenstation ausfällt. In dem oben diskutierten Beispiel könnte Knoten 8 ausfallen, Knoten 9 müsste dann die Nachricht an Knoten 12 weiterleiten, damit diese noch die Basisstation 14 erreicht. Diese wichtige Eigenschaft, das Erkennen von Netzfehlern und das
automatische Bilden von alternativen Routen, ist ein weiterer Vorteil gegenüber anderen
(kabelgebundenen) Lösungen.
2 Grundlagen
40
7
6
1
8
GSM
5
14
2
9
Basisstation
4
12
3
13
11
10
Bild 21: Schematische Darstellung eines Sensornetzes
Das Routen von Paketen ist ein Problem, das in der Vermittlungs- bzw. Transportschicht gelöst wird. Für kabelgebundene Techniken (beispielsweise das weit verbreitete
Ethernet) existieren speziell entwickelte Geräte (Router), die erprobte Techniken einsetzen. Verfahren, die auf dem Link-State-Routing basieren, werden häufig verwendet.
Das Link-State Routing betrachtet den Zustand (Qualität) der einzelnen Verbindungen
und besteht aus fünf Schritten, die jeder Router durchführen muss:
• Nachbarknoten ermitteln
• Übertragungszeit zu den Nachbarn messen
• Diese Informationen in einem Datenpaket zusammenstellen
• Dieses Paket an alle anderen bekannten Router senden
• Den kürzesten Pfad zu allen anderen Routern berechnen
Die Berechnung des kürzesten Pfades erfolgt beispielsweise über den von Dijkstra 1959
vorgestellten Algorithmus [Dij59], [Lan03], der zur Wegfindung zwischen einem Startknoten und einem Zielknoten in einem gegebenen zusammenhängenden Graphen dient.
Kanten in diesem Graphen repräsentieren mögliche Verbindungen und sind nach der Weglänge gewichtet. Es wird vom Startknoten ausgehend der gesamte Graph erforscht und
der kürzeste Weg zu dem Zielknoten in einer vollständigen Suche (Breitensuche) ermittelt. Das Ergebnis des Algorithmus entspricht garantiert dem kürzesten Weg. Alternativ
2 Grundlagen
41
kann der Floyd-Warshall Algorithmus [War62],[Lan03] genutzt werden. Dieser Algorithmus ermittelt alle kürzesten Pfade zwischen zwei beliebigen Knoten eines Graphen19 .
Die berechneten Pfade werden in einer Tabelle gespeichert. Wird eine Route zu einem
bestimmten Ziel benötigt, kann diese mittels der vorhandenen Tabellen schnell ermittelt
werden.
In einem drahtlosen Sensornetz existieren keine dedizierten Router, die Funktionalität
des Routers muss von jedem Knoten ausgeübt werden. Durch die drahtlosen Verbindungen und der nicht permanenten Energieversorgung der Knoten kommt es häufiger zu
Verbindungsausfällen, die bei einem Verfahren, das auf Tabellen basiert, die vorberechneten Pfade ungültig machen würde. Das Resultat wäre, dass die Knoten ihre Pakete über
alternative Pfade senden müssten, was ein erhöhtes Sendeaufkommen zur Folge hätte.
Es bedarf daher Routingalgorithmen, die die Eigenschaften der drahtlosen Verbindungen
und die knappen Ressourcen der Sensorknoten berücksichtigen.
Die in modernen Sensornetzen eingesetzten Routingverfahren lassen sich in drei Gruppen einteilen:
• proaktive/globale Verfahren
• reaktive Verfahren (on-demand Routing)
• hybride Verfahren
Proaktive Verfahren
Bei proaktiven Verfahren werden alle Routen zu den jeweiligen bekannten Zielen (im
Netz oder nur in Teilnetzen) ermittelt und mit geeigneten Verfahren aktualisiert. Die
verschiedenen Verfahren unterscheiden sich lediglich in den verwendeten Verwaltungsund Aktualisierungsmechanismen für die erstellten Tabellen.
In diese Gruppe fällt das Destination-sequenced distance vector (DSDV) Verfahren
[PB94]. Das DSDV Verfahren ermittelt einen gültigen Pfad mit Hilfe des distant vector
”
shortest path“ Algorithmus. Die Routingtabellen werden mittels zweier Aktualisierungspakete gepflegt. Zum einen das full dump“ Paket, was vollständige Tabellen zwischen
”
den Knoten austauscht und dem incremental“ Paket, welches nur Änderungen seit dem
”
letzten full dump“ Paket enthält. Durch diese Vorgehensweise wird der Aufwand für die
”
Kommunikation, die für die Verwaltung des Routingverfahrens nötig ist, verringert. Trotz
dieses Ansatzes eignet sich das Verfahren nicht für große Netze, da die zur Verfügung stehende Bandbreite zu einem immer größer werdenden Teil von den Verwaltungspaketen in
Anspruch genommen wird.
19
Dieses Ergebnis kann auch durch mehrmaliges Anwenden des Dijkstra Algorithmus erreicht werden.
2 Grundlagen
42
Reaktive Verfahren (on-demand Routing)
Das on-demand Routing Verfahren wurde entwickelt, um den Mehraufwand an Kommunikation, der bei der Verwaltung von Tabellen anfällt, zu reduzieren. Diese Verfahren
verwalten nicht alle möglichen Routen, sondern nur die jeweils aktiven. Dazu muss vor
jeder Verbindung erst ein möglicher Pfad ermittelt werden. Dazu wird an jeden Knoten
in der Nachbarschaft des Senders ein Paket gesendet, das solange an weitere Nachbarknoten gesendet wird, bis der Zielknoten erreicht wird. Dieser sendet nun seinerseits ein
Antwortpaket an den ursprünglichen Sender zurück. Dies ist möglich, da die einzelnen
benötigten Zwischenstationen in die weitergeleiteten Pakete eingetragen werden.
Das Ad hoc on-demand distance vector“ (AODV) oder das secure efficient distan”
”
ce vector routing“ (SEAD) Verfahren arbeitet nach diesem Prinzip [PBRD03], [BRP03],
[HJP03]. Nachteile bei diesem Verfahren sind die langen Verzögerungen bei einem Verbindungsaufbau, da jede Route neu ermittelt werden muss. Die sprunghaft zunehmende
Kommunikation in einem Netz während der Pfadermittlung, kann bishin zu einem Fluten
des Netzes führen. Das Netz ist für andere Aufgaben blockiert, so dass Datenpakete nicht
mehr versendet werden können.
Hybride Verfahren
Hybride Verfahren nutzen sowohl on-demand als auch proaktive Techniken. So kann, in
Kombination mit den Positionsangaben der einzelnen Knoten, zu räumlich nahe gelegenen
Knoten ein permanter Pfad gepflegt werden, während zu räumlich weit entfernten Knoten
eine Route mittels on-demand Techniken gebildet wird.
In [RRR99] wird das Distributed Spanning trees based routing“ (DST) Verfahren
”
beschrieben, das zwei on-demand Verfahren zur Routenbildung nutzt und häufig benutzte
Routen länger in einer Tabelle (proaktiv) zwischenspeichert. Dadurch wird die für einen
Verbindungsaufbau benötigte Zeit reduziert und der Verwaltungsaufwand begrenzt.
In [AWD03], [GS03] und [JM04] werden ausführlich verschiedene Routingalgorithmen
für drahtlose Sensornetze besprochen und die Vor- und Nachteile der Verfahren einander
gegenübergestellt, sowie mögliche Verbesserungen diskutiert.
2.3.2 Sensorknoten
Ein drahtloser Sensorknoten besteht prinzipiell aus drei Komponenten, dem Transceiver
für die drahtlose Kommunikation, den Sensoren zur Beobachtung von Phänomenen oder
Ereignissen und dem Mikrocontroller, so wie in Bild 22 (siehe Seite 44) schematisch
dargestellt. Bei der Entwicklung liegt der Schwerpunkt auf einer möglichst kompakten
und energieeffizienten Bauweise. Langfristiges Entwicklungsziel der Sensorknoten ist die
2 Grundlagen
43
Vision von Smart Dust“ ([Sma01]), Sensorknoten nicht viel größer als ein Staubkorn und
”
mit der Fähigkeit ausgestattet, Daten über ihre Umwelt zu ermitteln und ein komplexes
Netz aufzubauen.
Im einfachsten Fall wertet der Mikrocontroller die Sensorsignale aus und sendet diese über den Transceiver an einen Empfänger. Ein solch einfacher drahtloser Sensor ist
allerdings kein Sensorknoten, denn es fehlt eine wichtige Eigenschaft: die Fähigkeit mit
Nachbarknoten zu kommunizieren und ein Netz zu bilden. Diese Fähigkeit ist eine der
Grundvoraussetzungen für einen drahtlosen Sensorknoten. Mit Hilfe des verwendeten Protokolls wird ein Knoten in die Lage versetzt, seine Nachbarn zu detektieren, diese eindeutig zu identifizieren und mit ihnen Daten auszutauschen. Dies kann nur mit einem hoch
entwickelten Netzprotokoll realisiert werden, das einen leistungsfähigen Mikrocontroller
benötigt. Allerdings steigt mit der Leistungsfähigkeit des Mikrocontrollers auch dessen
Energiebedarf, was sich negativ auf die Lebensdauer eines Knotens20 auswirkt. Dies steht
aber im Widerspruch zu der angestrebten langen Lebensdauer. Daher muss ein Sensorknoten über hoch entwickelte Energiesparmaßnahmen verfügen. Im Allgemeinen wird dies
durch gezieltes Ein- und Ausschalten des Transceivers und des Mikrocontrollers erreicht.
Moderne 8-Bit oder 16-Bit Mikrocontroller beherrschen diese Techniken, die meistens in
verschiedenen Stufen, von maximaler Rechenleistung (maximaler Energieverbrauch) bis
hin zum Abschalten21 (minimaler Energieverbrauch) reichen.
Der Transceiver wird nicht nur nach dessen Energiebedarf ausgewählt, sondern auch
nach der Zeit, die der Transceiver benötigt, um nach dem Einschalten sende- oder empfangsbereit zu sein. Diese Eigenschaft ist in sofern wichtig, da sie direkt die benötigte Zeit
für einen Sende- oder Empfangsvorgang beeinflusst. Kann dieser Vorgang zeitlich kurz
gehalten werden, hilft dies Energie einzusparen. Der Frequenzbereich des Transceivers
spielt eine untergeordnete Rolle und wird in der Regel von der Anwendung und dem Ort
der Anwendung bestimmt.
Durch die zunehmende Forschung im Bereich der drahtlosen Sensorknoten entwickelten
sich auf Kleinrechner spezialisierte Funkstandards und Protokolle, wie etwa IEEE 802.15.4
[IEEb]. Dieser Standard wurde mit Hinblick auf die knappen Ressourcen der Knoten
entwickelt, so dass Transceiver dieses Standards mit einem einfachen 8-Bit Mikrocontroller
betrieben werden können.
Eine weitere Eigenschaft von Sensorknoten ist das Aufnehmen von Messdaten über angeschlossene Sensoren. Die Sensoren werden direkt an den Mikrocontroller angeschlossen.
Zum einen kann man die bei modernen Mikrocontrollern üblichen Schnittstellen (Interfaces) nutzen, zum anderen kommt dies dem Energiebedarf zugute, da die Bauweise dadurch
20
Unter Lebensdauer eines Knotens versteht man die Zeitspanne, die zwischen der Inbetriebnahme und
des durch die Erschöpfung der nicht permanenten Energieversorgung bedingten Ausfalls liegt.
21
sog. Deep Sleep
2 Grundlagen
44
Applikation
Mikrokontroller
Speicher
Betriebssystem
Transceiver
Sensor
Sensor
Batterie
Bild 22: Schematische Darstellung eines Sensorknotens
kompakter wird. Übliche Schnittstellen sind I2 C, ein zweiadriger Bus der Firma Philips,
Serial Parallel Interface“ (SPI), ein Standard für die Kommunikation mit Mikrocontrol”
lern, oder einfach Analog Digital Converter“ (ADC), wo die analoge Ausgangsspannung
”
des Sensors in digitale Signale umgewandelt wird. Es eignen sich auch Mikrocontroller,
bei denen die Sensoren (z.B. Temperatur und Druck) auf dem Chip integriert sind.
Exemplarisch soll hier auf einen vom Fraunhofer-Institut für Mikroelektronische Schaltungen und Systeme (IMS) entwickelten drahtlosen Sensorknoten eingegangen werden
[KCHM04], [KCHM05]. Dieser Knoten besteht, wie vorher in dem Blockschaltbild dargestellt, aus einem AVR Mikrocontroller (Atmega 128L) und einem Transceiver der Firma
Chipcon (CC2420), der im 2.4 GHz ISM-Band22 nach dem IEEE 802.15.4 Standard arbeitet. Eine externe Antenne wird nicht benötigt23 , da eine integrierte Antenne verwendet wird. Applikationen können entweder speziell für diesen Knoten, oder mit Hilfe des
Open-Source Betriebssystems TinyOS [Tin] entwickelt werden. TinyOS ist ein für viele
Plattformen verfügbares Kleinstbetriebssystem, dass speziell für den Einsatz in drahtlosen Sensornetzen entwickelt wurde. Das Betriebssystem und seine Applikationen werden
in einem Dialekt der Programmiersprache C geschrieben. Dieser nesC“ genannte Dialekt
”
[GLCB03] unterstützt eine modulare, auf Komponenten ausgerichtete Programmierung,
22
Das Industrial, scientific, and medical (ISM) Band umfasst international verbindliche Frequenzbereiche, die von unterschiedlichen Applikationen genutzt werden können, ohne dass nationale Regulierungsbehörden eine Betreiberlizenz vergeben müssen. In diesem Bereich arbeiten z.B. Bluetooth oder
Wireless LAN.
23
Kann aber angeschlossen werden.
2 Grundlagen
45
so dass die resultierenden Applikationen die vorhandenen minimalen Ressourcen im Vergleich zu anderen Sprachen besser ausnutzen können [GLB+ 03].
Da dieser Knoten nur eine Entwicklungsplattform und einen Zwischenschritt zu weiteren, höher integrierten Schaltungen darstellt, sind keine Sensoren integriert worden. Diese
können jedoch über die nach außen geführten Schnittstellen angeschlossen werden. Der
in Bild 23 (siehe Seite 46) gezeigte IMS Sensorknoten besitzt die physikalischen Abmessungen von 55 mm × 10 mm × 22 mm (B × H × T ).
2.3.3 Anwendungen für drahtlose Sensornetze
Anwendungen für Sensornetze ergeben sich in vielen Bereichen des täglichen Lebens. Von
der Automation bis hin zur Kommunikation zwischen den unterschiedlichsten Elektrogeräten entstehen neue Applikationen. Es existieren bereits einige Langzeitstudien über
Sensornetze [MPS+ 02], die zur Beobachtung verschiedenster Phänomene im Bereich der
Umwelt- und Wohnbereichsüberwachung24 installiert wurden. Auch im industriellen Bereich entwickeln sich neue Anwendungen aufgrund der Eigenschaften drahtloser Netze. Die
Anwendungen profitieren von der Fähigkeit der Sensornetze sich selbst zu konfigurieren,
von den Möglichkeiten der Bildung von Alternativstrecken bei Ausfall einer Verbindung
zwischen zwei Knoten und von der kostengünstigen Installation. Um die Langlebigkeit
solcher Netze zu garantieren, ist bei allen Anwendungen die Datenrate äußerst gering. So
ist es meist nur eine Information, die in Intervallen von einigen Stunden übertragen werden muss, die so einfach sein kann, wie z.B. Regen“ oder kein Regen“. Eine Verbesserung
”
”
vieler Anwendungen wäre möglich, wenn das verwendete Sensornetz über die Fähigkeit
verfügt, die geografische Lage der einzelnen Knoten selbst zu ermitteln. Dies kann mit
zusätzlicher Hardware gelöst werden, beispielsweise mit Schall [Whi02], [PMBT02], dem
Global Positioning System (GPS) [DSG] oder über die Feldstärke der zur Kommunikation genutzten elektromagnetischen Wellen [BBEH02],[BH02]. Ereignissen in einem Netz
kann mit Hilfe der Lokalisierung eine geografische Position automatisch zugeordnet werden [WE03], was dazu führt, dass ein Benutzer bei der Installation von Sensorknoten keine
eigene Zuordnung zwischen Knoten und Position durchführen muss, was bei einer großen
Anzahl von Sensorknoten eine beträchtliche Verringerung der Verwaltung darstellt. Dies
vereinfacht die Handhabung großer Sensornetze und die Kommunikation zwischen dem
Sensornetz und dem Benutzer wird effektiver. Beispielsweise würde einem Benutzer direkt gemeldet, dass auf der Wiese an der Hausecke die Feuchtigkeit abgenommen hat, und
nicht, dass ein Knoten im Netz bei der letzten Messung eine Abnahme der Feuchtigkeit
gemessen hat. Dies führt zur Entwicklung von Sensornetzen, bei denen Informationen aus
der Lokalisation, dem Datenaufkommen, der Datentypen und den geografischen Gegeben24
Environmental oder Habitat Monitoring
2 Grundlagen
46
Bild 23: Foto des am IMS entwickelten Sensorknotens
heiten die Bildung des Netzes und der benötigen Routen beeinflussen. So werden nicht
einzelne Knoten vom Benutzer nach verfügbaren Daten abgefragt, sondern die Daten vom
Sensornetz in verschiedene Kategorien unterteilt, die ähnlich einer Datenbank dann abgerufen werden können [REG02]. Nach heutigem Stand der Technik ist die Lokalisierung
nur mit großem Aufwand durchführbar, was die Kosten für solche Sensorknoten erhöht
und ihre Lebensdauer stark beeinträchtigt.
Anwendungen in der Umweltüberwachung
Eine erfolgreiche Anwendung von drahtlosen Sensornetzen aus dem Bereich Umweltbeobachtung ist das Great Duck Island“ Projekt, bei dem das Brutverhalten und die Le”
bensweise einer seltenen Entenart mit Hilfe von drahtlosen Sensornetzen studiert wird. So
wird in einem Teil des Brutgebietes den Enten ein Sensorknoten unter das Nest gelegt, der
die Temperatur des Nestes misst. Einige dieser Sensoren sind zusätzlich mit einem Kamerasystem verbunden, das aktuelle Bilder der Nestbesatzung“ sendet. Die Erfahrungen,
”
die dabei gemacht wurden, werden in [SPMC04] erläutert.
Eine weitere Anwendung im Bereich der Umweltbeobachtung wird gegenwärtig in der
Ostsee durchgeführt [Sch04]. Dort betreibt das Umeå Marine Science Centre in Zusammenarbeit mit dem Swedish Institute of Computer Science (SICS) und der Freien Universität Berlin ein Sensornetz. Bojen, die in verschiedenen Wassertiefen die Temperatur
messen, wurden mit Sensorknoten ausgestattet, so dass ein Bojennetz“ entsteht, über
”
das die Messwerte an eine Basisstation gesendet werden. Diese Basisstation ist eine Boje,
2 Grundlagen
47
die über einen Zugang zum GPRS-Netz verfügt, der es ermöglicht, die Daten auf das Festland zu übertragen. Die Software auf den Bojen übernimmt bereits eine Vorverarbeitung
(Kompression, Mittelwerte), um das Datenaufkommen zu reduzieren. Dieses System soll
nach erfolgreicher Erprobung im Frühjahr 2005 das sonst übliche System der an einem
Boot angebrachten Schleppsensoren ersetzen. Von den durch das Sensornetz ermittelten
Daten, erhofft man sich ein genaues Bild der Temperaturverteilung in Zuflüssen zur Ostsee und deren jahreszeitbedingten Änderungen. Dies wiederum kann zur Untersuchung
der Auswirkungen auf die Tier- und Pflanzenwelt genutzt werden.
Einen weiteren Nutzen aus der Entwicklung von autonomen Sensornetzen kann die
Landwirtschaft ziehen. Mit Hilfe von kleinen Knoten, verteilt über eine Anbaufläche,
können Landkarten erstellt werden, in denen Bodeneigenschaften wie Säure- oder Phosphatgehalt verzeichnet sind. Dies würde zu einer besseren Nutzung von Düngemitteln
führen und die Belastung des Bodens verringern. In Treibhäusern könnte die Luftfeuchtigkeit oder die Temperatur gemessen und durch Hinzufügen von Sensorknoten an kritischen
Stellen die räumliche Auflösung erhöht werden.
So wird mit wenig Aufwand ein Temperaturprofil über eine relativ große Fläche erstellt
und gezielt die verwendeten Wärmesysteme verbessert. Durch einfaches Hinzufügen von
weiteren Sensorknoten kann aus dem Flächenprofil ein dreidimensionales Profil erstellt
werden, das Temperaturunterschiede in verschiedenen Luftschichten des Gewächshauses
veranschaulicht. Diese und ähnliche Situationen wurden von Jenna Burrell u.a. in [BBB04]
für ein Weingut getestet. Dabei wurde die Konfiguration des Sensornetzes an die gestellten
Aufgaben angepasst, um diese bestmöglich lösen zu können. Die Ergebnisse wurden an
einem Rechner visuell dargestellt, so dass die ermittelten Daten direkt zur Optimierung
des Arbeitsablaufes genutzt werden konnten.
Eine weitere Anwendung für drahtlose Sensornetze ist das Erkennen, Lokalisieren und
Melden von Waldbränden. Ein zu diesem Zweck entwickeltes System, der Firebug [DSG],
wird dazu in Gebieten installiert, in denen die Wahrscheinlichkeit von Waldbränden sehr
hoch ist. Die einzelnen Knoten führen eine Lokalisierung mit Hilfe des GPS durch, so
dass die Messwerte geografischen Positionen zugeordnet werden können. Aufgrund der
Vielzahl an Sensoren (Licht, Wärme, Feuchtigkeit,..) versuchen die Knoten, Waldbrände
in ihrer Entstehung zu erkennen. Die Daten der einzelnen Knoten werden zu einer Basisstation gesendet, die nach einer Auswertung diese in eine Datenbank einpflegt. Diese
Datenbank ist über das Internet abrufbar. Da Waldbrände sich in trockenen Gegenden
schnell ausbreiten, ist ein nahezu Echtzeitverhalten des Systems erwünscht.
Auch kommerzielle Lösungen existieren bereits für diesen Anwendungsbereich. So bietet
die Firma Digital Sun aus San Jose in Kalifornien, USA mit S. Sense ein drahtloses
Sensornetz zur Überwachen der Bewässerung von Grünanlagen an [DS]. Die Basisstation
2 Grundlagen
48
wird in diesem Fall direkt an die Sprinklersteuerung angeschlossen und regelt, mit Hilfe
der Messdaten der Sensorknoten, das Ein- und Ausschalten der Bewässerung.
Anwendung im Katastrophenschutz
Notdienste und Katastrophenschutz können ebenfalls von drahtlosen Sensornetzen profitieren. David Malan u.a. präsentieren mit CodeBlue“ [MFJWM02] ein System, dessen
”
Sensorknoten die Vitalfunktionen von Patienten über das Netz an Rechner oder tragbare
Geräte übermittelt, um die Ersthilfe besser zu koordinieren. Einen Schritt weiter gehen
Gil Zussmann und Adrian Segall. In [ZS03] stellen sie ein System aus kleinen tragbaren
badges“ vor, die in die Kleidung oder Ausweise integriert werden können. Da Helfer in
”
der Zeit kurz nach einer Katastrophe nur den Rand des Gebietes erreichen können, bilden die Knoten zusammen mit den tragbaren Geräten der Helfer ein drahtloses Multihop
Netz, um die relativ kurze Reichweite der Sensorknoten zu kompensieren. Die Knoten
können dann geortet und somit verschüttete und eingeschlossene Personen bereits kurz
nach einem Unglück gerettet werden.
In der Gebäudeüberwachung werden ebenfalls drahtlose Sensornetze eingesetzt. So beschreibt Steven Glaser in [Gla04] den Einsatz von drahtlosen Sensorknoten bei der Messung von seismographischen Schwingungen bei Erdbeben an Gebäuden. Die gewonnenen
Daten werden für die Entwicklung von erdbebensicheren Gebäuden genutzt. Ein deutlicher Vorteil gegenüber der herkömmlichen Messmethode ist die fehlende Verkabelung.
Diese ist, ab einer bestimmten Größe eines Gebäudes, sehr aufwendig und kostenintensiv.
So besteht die Zentrale bei der kabelgebundenen Lösung aus mehreren hundert Kabeln,
plus die dazugehörigen Spezialstecker und Kanalverstärker (Glaser gibt 35 Dollar pro
Stecker und 3000 Dollar pro Verstärker an).
Anwendung in der Überwachung von Produktionsanlagen
Durch die Möglichkeit, sich selbst vernetzende Sensorknoten ohne großen Aufwand an geeigneten Stellen anbringen zu können, sind diese sehr gut geeignet, verschiedene Messungen an beweglichen Bauteilen großer Maschinen durchzuführen. Messungen an Rotoren,
wie z.B. Dehn- und Rotationskräfte, können nachträglich durchgeführt werden, ohne erst
Wege und Möglichkeiten für eine Verkabelung finden zu müssen.
In großen Fabrikanlagen werden die für die Produktion wichtigen Maschinen ebenfalls durch aufwendig verkabelte Sensoren überwacht und mittels Aktuatoren gesteuert.
Die Ergebnisse dieser Überwachung werden zentral in den Kontrollraum geleitet und
dort von den zuständigen Technikern überwacht. Diese kabelgebundene Anwendung kann
durch Sensornetze effektiver gelöst werden. Es wird nicht nur die aufwendige Verkabelung
eingespart, sondern die Zuverlässigkeit durch die Eigenschaften des vermaschten Netzes
2 Grundlagen
49
erhöht. So können Sensordaten bei Ausfall einer Strecke durch Umwege immer noch den
Kontrollraum erreichen.
Eine weitere große industrielle Anwendung ist das Ansteuern von Heizungen und elektrischem Licht. Neben einer einfachen Anwesenheitsprüfung, bei der Heizungen und Licht
in nicht genutzten Gebäudeteilen abgeschaltet werden, kann ein Sensornetz einfache logische Operationen selbstständig übernehmen, also Lichter in Kombination mit anderer
Beleuchtung ein- oder ausschalten, Reklamelicht nur zu bestimmten Uhrzeiten aktivieren,
oder Defekte der Beleuchtungsanlage ermitteln und melden.
Bestehende Anwendung können mit geringem Aufwand um zusätzliche Sensorik erweitert werden, um neben der Steuerung auch Aspekte der Arbeitssicherheit zu berücksichtigen. Die Detektion von gefährlichen Gasen oder Flüssigkeiten kann durch das gleiche Netz
abgedeckt werden, wie die Überwachung der Produktionsanlagen. Ausfälle von einzelnen
Knoten durch Brände, Explosionen oder Manipulation werden durch die redundanten
Verbindungen in dem Netz kompensiert und können gemeldet werden. So kann auch unter extremen Bedingungen ein ungefähres Lagebild erstellt und geeignete Maßnahmen
ergriffen werden.
Andere Anwendungsgebiete
Drahtlose Sensornetze eignen sich auch für Anwendungen im privaten Wohnbereich.
Durch einfaches Hinzufügen neuer Knoten wird die Auflösung und Genauigkeit von Klimaanlagen verbessert und Energie eingespart. In einem Haushalt, der mit drahtlosen Sensornetzen ausgerüstet ist, können verschiedene Informationen auf neuartige Weise zusammengeführt werden. Informationen aus den drahtlosen Zugangskontrollsystemen (Keyless
Entry) können mit erkannten Aktionen im Haushalt verglichen werden, um Gewohnheiten
oder Missbrauch zu erkennen. Tragbare Endgeräte, die mit dem vorhandenen Sensornetz
kommunizieren, können Informationen über den Status verschiedenster Elektrogeräte erhalten und diese auswerten. Ein solches Endgerät könnte auch eine universale Fernbedienung für sämtliche Geräte im Haushalt oder im Bereich der Consumer Electronic“ sein.
”
Vorhandenes Computer Zubehör kann, wenn es über ein drahtloses Netz kommuniziert,
dazu benutzt werden, bestimmte Funktionen von anderen Geräten zu übernehmen. So ist
es durchaus möglich, dass ein Drucker den Diagnosebericht einer Waschmaschine empfangen und ausdrucken kann, oder der Computer selbst rechenintensive Aufgaben von
anderen Geräten übernehmen, was diese deutlich kostengünstiger machen würde.
Eine in den Vereinigten Staaten von Amerika stark diskutierte Verwendung von drahtlosen Sensornetzen ist die Entdeckung von militärischen Einrichtungen, Einheiten und
Personal. Ein von Flugzeugen abgeworfenes Netz aus selbst organisierenden Knoten könnte Landstriche oder Straßen überwachen und nichtautorisierte Bewegungen melden. Diese
2 Grundlagen
50
Aufklärungs- und Frühwarnsysteme können autonom arbeiten und sind durch die geringe
Größe der einzelnen Knoten gegen Entdeckung gut geschützt. Die Überwachung von demilitarisierten Zonen oder die Einhaltung von Waffenstillstandsabkommen kann mit Hilfe
von Sensornetzen durchgeführt und so eine Verletzung frühzeitig erkannt werden.
Die Verkehrsüberwachung auf Autobahnen ist laut T. Hsieh [Hsi04] auch ein weiteres
Anwendungsgebiet für drahtlose Sensornetze. Dabei wird die Verkehrsdichte gemessen,
um eine später zu realisierende Verkehrsführung zu steuern.
Einschränkungen bei bestehenden Anwendungen
Alle diese Anwendungen setzen voraus, dass die Basisstation immer im Netz zur Verfügung steht. Was ist aber mit Anwendungen, bei denen dies nicht gewährleistet werden
kann?
So soll mit einer Anwendung beispielsweise festgestellt werden, welchen Scherkräften
der Produktträger ausgesetzt wird, oder wie die Luftfeuchtigkeit oder die Temperatur
entlang des Produktionsweges verläuft. Dazu wird ein Sensornetz auf den Produktträger
aufgebracht und nach ein- oder mehrmaligem Durchlauf in die Nähe einer Basisstation
gebracht, um die Messdaten auszuwerten.
Würde bei einer solchen Messung der Kontakt zur Basisstation unterbrochen werden,
oder einzelne Knoten verloren gehen, müsste die Messung wiederholt werden.
Ein anderes Beispiel findet sich im Bereich der Landwirtschaft oder der Umwelttechnik.
Ein Feld, eine Wiese oder ein Waldgebiet sollen kurzfristig für einen längeren Zeitraum
überwacht werden, aber es existiert keine Möglichkeit eine Basisstation zu installieren
(Gründe dafür sind z.B. die Nichtverfügbarkeit anderer Netze wie GSM, keine permanente
Energieversorgung oder ein zeitlicher Engpass).
Diese Anwendung ist mit den heutigen Sensornetzen nicht realisierbar, da eine dauerhafte Verbindung zu der Basisstation zwingend notwendig ist.
Auch bei der bereits erwähnten Anwendung von Sensornetzen zur Beobachtung von
Schäden an Gebäuden bei Erdbeben sind die Folgen unübersehbar, wenn einzelne Knoten
ausfallen, oder die Daten die Basisstation nicht erreichen können. Da aus den ermittelten
Daten Berechnungsmodelle zur Schadenbegrenzung an Gebäuden bei Erdbeben entwickelt
werden, wären bei unvollständigen Datensätzen die Modelle nicht hinreichend genau und
der Test müsste wiederholt werden.
2 Grundlagen
51
Das im Rahmen dieser Arbeit entwickelte Verfahren verhindert genau dies, den Verlust von Daten durch eine unterbrochene Verbindung zur Basisstation. Daten, die von
den einzelnen Sensorknoten ermittelt werden, können bei einer Unterbrechung der Verbindung zu der Basisstation im Netz verteilt werden, so dass sie nach Wiederherstellung
der Verbindung übertragen werden können. Sollten Knoten ausfallen, können die Daten aufgrund der entwickelten Kodierung, wiederhergestellt werden. Dadurch wird die
Wahrscheinlichkeit eines kompletten Datenverlustes reduziert.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
52
3 Verfahren zur redundanten und distributiven
Datenverarbeitung
Drahtlose Sensornetze leiten die ermittelten Daten an eine im Netz befindliche Basisstation weiter. Die Basisstation übernimmt somit eine Schlüsselrolle in einem solchen Netz,
denn ohne eine funktionsfähige Verbindung zwischen den Netzteilnehmern und der Basisstation ist das Sensornetz für den Anwender unbrauchbar. So wird beispielsweise bei
TinyOS kein für Anwendungen nutzbares Netz gebildet, solange keine Basisstation im
Netz vorhanden ist [Tin]. Erst ab dem Zeitpunkt der Integration ist die Applikation in
der Lage, Datenpakete an einzelne Teilnehmer zu versenden. Diese Abhängigkeit von der
Basisstation hat in bestimmten Situationen schwerwiegende Folgen für den Benutzer eines
Sensornetzes, denn eine Unterbrechung der Verbindung zur Basisstation ist gleichbedeutend mit einem Datenverlust. Im Rahmen dieser Arbeit wurde ein Verfahren entwickelt,
mit dessen Hilfe ein Datenverlust in einer solchen Situation vermieden wird.
In diesem Kapitel wird das entwickelte Verfahren zur redundanten und distributiven
Datenverarbeitung in einem Sensornetz und somit das entwickelte Netzwerkprotokoll beschrieben. Nach einem Überblick über die Netzwerk Hierarchie werden nachfolgend die
einzelnen Hierarchieebenen vorgestellt und das entwickelte proaktive Routingverfahren
erläutert. Eine kurze Zusammenfassung aller verwendeten Netzwerkpakete findet sich am
Ende dieses Abschnitts, eine allgemeine Beschreibung des Verfahrens liefern [Coe05b] und
[Coe05a].
Für Sensorknoten ist ein Protokoll, das alle Schichten des ISO-OSI Schichtenmodells
berücksichtigt, aufgrund der fehlenden Ressourcen nicht realisierbar. Die Realisierung aller Schichten ist allerdings auch nicht notwendig, da auf einem Sensorknoten nicht beliebig
viele Applikationen gestartet werden. Die Sitzungs-, Präsentations- und die Applikationsschicht können folglich entfallen. Das hier vorgestellte Protokoll und deren Abläufe sind
plattformunabhängig dargestellt, weshalb auf die unteren Protokollschichten und mögliche Mehrfachzugriffsverfahren an dieser Stelle nicht eingegangen wird. Dieses Vorgehen
wurde gewählt, da Implementierungen von Protokollen in der Regel die hardwarespezifischen Aspekte mit Hilfe eines Hardware Abstraction Layers“ (HAL) vor den oberen
”
Protokollschichten verbergen“. Die HAL stellt die verschiedenen hardwareabhängigen
”
Aspekte dann als Systemfunktionen zur Verfügung, die von den Protokollschichten genutzt werden können. Diese Vorgehensweise ist von Vorteil, da für jede Plattform nur die
HAL implementiert werden muss.
Lediglich die benötigte Schnittstelle zwischen der Vermittlungsschicht und der Sicherungsschicht wird definiert: es wird ein verbindungsloser, unbestätigter Dienst (ein soge-
3 Verfahren zur redundanten und distributiven Datenverarbeitung
53
nannter Broadcast) und ein verbindungsloser, bestätigter Dienst für Kontroll- und Datenpakete benötigt.
Da das Protokoll auf Beacon-Paketen aufbaut und Cluster zur Organisation bildet, ist
es folglich von Vorteil, wenn bei einer späteren Realisierung auf einer Hardwareplattform
die unterhalb der Vermittlungsschicht liegenden Schichten ebenfalls Beacon-Pakete und
Clusterbildung nutzen. Dies ist beispielsweise bei IEEE 802.15.4 und dem MD Protokoll
der Fall.
Weiterhin setzt das Protokoll voraus, dass im Gegensatz zu [EE00], wo nur eine temporär gültige Identifikation eingesetzt wird, jeder Knoten eine eindeutige Identifikationsnummer, die Knoten ID, besitzt und jeder Cluster anhand einer eindeutigen Cluster ID
erkannt werden kann.
5
7
6
1
8
5
14
2
4
9
3
12
4
13
11
9
10
Bild 24: Sensornetz mit drei Clustern
Die Knoten kommunizieren untereinander mit unterschiedlichen Datenstrukturen. Diese Datenstrukturen werden, wie bei anderen Netzwerken, Pakete genannt25 .
25
Im weiteren Verlauf auch als Signal oder Nachricht bezeichnet.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
54
3.1 Netzwerk Organisation
Drahtlose Sensornetze besitzen, wie alle anderen Netzwerke auch, neben einer physischen
Topologie (Bustopologie) auch eine logische Topologie. Mit dem entwickelten Protokoll
wird das Netzwerk auf der Vermittlungs- und Transportschicht in einer Baumtopologie
organisiert. In Bild 24 auf Seite 53 ist ein solches Sensornetz dargestellt. Wie bei allen
im späteren Verlauf verwendeten Bildern sind logische Verbindungen als durchgezogene
Linien und physische Verbindungen als gestrichelte Linien gezeichnet. Die Sensorknoten
bilden Cluster, die von einem zentralen Knoten, dem Clusterhead (CH), kontrolliert werden. Ein Cluster stellt somit ein (kleines), eigenständiges Netzwerk mit Sterntopologie
dar. Die einzelnen Clusterheads bilden ein weiteres Netzwerk zur Kommunikation und
Organisation untereinander. Dies setzt nicht notwendigerweise voraus, dass die CH eines
Sensornetzes direkte Nachbarknoten sein müssen. Die Kommunikation kann dabei auch
über viele Knoten hinweg verlaufen. Dieses Netzwerk besitzt eine logische Bustopologie.
Basisstation
Clusterheads
Cluster
1
Cluster
2
Cluster
3
Bild 25: Schematische Darstellung der funktionellen Netzwerk Hierarchie
Die Basisstation nimmt in dem Netzwerk eine Sonderstellung ein. Sie meldet sich zwar
an einem Cluster an, ist jedoch nicht an den organisatorischen Vorgängen innerhalb des
Clusters oder des Netzwerkes beteiligt.
Das Netzwerk lässt sich funktionell in drei Hierarchieebenen unterteilen (Bild 25), wobei die oberste Ebene in der Hierarchiepyramide nur von der Basisstation eingenommen
wird. Wenn eine Basisstation im Netzwerk vorhanden ist, kommuniziert sie mit den einzelnen CH der Cluster. Die Basisstation informiert über ihre Anwesenheit und initiiert
somit die Übertragung der Daten der einzelnen Knoten. Je nach Anwendung kann die
3 Verfahren zur redundanten und distributiven Datenverarbeitung
55
Basisstation nach der erfolgreichen Wiederherstellung der Daten diese auswerten, oder
diese zur Auswertung über ein anderes Netz an den Anwender senden.
Die darunterliegende Ebene ist die Ebene der Clusterheads. Die Clusterheads kommunizieren nicht nur mit den Mitgliedern ihres eigenen Clusters, sondern über spezielle
Kontrollpakete auch mit den anderen Clusterheads im Netzwerk. Auf diesem Wege kann
ein CH nicht nur mit den anderen Clustern in seiner direkten Nachbarschaft Kontakt
aufnehmen, sondern es können Daten und darüber hinaus Kontrollpakete im gesamten
Netzwerk ausgetauscht werden.
Die Clusterheads bilden eine verteilte Kontrollinstanz für das gesamte Netzwerk und
stellen ein Liste zur Verfügung, in dem alle Clustermitglieder eingetragen sind.
Die unterste Ebene besteht aus dem Gros der Sensorknoten, den einfachen Mitgliedern
eines Clusters. Ein Knoten in der untersten Ebene hat lediglich Kenntnis von seinen
direkten Nachbarn und dem CH, zu dem er regelmäßig Kontakt hält.
3.2 Netztopologie
An dieser Stelle wird auf die unterschiedlichen Topologien in einem Netzwerk eingegangen. Jeder Sensorknoten verfügt aufgrund der physikalischen Eigenschaften der drahtlosen Übertragung über eine begrenzte Sendereichweite. Andere Knoten innerhalb dieser
Reichweite können die Funksignale des Knotens empfangen und darauf antworten. Daraus folgt, dass eine direkte Kommunikation nur innerhalb dieser Reichweite möglich ist.
Damit Distanzen, die deutlich größer als die zur Verfügung stehende Reichweite sind,
überbrückt werden können, werden die Nachrichten von Knoten zu Knoten weitergeleitet.
Jeder Sprung von einer Zwischenstation zur nächsten wird Hop genannt und die Anzahl
der benötigten Stationen Hop-Count26 . Eine Verbindung von Knoten A nach Knoten C
in Bild 26 hat somit einen Hop-Count von zwei.
2
1
A
B
3
C
D
Bild 26: Schematische Darstellung des HopCount
26
Vom eng. count, zählen.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
56
Um diesen Sachverhalt noch einmal zu erläutern wird in Bild 27 (Seite 57) das Netzwerk
aus Bild 24 (Seite 53) bezüglich zu seiner physischen und logischen Topologie dargestellt.
In der physischen Ebene sind die Knoten untereinander aufgrund des oben beschriebenen
Sachverhaltes durch ein vermaschtes Netzwerk verbunden. Knoten, die sich innerhalb
eines Empfangsbereiches befinden, sind durch gestrichelte Linien miteinander verbunden.
So befinden sich in dieser Darstellung nur vier Knoten in direkter Reichweite von Knoten
9, die Knoten 10, 11, 12 und 14.
Diese Knoten bilden in der logischen Ebene einen Cluster. Logische Verbindungen sind
als durchgezogene Linien dargestellt. Ebenfalls nur auf der logischen Ebene sind die drei
Clusterheads des Netzwerkes miteinander verbunden.
Werden nun diese beiden Ebenen überlagert, ergibt sich eine Darstellung aus der erkennbar wird, wie die Kommunikation der CH untereinander auf der physischen Ebene
abläuft. So sind Cluster 5 und Cluster 9 nur über Knoten 8 miteinander verbunden. Alle
Pakete, ob Kontroll- oder Datenpakete, werden über diesen Verbindungsknoten geleitet.
3.3 Das Beacon-Paket
Wie bereits erwähnt, basiert das hier entwickelte Sensornetz auf dem regelmäßigen Senden von Beacon-Paketen. Dieser Pakettyp wird von allen Sensorknoten, unabhängig von
ihrer logischen Funktion, mittels eines Broadcast-Dienstes gesendet. Neben einer eindeutigen Nummer, der Knoten ID, enthält ein Beacon noch eine Cluster ID und einen Wert,
der die Entfernung seines Clusters von der Basisstation repräsentiert (Hop-Count). Ein
Hop-Count von null bedeutet, dass eine Basisstation in dem Cluster vorhanden ist. Dieses
Paket wird in periodischen Abständen tbeacon ausgesendet, wobei tbeaconT X die benötigte
Zeit für das Senden eines Beacon-Paketes bezeichnet. Neben der zeitlichen Synchronisierung dient dieses Paket auch der Initiierung der Kommunikation mit benachbarten
Knoten. Nach dem Senden eines Beacon-Paketes wechselt ein Knoten in eine Empfangsphase der Länge tbeaconRX , um anderen Sensorknoten die Möglichkeit zur Kommunikation
zu bieten.
In Bild 28 (siehe Seite 58) sind die einzelnen Phasen für drei Knoten schematisch
dargestellt. Knoten 2 beendet seine Einschaltphase der Länge tein und sendet im direkten
Anschluss periodisch Beacon-Pakete. Innerhalb der Einschaltphase sendeten Knoten 5
und 9 jeweils ihr Beacon Signal, so dass Knoten 2 sie empfangen kann. Knoten 2 kennt
daher die Cluster ID, Knoten ID und den nächsten Zeitpunkt der jeweiligen BeaconPakete. Zufälligerweise sendet Knoten 9 sein Beacon-Paket innerhalb der Empfangsphase
von Knoten 2, so dass Knoten 2 Knoten 9 identifizieren kann. Knoten 9 wiederum kann aus
dem gleichen Grund Knoten 2 identifizieren. Da die Knoten nicht zum selben Zeitpunkt
3 Verfahren zur redundanten und distributiven Datenverarbeitung
57
Physische
Ebene
7
6
1
8
5
14
2
9
4
12
3
13
11
10
7
Logische Ebene
5
6
1
8
5
14
2
9
4
12
3
13
11
4
10
9
Überlagerung
7
5
6
1
8
5
14
2
9
4
12
3
4
11
9
13
10
Bild 27: Zusammenhang zwischen logischer und physischer Topologie in einem Sensornetz
3 Verfahren zur redundanten und distributiven Datenverarbeitung
Knoten 2
tein
tbeaconT X
58
tbeaconRX
tbeacon
Knoten 5
tbeaconT X
tbeaconRX
tbeaconT X
tbeaconRX
tbeacon
Knoten 9
tbeaconT X
tbeaconRX
tbeaconT X
tbeaconRX
Zeit
Bild 28: Zeitliche Abfolge der Beacon-Pakete
eingeschaltet werden und tbeacon um ein Vielfaches größer ist als tbeaconT X , ergibt sich ein
Aloha ähnliches Szenario.
3.4 Der funktionelle Protokollablauf
In Bild 29 (Seite 60) ist der Anfang des funktionellen Ablaufes des Protokolls in einem
Flussdiagramm dargestellt. Nach dem Einschalten eines Sensorknotens horcht dieser für
eine Zeit tein auf Beacon-Pakete anderer Knoten. Damit dieser Vorgang erfolgreich sein
kann, muss diese Zeit größer sein als tbeacon , das Intervall zwischen zwei Beacon-Paketen,
zuzüglich der benötigten Zeit zum Senden, tbeaconT X , da dann mindestens ein BeaconPaket eines anderen Knotens empfangen wurde.
Wenn ein oder mehrere Beacon Signale anderer Knoten empfangen wurden, besitzt
der Knoten Informationen über seine direkten Nachbarn, denn anhand der eindeutigen
Knoten ID jedes Knotens hat er die Knoten in seiner Umgebung und die dazugehörigen
Cluster ermittelt. Der Einfachheithalber nimmt ein Cluster immer die ID des ihn kontrollierenden Clusterheads an. Dadurch lassen sich nicht nur die Cluster unterscheiden,
sondern die ID des Clusterheads ist sofort bekannt.
Mit den vorhandenen Informationen über die in Reichweite liegenden Nachbarknoten
und deren Clusterzugehörigkeit kann die nächste Phase eingeleitet werden.
In diesem Schritt wird zu einem der erkannten Cluster Kontakt aufgenommen, indem
an den CH ein Join-Request-Paket gesendet wird. Wird dieses negativ beantwortet wird
versucht, zu dem nächsten erkannten Cluster eine Verbindung herzustellen. Mögliche
Gründe für einen Fehlschlag werden in Unterabschnitt 3.6 (Seite 63) genannt. Sollte
zu keinem erkannten Cluster eine Verbindung hergestellt werden können, oder wurden
keine Cluster in der Nachbarschaft erkannt, erklärt der Sensorknoten sich zum CH und
3 Verfahren zur redundanten und distributiven Datenverarbeitung
59
bildet damit einen eigenen Cluster. Dies wird auch mittels einer Beacon Nachricht den
Nachbarknoten mitgeteilt. Der Knoten beginnt direkt nach der Lauschphase“ mit dem
”
Senden von Beacon-Paketen, die in tbeacon Intervallen wiederholt werden.
3.5 Die Mitglieder eines Clusters
Der größte Teil der Sensorknoten in einem Sensornetz sind einfache Cluster Mitglieder.
Ihnen werden keine erweiterten Netzwerkfunktionen zugeschrieben, so dass sie, neben der
eigentlichen Aufgabe aller Sensorknoten Daten zu sammeln, gegebenenfalls Datenpakete
oder Infopakete an den CH eines Netzes versenden.
3.5.1 Das Infopaket
Ein Knoten, der die Funktion eines Clusterheads ausübt, muss über den Status der Teilnehmer seines Clusters jederzeit Informationen besitzen, um auf Veränderungen reagieren
zu können. Das regelmäßig ausgesendete Beacon-Paket ist dazu nicht geeignet, denn es
enthält aufgrund seiner geringen Größe nur unzureichende Informationen. Um von seinen
Cluster Mitgliedern weitere Informationen zu erhalten, senden diese in festen Intervallen
tinf o ein Infopaket an den CH. Das Intervall tinf o wird so gewählt, dass es einem ganzzahligen Vielfachen von tbeacon entspricht. Diese Festlegung erfolgt nach einfachen Gesichtspunkten: nach einem Beacon-Paket horcht ein Sensorknoten für eine Zeit tbeaconRX
auf mögliche Kommunikationsversuche anderer Knoten. Wird der Zeitpunkt des Infopaketes so gewählt, dass er in den Empfangszeitraum des Zielknotens (also des CH) fällt,
entstehen keine unnötigen Verzögerungen.
Durch die Verknüpfung von tinf o mit tbeacon entsteht noch ein weiterer Vorteil: bleibt
das Beacon Signal des CH aus, kann der Sensorknoten das Senden des Infopaketes unterlassen oder auf den nächstmöglichen Zeitpunkt verschieben. So wird unnötiges Senden
vermieden. Die Größe tinf o ist folglich eine kritische Zeitkonstante im Netzwerk. Wird sie
zu kurz gewählt, wird ein CH bei entsprechend großer Anzahl von teilnehmenden Knoten keine anderen Aktionen neben dem Abfragen der Informationen durchführen können.
Der Cluster wäre funktionsunfähig und aufgrund des hohen Sendeaufkommens würden
die Teilnehmer durch den zu hohen Energieverbrauch früh ausfallen.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
Einschalten
Lauschphase
für
tein
NEIN
Clusterhead
empfangen?
JA
Anmelden am
Clusterhead
Clusterhead
werden und
Cluster bilden
NEIN
Erfolgreich?
JA
Clusterhead
Phase
Member
Phase
Bild 29: Funktioneller Protokollablauf der Einschaltphase
60
3 Verfahren zur redundanten und distributiven Datenverarbeitung
Member
Phase
NEIN
Beacon?
tbeacon
NEIN
Paket an
Clusterhead
?
Paket
empfangen
?
Beacon senden
JA
tinf o
NEIN
JA
Info Paket
senden
JA
Auswerten ob
Datenpaket/
Kontrollpaket
NEIN
Paket
senden?
JA
Daten Paket
senden
Phase
beendet
Bild 30: Funktioneller Protokollablauf für Sensorknoten
61
3 Verfahren zur redundanten und distributiven Datenverarbeitung
62
3.5.2 Das Datenpaket
Die Daten, die ein Sensorknoten sammelt, werden mit einem Datenpaket entweder an die
Basisstation oder an den Clusterhead des Clusters gesendet. Damit das Datenpaket wiederhergestellt werden kann, bildet der Sensorknoten einen Paritätsblock über die Daten.
Dazu werden diese in zwei Hälften unterteilt und logisch miteinander verknüpft.
Die Verknüpfung ergibt sich dann wie folgt:
pn = d1n ⊕ d2n
n = 1, . . . , N/2
(5)
wobei N die Länge der Daten und d1 bzw. d2 die einzelnen Hälften des Datenblocks
darstellen. Dieser Paritätsblock wird nicht versendet, sondern lokal auf dem Sensorknoten
gespeichert.
Geht nun ein Teil der Daten verloren, kann der fehlende Teil auf folgendem Weg ermittelt werden:
di,n = dj,n ⊕ pn
(6)
d1 = p ⊕ d2
(7)
mit i 6= j, i = 1, 2. Es soll gelten:
mit p = d1 ⊕ d2 (Gl. 5) eingesetzt in (Gl. 7) ergibt:
d1 = (d1 ⊕ d2) ⊕ d2
(8)
d1 = d1 ⊕ (d2 ⊕ d2)
(9)
und (Assoziativität)
mit Idempotenz (d2 ⊕ d2 = 0) und d1 ⊕ 0 = d1 folgt dann:
d1 = d1
(wahr)
(10)
Der Speicher auf dem Sensorknoten, der die Paritätsblöcke enthält, ist anders organisiert als der Speicher, den der Sensorknoten für das Zwischenlagern von Datensätzen
anderer Sensorknoten vorsieht. Dafür eignet sich beispielsweise ein zyklischer Buffer. Nach
der Bildung einer bestimmten Anzahl von Paritätsblöcken wird der erste Block automatisch überschrieben. Dies hat den Vorteil, dass eine Bestätigung zum Löschen einzelner
Blöcke nicht versendet werden muss.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
63
3.6 Die Clusterheads
Die Clusterhead-Knoten kontrollieren den Aufbau und die Kommunikation innerhalb eines Sensornetzes. Jeder Sensorknoten kann in einem Netzwerk die Funktion eines Clusterheads übernehmen; es ist dafür keine spezielle Hard- oder Software nötig. Dies verringert
Ausfälle von kompletten Clustern und erhöht die Zuverlässigkeit und Lebensdauer des
Sensornetzes [MR03]. Dazu bedarf es bestimmter Pakete, mit denen der CH auf Ereignisse reagieren oder Informationen anfordern kann. Der Protokollablauf für Clusterheads
ist in Bild 31 auf Seite 64 dargestellt.
3.6.1 Hinzufügen von Knoten
Die Integration von neuen Sensorknoten in einen bestehenden Cluster wird über spezielle
Kontrollpakete realisiert. Ein Knoten, der einem Cluster beitreten möchte, sendet an den
CH ein Join-Request-Paket. Der CH wird nach Erhalt dieses Paketes entscheiden, ob ein
weiterer Sensorknoten in seinem Cluster akzeptiert werden kann. Folgende Bedingungen
sind zu beachten:
Kapazität
Sensorknoten besitzen nur beschränke Hardware Ressourcen. Für jedes Mitglied in einem Cluster muss der CH Verwaltungsstrukturen anlegen. In diesen Strukturen sind
beispielsweise die geschätzte Speicherkapazität27 enthalten, oder der Zeitpunkt des letzten Beacon-Paketes. Es muss für einen weiteren Knoten ausreichend Kapazität vorhanden
sein, um diese Strukturen im Speicher anlegen zu können. Die obere Grenze der Kapazität
wird daher von der Hardware gesetzt.
Zeitschlitze
Wie beschrieben, melden sich Sensorknoten in regelmässigen Abständen bei ihrem Clusterhead. Ein weiterer Sensorknoten wird akzeptiert, wenn durch die zusätzliche Kommunikation die anderen Aufgaben des CH nicht beeinträchtigt werden.
Netzwerktiefe
Die Netzwerktiefe ist ein wichtiges Maß für den Aufbau des Netzwerkes. In einem MultiHop Netzwerk gibt sie die Anzahl der Stationen (Sensorknoten) an, die ein Paket benötigt,
um das Ziel zu erreichen, wenn keine direkte Kommunikation möglich ist und die Pakete
durch andere Knoten weitergeleitet werden. In diesem Fall gibt sie die zulässige Anzahl
27
Für eine spätere Entscheidung, ob Daten auf diesem Knoten gespeichert werden können.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
64
Clusterhead
Phase
JA
Beacon?
NEIN
Beacon senden
NEIN
Daten
empfangen
?
JA
NEIN
Basis im
Netz?
JA
NEIN
Clusterhead
Update?
NEIN
Daten aus
eigenem
Cluster?
JA
Clusterinfo
Paket an
Nachbar Cluster
senden
JA
Aufteilen und im
Cluster
speichern
An anderen
Cluster senden
Daten an Basis
weiterleiten
Phase
beendet
Bild 31: Funktioneller Protokollablauf für Clusterheads
3 Verfahren zur redundanten und distributiven Datenverarbeitung
65
von Stationen an, die zwischen einem Sensorknoten und dem Clusterhead liegen dürfen.
Ist die Anzahl der Zwischenstationen zu groß, beansprucht die Kommunikation über alle
beteiligten Knoten zu viel Zeit und Energie.
Wenn der CH einen weiteren Sensorknoten akzeptiert, sendet er als Antwort eine JoinAccept Nachricht. Der neue Knoten wird nun in die Verwaltungsstrukturen eingetragen.
Bevor der CH den neuen Knoten wirklich berücksichtigen kann, muss dieser die JoinAccept Nachricht mit einem Infopaket bestätigen. Erst nach Erhalt dieses Paketes ist der
Sensorknoten ein Mitglied des Clusters.
Dieser Vorgang ist in Bild 32 auf Seite 66 dargestellt. In Bild 32(a) versucht der Knoten
13 mit dem CH des Clusters, Knoten 9, Kontakt aufzunehmen. Er sendet dazu ein JoinRequest-Paket an den CH. Der logische Weg der Kommunikation ist durch einen Pfeil
mit durchgezogener Linie dargestellt. Der physikalische Weg des Paketes ist gestrichelt
gezeichnet. Es ist zu erkennen, dass Knoten 13 nicht direkt mit dem CH kommunizieren kann, sondern die Pakete über Knoten 12 weitergeleitet werden, also eine Multihop
Verbindung besteht. Bild 32(b) zeigt, dass die positive Antwort des CH über den gleichen Weg (Knoten 12) gesendet wird. Der erfolgreiche Vorgang wird mit dem Senden des
Infopaketes von Knoten 13 an Knoten 9 beendet, was in Bild 32(c) dargestellt ist.
Sollte der CH entscheiden, dass ein weiterer Sensorknoten innerhalb seines Clusters
nicht akzeptiert werden kann, sendet der CH ein Join-Denied-Paket an den Sensorknoten.
Dieser wird nun versuchen, den nächsten CH in seiner Umgebung zu kontaktieren.
3.6.2 Das Cluster Infopaket
Das Infopaket (siehe Unterabschnitt 3.5.1, Seite 59) enthält die Anzahl der Nachbarknoten
des jeweiligen Senders und die Cluster IDs der vorhandenen Nachbarcluster. Die letztere
Information ist für die Cluster-zu-Cluster Kommunikation von großer Bedeutung. Da
neue Cluster unabhängig von bestehenden Clustern entstehen können, ist ein CH auf
diese Informationen angewiesen.
Im Abstand von tcluster verschickt ein CH Informationen über seinen Cluster an die CHs
in seiner Nachbarschaft mittels eines Cluster Infopaketes. Dieses Infopaket enthält neben
der Speicherkapazität des gesamten Clusters auch die Information darüber, ob Kontakt
zu der Basisstation besteht und in welcher Entfernung, gemessen in Hop-Counts, sich
diese befindet. Da an die Basisstation, die sich zu einem beliebigen Zeitpunkt an einem
CH anmelden kann, alle im Netz verfügbaren Daten gesendet werden sollen, sind Informationen über den aktuellen Cluster, in dem sich die Basisstation befindet, notwendig. Mit
Hilfe der Information über die Kapazität des Clusters kann ein anderer CH entscheiden,
ob und wie viele Daten er an diesen Cluster weiterleitet.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
66
14
Join-Request
9
12
13
11
10
9
(a) Senden des Join-Request-Paketes
14
14
Info
9
9
12
11
10
12
13
11
JoinAccept
13
10
9
(b) Senden des Join-Accept-Paketes
9
(c) Senden des Infopaketes
Bild 32: Hinzufügen von Sensorknoten zu einem Cluster
3 Verfahren zur redundanten und distributiven Datenverarbeitung
67
3.6.3 Datenverteilung im Cluster
Erhält ein CH ein Datenpaket, werden folgende Bedingungen geprüft:
• Verfügbarkeit einer Basisstation?
• Ursprung des Datenpaketes im eigenen Cluster?
Wenn eine Basisstation im Netzwerk verfügbar ist, wird das Datenpaket direkt an
den Cluster weitergeleitet, in dem sich die Basisstation befindet. Dies sollte in einem
Sensornetz die Standard Vorgehensweise sein.
Wurde dem CH jedoch nicht die Verfügbarkeit einer Basisstation signalisiert, wird die
zweite Bedingung überprüft. Ist der Ursprung des Datenpaketes ein Knoten innerhalb
des eigenen Clusters (oder der CH selber), wird versucht, dieses Datenpaket in einen
anderen Cluster auszulagern. Dazu wird das Datenpaket unverändert an einen anderen
CH weitergeleitet, was eine bessere räumliche Verteilung der Daten in einem Sensornetz
erlaubt, da durch dessen Cluster Organisation bereits eine grobe räumliche Einteilung
vorhanden ist.
Um den richtigen Cluster zu ermitteln, werden alle bekannten Nachbarcluster mit ihren zuletzt gemeldeten Kapazitäten in einer Tabelle auf dem CH verwaltet und nach dem
Round-Robin Verfahren ausgewählt: der Cluster des ersten Eintrags der Tabelle wird
ausgewählt und von der Tabelle entfernt. Anschliessend wird er an das Ende der Tabelle
wieder angehängt und überprüft, ob seine eingetragene Kapazität für die Daten ausreichend ist. Ist dies nicht der Fall, wird das Verfahren mit dem neuen ersten Tabelleneintrag
wiederholt. Sollte die Kapazität von keinem Cluster ausreichend sein, muss der CH das
Paket innerhalb seines Clusters speichern. Steht auch hier keine ausreichende Kapazität
zur Verfügung, muss das Paket verworfen werden.
Ist der ursprüngliche Sender des Datenpaketes nicht Mitglied des Clusters, wurde das
Datenpaket von einem anderen Cluster zur Speicherung gesendet. In diesem Fall muss
der CH entscheiden, welche Knoten in seinem Cluster für eine Speicherung der Daten in
Frage kommt.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
68
Das Datenpaket
Sensorknoten können, wie in Unterabschnitt 2.3 (siehe Seite 37) beschrieben, Messdaten von den unterschiedlichsten Sensoren erhalten. Es ist daher schwierig, ein allgemein
gültiges Modell für ein Datenpaket zu beschreiben. Folgende Annahmen sollen dennoch
getroffen werden:
• Ein Datenpaket enthält einen Wert, der als laufender Index oder als Zeitpunkt der
Messung interpretiert werden kann. Der Zeitpunkt kann dabei lokale (nur für diesen
Knoten) oder globale (für das gesamte Netzwerk) Gültigkeit besitzen. Im letzteren
Fall müssen die Knoten die Fähigkeit besitzen, ihre Zeiten untereinander zu synchronisieren. Es existieren bereits Verfahren, die dies bis auf eine Mikrosekunde
genau leisten [EE01], [SY04].
• Die Messdaten werden nicht sofort zur Basisstation gesendet (kein Echtzeitverhalten) sondern erst, wenn das Datenpaket eine bestimmte Größe erreicht hat. Diese
Annahme kann getroffen werden, da bei einer Echtzeit-Applikation kein Bedarf an
redundanter Verarbeitung besteht. Ein Anwender von Echtzeit-Applikationen erwartet den Messwert kurz nachdem der Mikrocontroller diesen von dem Sensor
ausgelesen hat und erlaubt keine Verzögerung. Ein Verlust der Basisstation wäre
ein frühzeitiges Ende für eine Echtzeit-Applikation.
Ein CH, der ein Datenpaket von einem anderen CH erhalten hat, unterteilt dieses Paket
in zwei gleich große Pakete, die auf die Mitglieder seines Clusters verteilt werden. Die
Verteilung findet wieder nach dem Round-Robin Verfahren statt: der CH verfügt über eine
Tabelle, in der die einzelnen Mitglieder des Clusters mit ihrer Kapazität gespeichert sind.
Mit Erhalt eines für die Verteilung in seinem Cluster bestimmten Datenpaketes wird der
nächste Eintrag aus der Tabelle berücksichtigt und die Tabelle um einen Eintrag rotiert.
Dadurch ist sichergestellt, dass kein Knoten beide Teile des ursprünglichen Datenpaketes
erhält, oder bei aufeinander folgenden Datensätzen der gleiche Knoten immer wieder
belastet wird. Erst danach wird die mögliche Speicherkapazität des Knotens überprüft
und gegebenenfalls ein neuer Knoten ausgewählt.
Nachdem der CH beide Teile des Datenpaketes erfolgreich versendet hat, kann das Paket aus dem Speicher gelöscht werden. Der CH sendet an den Absender des Datenpaketes
(ebenfalls ein CH) eine Store-Accept Nachricht, so dass dieser das Paket ebenfalls löschen kann. Sollte der CH das Datenpaket nicht speichern können, da keine ausreichende
Kapazität vorhanden ist, können folgende Handlungsweisen durchgeführt werden: zum
einen kann der CH versuchen, das Datenpaket an einen anderen Cluster weiterzuleiten,
zum anderen kann versucht werden, nur ein Datenteil im Cluster zu speichern und den
3 Verfahren zur redundanten und distributiven Datenverarbeitung
Da
69
14
ten
pa
ket
e
9
12
13
11
10
9
(a) Ein CH empfängt ein Datenpaket
14
Datenpaket
1
14
9
9
12
11
12
13
11
10
13
10
9
9
(b) Versenden des ersten Paketes
Datenpaket
2
(c) Versenden des zweiten Paketes
Bild 33: Datenverteilung in einem Cluster
3 Verfahren zur redundanten und distributiven Datenverarbeitung
70
anderen Teil an einen Nachbarcluster zu senden. Die verbleibende Möglichkeit besteht
aus dem Verwerfen eines oder beider Datenteile. Nur im letzteren Fall sendet der CH ein
Store-Denied-Paket, um einen Datenverlust zu vermeiden.
Ein erfolgreicher Speichervorgang ist in Bild 33(a) bis Bild 33(c) auf Seite 69 dargestellt. Ein CH eines Clusters, Knoten 9, empfängt von anderen Clustern Datenpakete
(Bild 33(a)). Nachdem der CH das Datenpaket in zwei Hälften geteilt hat, sendet er die
erste Hälfte an Knoten 10 (Bild 33(b)) und die zweite Hälfte an Knoten 11 (Bild 33(c)).
Der Empfang der Datenteilpakete wird nicht durch ein spezielles Kontrollpaket bestätigt.
Hier reicht die Bestätigung der unteren Schichten aus.
3.6.4 Ausfall des Clusterheads
Der Ausfall des Clusterheads innerhalb eines Clusters ist eine folgenschwere Störung des
Protokollablaufs. Ein Netzwerk mit Sterntopologie ist abhängig von seinem koordinierenden Element. Frühestens nach dem ersten, nicht erfolgten Senden des Beacon Signals
des CH können die Mitglieder des Clusters den Ausfall erkennen. Ein Beacon Signal ist
ein Broadcast Signal, ein verbindungsloser, unbestätigter Dienst der Sicherungsschicht.
Daher können zunächst verschiedene Gründe für das Ausbleiben des Beacon Signals angenommen werden. Beispielsweise könnten Interferenzen am empfangenden Knoten das
fehlerfreie Empfangen des Paketes verhindert haben. Dass ein CH nicht mehr existiert,
können die Knoten erst feststellen, wenn das Senden des Infopaketes erfolglos ist.
In einem solchen Fall beginnen die Knoten erneut die Suche nach einem Cluster, wobei bereits vorhandene Informationen über andere Cluster in der Nachbarschaft genutzt
werden können. Dabei ist es möglich, dass ein Cluster mit vielen Mitgliedern in mehrere
Cluster zerfällt, oder dass alle Teilnehmer sich vorhandenen Clustern anschließen und
somit kein neuer Cluster entsteht. Der Ausgang einer Clusterauflösung ist in der Regel
unbestimmt; für das erfolgreiche Durchführen des hier entwickelten Protokolls ist dies
unerheblich.
Für einen benachbarten Cluster ist die Situation ähnlich. Es existieren mehrere Möglichkeiten für einen CH festzustellen, dass ein benachbarter CH ausgefallen ist und für
die Verarbeitung von Daten nicht mehr zur Verfügung steht. Jeder CH sendet an die ihm
bekannten Cluster in regelmäßigen Intervallen tcluster Cluster Infopakete. Ein CH kann
anhand des Alters des letzten Cluster Infopaketes entscheiden ob er annehmen soll, dass
der Cluster ausgefallen ist. Zumindest sollte an einen Cluster, dessen Intervall abgelaufen
ist, kein Datenpaket mehr versendet werden. Eine andere Möglichkeit, den Ausfall eines
benachbarten Clusters festzustellen, ist über die Beacon Signale der einzelnen Knoten gegeben. Wenn ein Mitglied des nun ausgefallenen Clusters in Reichweite des CH liegt, kann
die Veränderung im Beacon Signal registriert werden, denn es ändert sich die in diesem
3 Verfahren zur redundanten und distributiven Datenverarbeitung
71
Paket enthaltene Cluster ID des Knotens. Dazu muss natürlich das Mitglied bereits selbst
festgestellt haben, dass sein CH ausgefallen ist. Oder der CH empfängt ein Infopaket eines
Mitgliedes seines Clusters, in dem der ausgefallene Cluster nicht mehr enthalten ist. In
diesem Fall kann der CH diesen Cluster aus seinen Verwaltungsstrukturen entfernen.
3.7 Die Basisstation
Die Basisstation ist die Senke in einem Sensornetz. Es kann nur eine im gesamten Netzwerk existieren. Alle von den Sensorknoten ermittelten Daten müssen, früher oder später,
an der Basisstation ankommen, um entweder an den Benutzer über ein anderes Netz weitergeleitet, oder auf dieser gespeichert zu werden. Da die Basisstation eine Sonderrolle
in einem Sensornetzwerk einnimmt, kann davon ausgegangen werden, dass sie über leistungsfähigere Hardwarekomponenten verfügt als ein Sensorknoten. In den meisten Fällen
wird sie über eine unterbrechungsfreie (permanente) Energieversorgung verfügen. Der
Protokollablauf für eine Basisstation ist in Bild 34 dargestellt.
Die Basisstation besitzt eine eigene eindeutige Nummer, die Null, zur Identifikation.
Sie sendet, wie alle anderen Sensorknoten auch, regelmäßige Beacon Signale aus, um eine
Verbindung mit dem Netz herzustellen. Sie kommuniziert über eine bestätigte, verbindungslose Verbindung mit dem CH des Clusters, in dessen Reichweite sie liegt. Nach
Initialisierung der Verbindung empfängt die Basisstation die Datenpakete des gesamten
Netzes.
3.7.1 Der Request
Wenn eine Basisstation feststellt, dass Daten fehlen, sendet sie einen Request an den
CH ihres Clusters. Aus Effizienzgründen kann sich ein Request auf mehrere Datenpakete
beziehen. Die fehlenden Daten werden in Form des Paritätsblockes vom betroffenen Sensorknoten an die Basisstation gesendet. Dabei brauchen die fehlenden Daten, die nach
einem Request an der Basisstation ankommen, nicht bestätigt zu werden. Neben einer
überflüssigen Kommunikation ist dies auch deshalb unnötig, da die Paritätsblöcke durch
den zyklischen Buffer auf dem Knoten überschrieben werden.
Das Request-Paket
Ein Request-Paket wird von einer Basisstation an einen CH gesendet. Es beinhaltet Informationen über fehlende Datensätze und eine laufende Nummer. Ein CH wertet die
Informationen in einem Request aus und sendet diesen gegebenenfalls an einen seiner
Knoten. Dieser Knoten wird Datenpakete an den CH senden, in dem der angeforderte
Paritätsblock enthalten ist.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
72
Einschalten
Am
Clusterhead
angemeldet
?
JA
NEIN
Beacon senden
Kontakt mit
Clusterhead?
JA
Daten
empfangen
Am Clusterhead
anmelden
Auswerten/
Weiterleiten
Bild 34: Funktioneller Protokollablauf der Basisstation
NEIN
3 Verfahren zur redundanten und distributiven Datenverarbeitung
73
Sollte der Request auch Knoten betreffen, die nicht Mitglied des Clusters sind, wird der
Request an alle bekannten Cluster gesendet, nachdem die Einträge über eigene Knoten
entfernt wurden. Ein sogenanntes Flooding28 wird durch den Indexzähler vermieden, da
anhand dieser Nummer festgestellt werden kann, ob dieser Request schon weitergeleitet
wurde, oder ob es sich um eine neue Anfrage handelt.
In Bild 35 bis Bild 38 ab Seite 74 ist dieser Vorgang dargestellt. Die Basisstation stellt
fest, dass mindestens ein Datenpaket nicht vollständig ist und sendet ein Request-Paket
an den CH ihres Clusters. Der CH untersucht das Request-Paket doch dies enthält keine
Anfragen an seinen Cluster. Der CH sendet den Request an die ihm bekannten Cluster 4
und 9 (Bild 36).
Knoten 9 identifiziert den Request als eine Anfrage an den zu seinem Cluster gehörenden Knoten 10 und leitet die Anfrage an diesen weiter (Bild 37). Knoten 10 antwortet mit
dem passenden Paritätsblock, der auf gleichem Wege an die Basisstation gesendet wird.
3.7.2 Ausfall der Basisstation
Fällt die Basisstation aus, bricht die verbindungslose, bestätigte Verbindung mit dem
CH zusammen. Der CH kann nun die Datenpakete, die nicht mehr auf der Basisstation
gespeichert wurden, in seinem Cluster verteilen. Sensorknoten, die ihre Datenpakete aufgrund der unmittelbaren Nachbarschaft der Basisstation direkt an diese gesendet haben,
werden die Datenpakete nun wieder an ihren CH senden.
3.7.3 Hinzufügen einer Basisstation
Nach einem Ausfall kann zu einem beliebigen Zeitpunkt an einem beliebigen Ort des
Netzwerkes eine neue Basisstation integriert werden. Das Protokoll bietet zum jetzigen
Zeitpunkt keinerlei Funktionen, die eine Authentifizierung der Basisstation gegenüber
dem Netzwerk ermöglichen. Dass Sicherheitsaspekte und Zuverlässigkeit in drahtlosen
Sensornetzen in absehbarer Zeit eine größere Rolle spielen werden zeigen [Wei04], [KW03]
und [PMJ03]. Sobald ein Sensorknoten in Reichweite der Basisstation das Beacon Signal
empfängt, ändert er entsprechend sein eigenes Beacon Signal. Um das Hinzufügen einer
Basisstation zu beschleunigen, horcht die Basis nach dem Einschalten wie jeder Sensorknoten für die Zeit tbeacon auf Beacon Signale anderer Knoten. Wird ein Knoten oder ein
CH entdeckt, sendet die Basisstation in der Empfangsphase des Sensorknotens ihr Beacon
Signal. Ein CH wird anschließend eine Verbindung zu der Basisstation aufnehmen und
dies über das nächste Cluster Infopaket den anderen Clustern mitteilen.
28
Flooding bezeichnet einen Vorgang, bei dem ein Netzwerk mit einem bestimmten Paket überschwemmt
wird. Dies passiert, wenn das Paket immer wieder weitergeleitet wird.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
74
5
7
6
0
Request
1
8
5
14
2
4
9
3
12
13
4
11
9
10
Bild 35: Basisstation sendet Request
5
7
6
0
1
8
5
2
Request
14
Request
4
9
3
12
4
13
9
11
10
Bild 36: Broadcast des Requests
3 Verfahren zur redundanten und distributiven Datenverarbeitung
5
7
6
75
0
1
8
5
14
2
4
9
3
12
Request
13
4
11
9
10
Bild 37: Weiterleiten des Requests an den Sensorknoten
5
7
6
0
Datenpaket
1
8
5
Datenpaket
14
2
4
9
3
12
Datenpaket
4
13
9
11
10
Bild 38: Datenpaket an die Basisstation
3 Verfahren zur redundanten und distributiven Datenverarbeitung
76
3.8 Proaktives Routingverfahren
Jeder Knoten in einem Sensornetz muss die Funktionalität eines Routers besitzen, um
bei Ausfällen einzelner Knoten neue Pfade zum Zielknoten bilden zu können. Da für die
Kommunikation untereinander bereits Tabellen für die einzelnen Beacon-Zeitpunkte verwaltet werden müssen, liegt es nahe, diese ebenfalls für das Routingverfahren zu nutzen.
Das hier vorgestellte Routingverfahren ist ein proaktives Verfahren, das mehrere Tabellen
zur Verwaltung der Pfadinformationen nutzt. Jedoch werden keine speziellen Pakete zur
Aktualisierung und Verwaltung benötigt, da dies von Beacon-Paketen, Infopaketen und
Cluster Infopaketen bereits durchgeführt wird. Dies hat zur Folge, dass keine zusätzliche
Kommunikation zur Ermittlung und Verwaltung neuer Pfade durchgeführt werden muss,
wie bei einigen in Unterabschnitt 2.3.1 (Seite 39) vorgestellten Verfahren. Weiterhin wird
nicht die komplette Route im voraus berechnet, sondern jeder Knoten prüft nach Erhalt des Datenpaketes seine Tabellen und ermittelt die nächste Station. Dadurch steigt
die Robustheit des Protokolls gegenüber einzelnen Ausfällen von Sensorknoten, da jeder
Knoten in der Lage ist Alternativrouten zu bilden.
3.8.1 Routing innerhalb des Clusters
Ein Sensorknoten benötigt nur die eindeutige Knoten ID, um Pakete innerhalb seines
Clusters versenden zu können. Soll ein Paket an einen Knoten gesendet werden, der sich
nicht in direktem Kontakt befindet, wird das Paket an seinen Parentknoten29 gesendet.
Mit Parentknoten wird derjenige Knoten bezeichnet, über den ein Sensorknoten Kontakt
zu seinem Clusterhead hergestellt hat. Somit kann ein Clusterhead Parentknoten eines
oder mehrerer Sensorknoten sein, selbst aber keinen Parentknoten besitzen. In Bild 24
auf Seite 53 ist Knoten 12 der Parentknoten von Knoten 13 und Knoten 9 ist nicht nur
Clusterhead, sondern auch Parentknoten von Knoten 10, 11, 12 und 14. Sollte der Parentknoten ebenfalls keinen Kontakt zu dem Zielknoten herstellen können, wird das Paket an
den nächsten Parentknoten gesendet. Dieses Vorgehen wird solange wiederholt, bis entweder ein Parentknoten in direktem Kontakt zum Zielknoten steht oder der Clusterhead
erreicht wird. Spätestens der Clusterhead wird das Paket an den Zielknoten weiterleiten
können, da er Informationen über jeden seiner Clustermitglieder besitzt.
3.8.2 Cluster zu Cluster Routing
Ein Paket muss nur zu einem anderen Cluster geleitet werden, wenn Daten zu einer
Basisstation gesendet werden müssen, oder Daten zwecks Speicherung in einen anderen
29
Vom englischen Parent abgeleitet. Leider existiert im Deutschen nur der Begriff Elternteil. Übersetzt
werden könnte dieser Begriff daher eher mit Muttter- oder Vaterknoten.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
77
Cluster versandt werden. In jedem Fall ist der Zielcluster bekannt, so dass zuerst überprüft
werden kann, ob zu diesem Cluster ein direkter Kontakt besteht. So kann ein Paket, ohne
den Umweg über den CH, direkt in einen Nachbarcluster gesendet werden. Ist kein direkter
Kontakt möglich, wird, analog zum oben beschriebenen Routing innerhalb eines Clusters,
das Paket zum Parentknoten gesendet. Auch hier wird spätestens der CH das Paket an
den Zielknoten weiterleiten können.
3.8.3 Leistungscharakteristik und Beschreibung des Verfahrens
Die Pfadlänge einer Verbindung zwischen zwei Knoten ist abhängig von der Clusteranzahl
im Netzwerk. Die Clusteranzahl ist wiederum abhängig von der Netzdichte, der Reichweite
des verwendeten Übertragungssystems und der zulässigen Netzwerktiefe. Da das Netzwerk
hierarchisch in drei Ebenen eingeteilt wird, hat auch das verwendete Routingverfahren
hierarchischen Charakter. Es ist daher vergleichbar mit dem hierarchischen Routing, wie
es in kabelgebundenen Netzen verwendet wird.
Analog zu [Tan02] kann angenommen werden, dass für ein Netz mit N Knoten die
optimale Anzahl Cluster bei ln (N ) liegt und jeder Knoten e ln (N ) Einträge in der Routingtabelle benötigt. Da im Vorfeld allerdings nicht bekannt ist, wieviele Knoten in einem
Sensornetz vorhanden sind, wird die Anzahl gebildeter Cluster in der Regel nicht optimal
(6= ln (N )) sein.
Unter der Annahme, dass Knoten 14 in Bild 24 (Seite 53) nur die drei direkten Nachbarn
8, 9 und 12 besitzt, soll die Routingtabelle (Tabelle 1) für Knoten 14 erstellt werden, die
identisch ist mit der Beacontabelle, die von jedem Sensorknoten zur Kommunikation
genutzt wird.
In dieser Tabelle ist in der ersten Zeile der Parentknoten eingetragen. Die Altersangabe
besagt, dass dieser Knoten vor kurzem noch aktiv war und in 28 Zeiteinheiten30 ein
nächstes Beacon Signal erwartet wird. Analog gilt dies für die beiden Nachbarknoten 8
30
Zum besseren Verständnis hier ohne Einheit angegeben. Aus den Einträgen der Tabelle kann auch
der Wert für tbeacon erkannt werden, in dem die Werte Alter“ und nächstes Beacon-Paket“ addiert
”
”
werden. In diesem Fall ergibt dies 33.
Tabelle 1: Beacontabelle für Knoten 14
Knoten ID Cluster ID Alter nächstes Beacon-Paket
9
8
12
9
5
9
5
9
2
28
22
31
3 Verfahren zur redundanten und distributiven Datenverarbeitung
78
und 12. Wenn Knoten 14 ein Paket zu Knoten 8, 9 oder 12 senden soll, kann dies sofort
durchgeführt werden, da diese Knoten Einträge in der Tabelle aufweisen. Alle anderen
Zielknoten müssen über den Parentknoten gesendet werden, der in diesem Fall auch dem
Clusterhead entspricht.
Für den CH kann ebenfalls eine Tabelle erstellt werden. Wie Tabelle 2 zeigt, besitzt
Knoten 9 nur Kontakt zu den Knoten aus seinem eigenen Cluster. Da Knoten 9 der CH
eines Clusters ist, wird in die erste Zeile kein Eintrag vorgenommen, da kein Parentknoten
existiert.
Tabelle 2: Beacontabelle für Knoten 9
Knoten ID Cluster ID Alter nächstes Beacon-Paket
10
11
12
14
9
9
9
9
10
2
23
9
23
31
10
22
Knoten 9 verwaltet als CH noch weitere Tabellen: eine Tabelle über die Cluster Mitglieder (Tabelle 3, Seite 79) und eine Tabelle über die ihm bekannten Cluster (Tabelle 4.
Seite 81). Diese zwei Tabellen, die jeder CH führt, ermöglichen das erfolgreiche Routen
von Paketen, auch in andere Cluster. Durch die Einträge in Tabelle 3 kann der CH ermitteln, an welchen Sensorknoten er ein Paket senden muss, um entweder einen anderen
Sensorknoten oder einen anderen Cluster zu erreichen.
So sieht das Protokoll vor, dass ein CH im Abstand von tcluster ein Cluster Infopaket
an die Nachbarcluster sendet. Cluster 9 besitzt zwei Cluster in seiner Nachbarschaft:
Cluster 4 und 5. Durch Auswertung der jeweiligen Tabelle wird ermittelt, dass die Cluster
Infopakete an Knoten 10 und 14 gesendet werden. Da in dem entwickelten Protokoll keine
Situation entsteht31 , in der ein Paket zu einem unbekannten Cluster geleitet werden soll,
bedarf es in Tabelle 4 keine Einträge von Nachbarclustern der einzelnen Cluster. Pakete
werden grundsätzlich nur zu bekannten Clustern gesendet. Sollte eine Basisstation in
Cluster 5 angemeldet sein, wird dies durch ein Cluster Infopaket vom Knoten 5 an die
Clusterheads 4 und 9 den Nachbarclustern mitgeteilt. Da die Entfernung zur Basisstation,
der Hop-Count, über die Beacon-Pakete den Nachbarknoten mitgeteilt wird, kann diese
31
Es werden von den einzelnen Clusterheads immer nur zu den ihnen bekannten Clustern, und von
einzelnen Sensorknoten nur zu ihren direkten Nachbarn Pakete gesendet.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
79
Information später in die Clustertabelle eingetragen werden. So ist es möglich, dass Pakete
in Richtung Basisstation geleitet werden, ohne dass ein direkter Kontakt besteht.
Zusammenfassend lässt sich sagen, dass für dieses Routingverfahren kein Kommunikationsmehraufwand entsteht, da lediglich diejenigen Tabellen benötigt werden, die bereits
durch andere Mechanismen erstellt und aktualisiert wurden bzw. werden. Daraus ergibt
sich abschliessend das Flussdiagramm in Bild 39 (Seite 80).
3.9 Zusammenfassung
Das entwickelte Protokoll benötigt zur Steuerung seines Aufbaues und der Verwaltung
des Sensornetzes eine gewisse Zahl von Kontrollpaketen. Dabei kann zwischen Kontrollpaketen, die Kontrollinformationen beinhalten, und Signalpaketen, die für ihre Funktion
keine Zusatzinformation benötigen, unterschieden werden. Bis auf das Beacon-Paket, das
über einen Broadcast gesendet wird, werden alle anderen Pakete über einen verbindungslosen, bestätigten Dienst versendet. Im folgenden Abschnitt wird abschliessend jedes der
Pakete und seine Funktion kurz zusammengefasst und weiterhin in Bild 40 (siehe Seite
83) die realisierten Protokollschichten schematisch dargestellt.
3.9.1 Kontrollpakete
Das Beacon-Paket
Das Beacon-Paket wird im Intervall von tbeacon von allen Sensorknoten, unabhängig von
ihrer Funktion im Netzwerk, ausgesendet. Es enthält neben der eindeutigen Knoten ID
und der Cluster ID (falls vergeben) auch die Entfernung zur Basisstation (die Entfernung
wird in Hop-Counts angegeben).
Tabelle 3: Cluster Mitglieder von Knoten 9
Knoten ID Alter Parent bekannte Cluster
10
11
12
13
14
20
2
35
62
45
9
9
9
12
9
4
5
3 Verfahren zur redundanten und distributiven Datenverarbeitung
80
Start
NEIN
Ziel ist
Nachbar?
JA
NEIN
Ist Ziel in
Cluster?
JA
An Parent/
Clusterhead
leiten
NEIN
Kontakt zu
Zielcluster?
JA
An Parent/
Clusterhead
leiten
Direkt an
Zielcluster
leiten
Bild 39: Flussdiagramm des Routingverfahrens
An Nachbar
leiten
3 Verfahren zur redundanten und distributiven Datenverarbeitung
81
Tabelle 4: Bekannte Cluster von Knoten 9
Cluster ID Alter Kapazität Ent. Basisstation
5
4
35
9
251
159
0
1
Das Infopaket
Das Infopaket wird von einem Sensorknoten im Abstand von tinf o an den CH seines
Clusters gesendet. Es enthält neben der aktuellen Speicherkapazität die Knoten ID seiner
Nachbarknoten und die Cluster IDs der eventuell vorhandenen Nachbarcluster.
Das Cluster-Infopaket
Das Cluster-Infopaket wird im Abstand von tcluster von einem CH an die Clusterheads
seiner Nachbarcluster verschickt. Es enthält die Speicherkapazität des Clusters und die
Entfernung zur Basisstation. Die Entfernung wird wieder in Hop-Counts angegeben. Der
Cluster, in dem die Basisstation angemeldet ist, meldet eine Entfernung von null, während
die Nachbarcluster eine Entfernung von eins melden.
Das Store-Accept-Paket
Dieses Paket signalisiert einem CH, dass ein Datenpaket in einem anderen Cluster gespeichert wurde. Mit Erhalt dieses Paketes kann ein CH das betreffende Datenpaket aus
seinem Speicher entfernen. Es enthält die Knoten ID des Datenpaketursprungs und den
Zeitstempel, um eine eindeutige Zuordnung zu ermöglichen. Zusätzlich enthält es die nun
aktuelle Speicherkapazität des Clusters.
Das Request-Paket
Das Request-Paket wird von der Basisstation ausgehend an alle CH des Sensornetzes
geleitet. Es enthält die Knoten ID und die Zeitstempel der Daten, die bei der Basisstation
noch nicht vollständig vorliegen.
Das Datenpaket
Das eigentliche Datenpaket enthält neben den Daten auch eine Identifikation zur Unterscheidung von Daten, Datenteilen und Paritätsblöcken. Weiterhin ist ein Zeitstempel und
die ID des Knotens enthalten, der die Daten erzeugt hat.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
82
3.9.2 Signalpakete
Das Join-Request-Paket
Das Join-Request-Paket ist ein Paket ohne zusätzliche Informationen. Ein Sensorknoten
sendet dieses Paket an einen CH, um Mitglied des Clusters zu werden.
Das Join-Accept-Paket
Das Join-Accept-Paket wird nur im Anschluss eines Join-Request-Paketes verschickt. Der
Empfang eines solchen Paketes signalisiert dem Empfänger, dass sein Versuch einem Cluster beizutreten, erfolgreich ist.
Das Join-Denied-Paket
Das Join-Denied-Paket wird nur im Anschluss eines Join-Request-Paketes verschickt. Der
Empfang eines solchen Paketes signalisiert dem Empfänger, dass sein Versuch einem Cluster beizutreten, nicht erfolgreich ist. Der Sensorknoten muss nun versuchen, einem anderen
Cluster beizutreten.
Das Store-Denied-Paket
Dieses Paket signalisiert einem CH, dass sein Versuch, Daten in einem anderen Cluster zu
speichern, fehlgeschlagen ist. Dieses hat zur Folge, dass das Datenpaket in einem anderen
Cluster gespeichert werden muss. Zusätzlich wird dem Empfänger durch dieses Paket
mitgeteilt, dass die Speicherkapazität des Senders erschöpft ist.
3 Verfahren zur redundanten und distributiven Datenverarbeitung
Transportschicht
Vermittlungsschicht
unbestätigter,
verbindungsloser Dienst
Hardware
abhängig
{
bestätigter,
verbindungsloser Dienst
Sicherungsschicht
Mediumzugriff
Bitübertragungsschicht
Die hardwareabhängigen Schichten werden bei der Realisierung der Simulationssoftware
berücksichtigt.
Bild 40: Schichtenmodell des entwickelten Protokolls
83
4 Realisierung des Netzwerk Simulators
84
4 Realisierung des Netzwerk Simulators
Protokolle und die dazugehörigen Abläufe werden in der Regel, bevor sie auf einer Hardware implementiert werden, mittels eines Softwaresimulators getestet. Der Vorteil liegt
in der einfacheren Fehlersuche und in der besseren Darstellung der jeweiligen gemessenen
Ergebnisse. Ein Standardprogramm für derartige Netzwerksimulationen ist ns2“ (Net”
work Simulator 2,[Sim]). Mit Hilfe dieses Programmes können verschiedene und beliebig
komplexe Netzwerke aufgebaut und simuliert werden. Über eine eigene Skriptsprache,
die auf der Sprache Tcl/Tk [Tcl] basiert, können die Simulationen gesteuert werden.
Das gut dokumentierte Open-Source Projekt kann durch Hinzufügen eigener Klassen in
der Sprache C++ um zusätzliche Netzwerkelemente wie Knoten, Protokolle oder Übertragungsmedien erweitert werden. In seiner aktuellen Version unterstützt der ns2“ von
”
einfachen PC Netzwerken über Satelliten Netzen bis hin zu drahtlosen Technologien wie
GSM oder IEEE 802.11 Wireless LAN fast jedes aktuell nutzbare System. Allerdings
war bis zum Zeitpunkt dieser Arbeit die Unterstützung für drahtlose Technologien nicht
so weit fortgeschritten wie die der kabelgebundenen. So ist beispielsweise die Visualisierung einer Simulation gar nicht oder nur eingeschränkt möglich, und das Hinzufügen von
drahtlosen Technologien ist in der Praxis nicht so realisiert wie in [FV03] beschrieben.
Die Visualisierung von Ereignissen bei der Simulation wird von Heidemann u.a. [HBE01]
aber als ein wichtiges Diagnosewerkzeug angesehen und eine einfachere Handhabung des
Simulators wäre wünschenswert.
Dies führte im Rahmen dieser Arbeit zu der Entwicklung eines neuen Simulators, um
die Leistungsfähigkeit des Protokolls bezüglich der Vermeidung von Datenverlusten zu
testen. Dieser ist in der Lage, ein Netz aus bis zu hundert gleicher Knoten zu simulieren, die nach dem in Abschnitt 3 (siehe Seite 52) beschriebenen Verfahren arbeiten. Die
ermittelten Simulationsdaten werden, neben einer grafischen Darstellung, auch als Text
ausgegeben. Der Simulator kann in zwei Betriebsarten verwendet werden: in der ersten
führt die Software eine bestimmte Anzahl von Simulationsschritten durch und aktualisiert nach Ablauf die Ausgaben. Bei dem zweiten Betriebsmodus läuft die Simulation
solange, bis der Benutzer sie beendet. Dabei werden nach jedem durchgeführten Schritt
die Ausgaben aktualisiert. So lässt sich die Simulation zur Laufzeit betrachten.
4.1 Der Aufbau
Der Simulator besteht aus zwei Elementen: der Bedienoberfläche und dem Simulationscontainer, in dem das Sensornetz simuliert wird. Über die Bedienoberfläche kann die
grafische Darstellung verändert, die Simulation gestartet, beendet oder unterbrochen und
aktuelle Daten in ein Textfenster geschrieben werden. Um einen zeitlichen Bezug in-
4 Realisierung des Netzwerk Simulators
85
nerhalb der Simulation zu ermöglichen, wurde als Zeitschritt der Tick eingeführt. Jeder
Schritt in der Simulation entspricht einem Tick. Vor dem Start einer Simulation müssen
noch einige Parameter festgelegt werden:
Knotenanzahl
Die Knotenanzahl bestimmt die Größe des Sensornetzes. Eine größere Anzahl Knoten
ergibt ein dichteres Netz. Innerhalb der Simulation werden die Knoten zufällig auf ein
50×50 Einheiten umfassendes Gitternetz gesetzt. Bei einer geringen Knotenanzahl ergibt
sich die Möglichkeit von verwaisten Knoten“, also Knoten ohne Verbindung zum Netz.
”
Funkreichweite
Die Funkreichweite bestimmt, in welcher Entfernung Signale von einzelnen Knoten noch
empfangen werden können. Wird diese zu groß gewählt, entsteht unter Umständen ein
Netzwerk, bei dem jeder Knoten zu jedem anderen direkten Kontakt hat, also kein Multihop nötig ist.
Übertragungsrate
Die Übertragungsrate bestimmt, wie viele Bytes an Informationen innerhalb eines Ticks
vom Sender zu einem Empfänger gelangen.
Sensoranzahl
Nicht jeder Knoten in einem Sensornetz muss notwendigerweise Daten sammeln. Es können auch Knoten vorhanden sein, die Datenpakete lediglich weiterleiten, aber selbst keine
Datenpakete erzeugen. Eine solche Situation kann entstehen, wenn ein Ereignis, das lokal
begrenzt ist, detektiert wird. Sensorknoten, die dieses Ereignis detektieren, erzeugen die
Datenpakete. Die Knoten, die ausserhalb der Reichweite dieses Ereignisses sind, besitzen
nur weiterleitende Funktion. Das Verhältnis zwischen datenerzeugenden und weiterleitenden Knoten kann über diesen Parameter direkt beeinflusst werden.
Sensordaten Intervall
Über diesen Parameter lässt sich das Intervall steuern, in dem Sensoren Daten erzeugen.
Für die Simulation wird davon ausgegangen, dass die Daten in bestimmen festgelegten
Intervallen erzeugt werden. Dies ist beispielsweise bei der Erzeugung eines Temperaturprofiles der Fall. Dieser Parameter bestimmt somit das Datenaufkommen im Netzwerk.
4 Realisierung des Netzwerk Simulators
86
Ablauf
Die Software simuliert ein ideales Übertragungsmedium. Für die Reichweitenberechnung
der elektromagnetischen Wellen wird angenommen, dass sich diese kreisförmig und somit
zweidimensional ausbreiten. Weiterhin ist die Ausbreitung der Wellen nicht von Reflektionen gestört, und das Feld ist in allen Punkten innerhalb der Reichweite gleich stark,
es nimmt also nicht mit zunehmender Entfernung vom Sender ab. Diese Einschränkung
kann in Kauf genommen werden, da das Protokoll keine Messung der Feldstärke benötigt
und nur die Funktionalität nachgewiesen werden soll. Protokolle, die die Feldstärke als
Informationsquelle nutzen, lassen sich mit diesem einfachen Modell daher nicht simulieren.
Damit lässt sich mit einer einfachen Kreisungleichung bestimmen, ob ein Knoten in
Reichweite eines Senders liegt:
(x − x1 )2 + (y − y2 )2 ≤ r2
(11)
wobei x, y die Koordinaten des Senders, und x1 , y2 die Koordinaten des möglichen Empfängers darstellen. Diese Koordinaten sind dem Simulator bekannt, nicht aber den jeweiligen Sensorknoten.
Im ersten Schritt der Simulation werden die einzelnen Sensorknoten zufällig auf dem
Gitternetz platziert. Jeder Knoten erhält bei diesem Vorgang eine eindeutige Knoten
ID, die als einfacher Zähler (beginnend bei eins) realisiert ist. Nach dem Platzieren der
Sensorknoten startet die Simulation. Um eine manuelle Inbetriebnahme des Netzes zu
simulieren, werden die Knoten nacheinander aktiviert. Die Reihenfolge der Aktivierung
wird durch die Knoten ID bestimmt. Durch die zufällige Verteilung auf dem Gitternetz
ist die Wahrscheinlichkeit, dass sich zwei aufeinander folgende Knoten in direkter Nachbarschaft befinden, gering. Somit werden Knoten nach und nach über das gesamte Netz
verteilt aktiviert. Direkt nach der Aktivierung beginnt der simulierte Sensorknoten mit
dem Protokollablauf.
In jedem Simulationsschritt wird das aktuelle Szenario von den simulierten Knoten
geprüft und dem Netzwerkprotokoll entsprechend der weitere Ablauf gesteuert. Nach
Überprüfung der Situation für den letzten Sensorknoten wird die Simulationszeit inkrementiert.
Datenvisualisierung
Das Bildschirmfoto in Bild 41 zeigt ein Sensornetz mit sechs Clustern, die eine unterschiedliche Knotenanzahl aufweisen. Sensorknoten sind als Kreise gezeichnet, in deren
Mitte die Knoten ID dargestellt ist. Unterhalb der Sensorknoten ist die Cluster ID darge-
4 Realisierung des Netzwerk Simulators
87
Visuelle
Darstellung
Kontrollelemente
Bild 41: Bildschirmfoto des entwickelten Simulators
stellt, sofern diese bereits festgelegt wurde. Bestehende Verbindungen zwischen Knoten
auf der Transport- und Vermittlungsschicht32 werden durch Linien dargestellt. Dies sind
die Verbindungen, die zwischen den Sensorknoten und den Clusterheads bestehen. Falls
erforderlich, lässt sich die Darstellung vergrößern oder verkleinern und die Sende- bzw.
Empfangsreichweite der einzelnen Knoten ein- und ausblenden. Einzelne Funktionen der
Knoten sind farbkodiert. So werden Knoten, die weder senden noch empfangen (Energiesparmodus) schwarz gezeichnet. Sendende Knoten werden gelb und empfangende Knoten
werden rot dargestellt. Die Software zeichnet ausgeschaltete Knoten in hellgrau und Knoten, die auf bestimmte Aktionen ihrer Nachbarknoten warten, werden blau dargestellt.
Zusätzlich werden Knoten, die Datenpakete erstellen mit einem dickeren Kreis umgeben.
Zu dieser grafischen Darstellung erstellt die Software noch einen Informationstext, der
statistische Informationen beinhaltet. Dies ist exemplarisch in Bild 42 dargestellt. Der
beschriebene Knoten speicherte bis zu dem Zeitpunkt der Ausgabe zwei Pakete anderer
Knoten (Knoten 1) und erwartet zu diesem Zeitpunkt weitere Pakete. Weiterhin können
statistische Daten, wie die Lebensdauer oder die Anzahl der empfangenen Bytes abgelesen
werden.
32
Dies entspricht den logischen Verbindungen.
4 Realisierung des Netzwerk Simulators
88
Statistics for node 4, cluster 1 with parent 1 (hopcount: 1)
Lifetime 34298, Radio Status: Receive
Time radio was RX: 14827
TX: 43
Total bytes RX: 9084
TX: 3899
Current MacLayer Action: receiving
Time2beacon 102, time2mediator 367, mediatorDuration 35
Current NetLayer Action: Cluster Member
Number of packets in NetworkLayer RX Queue: 0
Number of packets in NetworkLayer TX Queue: 0
Number of packets in MacLayer RX Queue: 0
Number of packets in MacLayer TX Queue: 0
Node has 2 packets in remote store
0: From node: 1, type: Remote Data, timestamp: 15000, length: 10
1: From node: 1, type: Remote Data, timestamp: 20000, length: 10
Node has 0 packets in local store
Bild 42: Auszug aus den statistischen Informationen eines Knotens
4.2 Realisierung der unteren Protokollschichten
Das in Abschnitt 3 (siehe Seite 52) beschriebene Protokoll wurde sehr allgemein formuliert, um die Unabhängigkeit von einer möglichen Hardwareplattform zu gewährleisten.
Denn die unteren Protokollschichten sind abhängig von dem genutzten Funkstandard und
somit auch von der verwendeten Hardware.
Der entwickelte Simulator muss allerdings, um die Verhältnisse innerhalb eines Netzwerkes darstellen zu können, die unteren Schichten teilweise modellieren. Als Basis für
dieses Simulationsmodell dient das Distributed MD Protkoll, das in Unterabschnitt 2.2.10
auf Seite 30 beschrieben wurde. Weiterhin zeichnet sich das Protokoll durch Clusterbildung und die Verwendung von Beacons aus.
Die Bitübertragungsschicht ist diejenige Schicht im ISO-OSI Schichtenmodell, die von
den Eigenschaften der jeweiligen Hardware (Transceiver) abhängig ist. Die Modellierung
eines für das MD Protokoll geeigneten Transceivers liegt allerdings ausserhalb des Rahmens dieser Arbeit, so dass die Bitübertragungsschicht in dem Simulator entfällt und
bereits die Sicherungsschicht die Daten zwischen den einzelnen Knoten überträgt.
Realisierung einer Übertragung
Analog zu dem Gitternetz für die räumliche Verteilung existiert eine Tabelle, die zu jedem
Sensorknoten einen Eintrag besitzt, in dem der Wert, der aktuell übertragen werden soll,
vermerkt wird. Vor jedem Simulationsdurchlauf werden alle Einträge gelöscht. Wenn nun
ein Knoten einen Wert sendet, wird dieser in diese Tabelle eingetragen. Mit Hilfe der
4 Realisierung des Netzwerk Simulators
89
Gleichung 11 (Seite 86) werden alle Knoten in Reichweite des Senders ermittelt und der
Wert ebenfalls in die entsprechenden Einträge geschrieben. Ein von den Knoten ebenfalls
durchgeführter carrier sense“ testet diesen Eintrag. Entspricht dieser Eintrag dem Wert
”
null, dann wird das Medium als frei erkannt.
Das oben beschriebene Vorgehen kann nur erfolgreich sein, wenn die zu sendenden
Pakete in kleine Einheiten eingeteilt und übertragen werden33 . Diese Einheiten müssen
von der logischen Funktion der einzelnen Pakete unabhängig sein, da die unteren Protokollschichten die Daten der oberen Schichten nicht auf ihre Funktion überprüfen. Eine
einfach zu handhabende Größe ist das Byte. Bevor ein Paket, das je nach Funktion einer
unterschiedlichen Datenstruktur entspricht, von der Sicherungsschicht verarbeitetet werden kann, muss es in einen Datenstrom umgewandelt werden, der aus einer bestimmten
Anzahl Bytes besteht. Diese Bytes werden nun nacheinander mit Hilfe der Tabelle gesen”
det“. Knoten, die Daten empfangen, müssen den Datenstrom wieder in eine entsprechende
Datenstruktur umwandeln, die im Anschluss an die höheren Schichten weitergeleitet wird.
Realisierung eines unbestätigten, verbindungslosen Dienstes
Die Realisierung eines unbestätigten, verbindungslosen Dienstes ist eine der Anforderungen, die an die Sicherungsschicht gestellt werden, um das entwickelte Protokoll einsetzen zu können. Dieser Dienst ist als Funktionsaufruf implementiert, der von den oberen
Schichten genutzt werden kann. Da keine Bestätigung des Empfangs verlangt wird, können die einzelnen Bytes nacheinander gesendet werden.
Realisierung eines bestätigten, verbindungslosen Dienstes
Ein bestätigter, verbindungsloser Dienst sendet direkt nach dem Empfang eines Paketes
eine Bestätigung, dass der Empfang erfolgreich war. Bleibt diese Bestätigung aus, wird
das Paket vom Sender erneut gesendet. Üblicherweise erfolgt die Wiederholung solange,
bis entweder das Senden erfolgreich war, oder die Anzahl der zulässigen Versuche erreicht
wird. Eine andere Möglichkeit besteht darin, den Paketen einen Zeitwert beizufügen, den
sogenannten Time-To-Life“ (TTL) Wert. Liegt der TTL Wert bezüglich der aktuellen
”
Zeit des Knotens in der Vergangenheit, wird das Paket verworfen. Wenn ein Paket verworfen oder nicht erfolgreich zugestellt werden konnte, wird dies der aufrufenden Schicht
signalisiert, damit diese auf den Fehler reagieren kann. Hier wurde, um die Paketverwaltung nicht unnötig aufwendig zu gestalten, die Anzahl der zulässigen Versuche auf drei
beschränkt.
33
Dies ist auch bei aktueller Hardware der Fall. Die Daten werden byteweise zum Transceiver gesendet,
der dann die weitere Übertragung durchführt.
4 Realisierung des Netzwerk Simulators
90
Das erfolgreiche Senden eines Paketes wird überprüft, in dem senderseitig eine Prüfsumme über das gesamte Paket gebildet wird. Diese wird im Anschluss an das Paket gesendet.
Der Empfänger bildet über die empfangenen Daten nach dem Schema des Senders eine
Prüfsumme. Ist diese identisch mit der gesendeten, ist das Paket fehlerfrei übertragen
worden und ein ACK-Paket wird zur Bestätigung gesendet. Die Prüfsumme wird hier
durch einfaches Addieren der zu sendenden Daten realisiert. Weitere Möglichkeiten dies
zu realisieren, bestehen in der Bildung von CRC Werten nach bekannten Algorithmen,
beispielsweise CRC-8, CRC-16 oder CRC-32. Nähere Erläuterungen der verschiedenen
Verfahren werden in [Nel91], [Tan02] oder [RG88] gegeben.
5 Simulation
91
5 Simulation
In dem folgenden Kapitel werden die durchgeführten Simulationen beschrieben und ihre Ergebnisse präsentiert. Stellvertretend für alle durchgeführten Simulationen werden
fünfzehn Simulationsläufe betrachtet, an denen anschließend die Ergebnisse diskutiert
werden. Die maximale Größe der Sensornetze bei diesen Simulationen beträgt 30 Teilnehmer. Sensornetze mit einer höheren Anzahl von Teilnehmern zu simulieren ist zwar
möglich, allerdings sind mit den aktuell zur Verfügung stehenden Systemen (beispielsweise [Tin], [Sca]) größere Netze nur noch schwer handhabbar, so dass auf Simulationen
solcher Netze verzichtet wurde.
5.1 Netzaufbau
Von besonderem Interesse ist der Aufbau des Netzes unmittelbar nach dem Einschalten.
Für die Simulation wurden die Startparameter des Simulators so gewählt, dass insgesamt 30 Knoten auf einem 15 × 15 großen zweidimensionalen Gitternetz platziert werden.
Der Abstand der einzelnen Gitterpunkte ist konstant und wird als Gitterkonstante bezeichnet. Alle Reichweiten werden bezogen auf diese Konstante angegeben. Die zulässige
Netzwerktiefe betrug zwei Hops, und die Reichweite der drahtlosen Kommunikation betrug 3, 75 × Gitterkonstante, um eine möglichst große Abdeckung, aber dennoch ein Netz
mit Multihop Charakteristik zu erhalten. Bei den durchgeführten Simulationen wurde die
Zeit gemessen, bis alle Sensorknoten im Sensornetz integriert waren. Zusätzlich wurde ermittelt, wieviele Cluster dabei entstanden. Die Simulationen wurden mit tbeacon = 500
Ticks und tbeacon = 250 Ticks durchgeführt. In den Ergebnistabellen ist zum Vergleich die
benötigte Zeit auch auf tbeacon bezogen.
Aus den Ergebnissen in Tabelle 5 (Seite 92) und Tabelle 6 (Seite 93) kann gefolgert
werden, dass die benötigte Zeit für den Aufbau des Netzes direkt vom Beacon Intervall tbeacon abhängt. Da jeder Knoten mindestens ein Beacon Signal empfangen haben
muss, um Mitglied in einem Cluster werden zu können, entspricht dieses Ergebnis den
Erwartungen.
Werden die Abstände der Beacon Signale verkleinert, wird die Wahrscheinlichkeit, dass
ein Knoten ein Beacon-Paket empfängt und somit mehr Nachbarknoten in kürzerer Zeit
erkennt, erhöht. Auch zu erwarten war, dass die benötigte Zeit, bezogen auf das Beacon
Intervall, mit durchschnittlich 26,64 Intervallen und 31,38 Intervallen leicht ansteigt, da
die Wahrscheinlichkeit einer Kollision durch die Verkürzung des Intervalls erhöht wird
und somit einige Beacon-Pakete durch gegenseitige Störung nicht empfangen werden.
5 Simulation
92
Tabelle 5: Ergebnisse der Simulation des Netzaufbaus mit tbeacon = 500
Simulation Anzahl Benötigte
Nr.
Cluster
Ticks
Benötigte
Beacons
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
5
3
5
5
4
4
3
4
5
3
4
5
5
5
4
11624
10304
15133
14037
13304
13828
13566
12540
11922
13836
14484
12394
13801
14775
14280
23,25
20,61
30,27
28,07
26,61
27,66
27,13
25,08
23,84
27,67
28,97
24,79
27,60
29,55
28,56
Mittelwert
4,27
13321,87
26,64
Wird der arithmetische Mittelwert34 der Anzahl Cluster betrachtet, fällt auf, dass diese mit 4, 27 bzw. 4, 33 über dem optimalen Wert (siehe Unterabschnitt 3.8.3, Seite 77)
von 3, 40 liegt. Dass der optimale Wert nicht erreicht wird, liegt an fehlenden Optimierungsfunktionen im Netzwerkprotokoll, die nachträglich durch gezieltes Auflösen oder
Teilen eines Clusters die Anzahl der Mitglieder in einem Cluster und somit die Anzahl
der Cluster regulieren. Solche Funktionen wären durchaus zu realisieren, allerdings mit
zusätzlichen Overhead für die Verwaltung. Ebenfalls muss die Tatsache beachtet werden,
dass die Mittelwerte auf die nächste ganze Zahl auf- oder abgerundet werden muss, da nur
vollständige Cluster gebildet werden können. Somit ergibt sich eine Differenz von einem
Cluster.
Die Anzahl der Cluster, die vom Protokoll gebildet werden, ist nur über die maximal
zulässige Netzwerktiefe und der maximalen Reichweite der verwendeten drahtlosen Übertragung regulierbar. Da bei den Simulationsdurchläufen selten der Fall auftrat, dass ein
Knoten eine Multihop Verbindung zu seinem CH aufbaute, kann gefolgert werden, dass
die Anzahl gebildeter Cluster zum großen Teil nur von der Funkreichweite abhängt und
die zulässige Netzwerktiefe eine untergeordnete Rolle spielt.
34
Im Folgenden als Mittelwert bezeichnet.
5 Simulation
93
Tabelle 6: Ergebnisse der Simulation des Netzaufbaus mit tbeacon = 250
Simulation Anzahl Benötigte
Nr.
Cluster
Ticks
Benötigte
Beacons
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
5
5
4
3
4
6
3
4
3
5
6
4
3
6
4
7264
8223
7727
7990
7532
7939
7586
8297
8058
7187
8041
7834
8014
7975
7992
29,06
32,89
30,91
31,96
30,13
31,76
30,34
33,19
32,23
28,75
32,16
31,34
32,06
31,90
31,97
Mittelwert
4,33
7843,93
31,38
Um dies zu bestätigen, wurde der erste Simulationsdurchlauf (zulässige Netzwerktiefe
von zwei, tbeacon = 500 Ticks) mit höherer (5 × Gitterkonstante) und niedrigerer (2, 5
× Gitterkonstante) Reichweite wiederholt. Das Ergebnis ist in Tabelle 7 und Tabelle 8
(siehe Seite 94 und Seite 95) dargestellt.
Es ist deutlich zu erkennen, dass die Anzahl der Cluster in großem Maße von der
Funkreichweite der Sensorknoten abhängt. Bei einer Erhöhung der Reichweite um 33%
verringert sich der Mittelwert der Clusteranzahl um eins; analog steigt die Clusteranzahl um eins, wenn die Reichweite um den selben Prozentsatz verringert wird. Auch ein
weiterer Effekt wird beobachtet: steigt die Reichweite, steigt die zur Bildung des Netzes
benötigte Zeit. Daraus folgt, dass die Clusterheads mehr Zeit benötigen, um die gestiegene Anzahl von Anfragen der einzelnen Sensorknoten zu beantworten. Dies ist auch bei der
Verringerung der Reichweite zu beobachten. Die einzelnen Netze sind in deutlich kürzerer
Zeit vollständig gebildet worden, als es vorher der Fall war, dafür aber mit einer höheren
Anzahl von Clustern.
Einen weiteren Überblick über den Aufbau des Sensorsetzes bietet Bild 43 (Seite 96). In
diesem Diagramm ist für 15 Simulationen von Netzen mit 5, 15 und 30 Sensorknoten die
Anzahl der gebildeten Cluster aufgetragen. Zu erkennen ist, dass in der Simulation mit
5 Simulation
94
Tabelle 7: Ergebnisse der Simulation des Netzaufbaus mit einer Reichweite von 5 ×
Gitterkonstante
Simulation Anzahl Benötigte
Nr.
Cluster
Ticks
Benötigte
Beacons
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3
3
4
3
4
3
3
2
2
3
4
2
3
4
3
16225
15205
15935
16480
15860
15385
15980
15060
14890
15125
14935
14695
14855
15170
15265
32,45
30,41
31,87
32,96
31,72
30,77
31,96
30,12
29,78
30,25
29,87
29,39
29,71
30,34
30,53
Mittelwert
3,07
15404,34
30,81
fünf Knoten zwei Fälle existieren, bei denen jeder Knoten einen eigenen Cluster gebildet
hat. Dies ist genau dann der Fall, wenn sich die Knoten nicht in gegenseitiger Reichweite
befinden. Weiterhin zeigt die Grafik, dass auch für eine geringere Anzahl Knoten der Mittelwert der Anzahl der Cluster mit 2, 1 nahe dem von Tanenbaum vorgestellten optimalen
Wert liegt, der für fünf Knoten bei ln(5) = 1, 61 beträgt. Dabei ist wieder zu beachten,
dass diese Werte die Anzahl von Clustern repräsentieren. Da jedoch keine Clusterteile,
sondern nur vollständige Cluster gebildet werden können, müssen diese Werte auf den
nächsten ganzzahligen Wert auf- bzw. abgerundet werden.
Für die Simulationen mit 15 Sensorknoten lässt sich eine ähnliche Aussage treffen.
Bis auf zwei Durchläufe, bei denen mit fünf Clustern eine größere Anzahl von Clustern
gebildet wurde, liegt hier die Anzahl der Cluster im Durchschnitt mit 3, 4 leicht über dem
optimalen Wert von ln(15) = 2, 71. Die für die vollständige Bildung der Netze benötigte
Zeit (in Beacons) ist in Bild 44 (Seite 97) dargestellt.
Den schon aus Tabelle 5 (Seite 92) bekannten Werten für ein Netz mit 30 Sensorknoten
werden die Zeiten für Netze mit 15 beziehungsweise fünf Sensorknoten gegenübergestellt.
Zu erkennen ist ein Anstieg der benötigten Zeit für größer werdende Sensornetze, wobei die
5 Simulation
95
Tabelle 8: Ergebnisse der Simulation des Netzaufbaus mit einer Reichweite von 2, 5 ×
Gitterkonstante
Simulation Anzahl Benötigte
Nr.
Cluster
Ticks
Benötigte
Beacons
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
5
4
5
6
5
5
6
7
4
5
5
6
7
5
6
10305
9910
10368
10123
10718
10518
10285
11178
9885
10935
10640
10830
11235
10203
11163
20,61
19,82
20,74
20,25
21,44
21,04
20,57
22,36
19,77
21,87
21,28
21,66
22,47
20,41
22,33
Mittelwert
5,4
10553,07
21,11
benötigte Zeit für Netze mit fünf Teilnehmern im Vergleich zu diesen zu hoch erscheint.
In Bild 45 auf Seite 98 ist dieser Sachverhalt nochmals für die jeweiligen Mittelwerte
von Clusteranzahl und benötigter Zeit dargestellt. Dies liegt in der Funktionsweise der
Clusterbildung und der Simulation begründet. Nach dem Start einer Simulation werden
nach und nach alle Sensorknoten aktiviert (siehe Unterabschnitt 4.1, Seite 86). Bei Netzen mit wenigen Teilnehmern ist die Wahrscheinlichkeit, dass benachbarte Sensorknoten
annähernd gleichzeitig aktiviert werden, größer als bei Netzen mit vielen Teilnehmern.
Dadurch kann eine Situation entstehen, bei der auf engem Raum viele benachbarte Knoten sich gleichzeitig in der Lauschphase befinden. Innerhalb dieser Lauschphase horchen
die Sensorknoten auf eventuelle Knoten in ihrer Nachbarschaft, die sich bereits einem
Cluster angeschlossen haben. In diesem Szenario werden die Sensorknoten jedoch keinen
solchen Knoten finden, was zur Folge hat, dass jeder Knoten einen eigenen Cluster bildet.
Ein Cluster, der keine Mitglieder besitzt, versucht sich einem anderen Cluster anzuschliessen. Diese Situation aufzulösen erfordert mehr Zeit, als einen gerade aktivierten Knoten
in einen bestehenden Cluster zu integrieren, was sich in der insgesamt für das Bilden eines
Sensornetzes benötigten Zeit widerspiegelt.
5 Simulation
96
Bild 43: Gegenüberstellung von gebildeter Clusteranzahl und Knotenanzahl im Sensornetz
Ausfall von Sensorknoten
Dieses Verhalten zeigt sich ebenfalls bei Ausfällen von Knoten. Der Ausfall eines Sensorknotens wird von einem Clusterhead durch Ausbleiben des regelmäßigen Beaconpaketes,
durch Ausbleiben des Infopaketes oder bei dem Versuch, an diesen Datenpakete weiterzuleiten, erkannt. Dieser Ausfall hat kaum Auswirkungen auf das gesamte Netz, es sei
denn, der ausgefallene Knoten bot die einzige Möglichkeit für zwei Clusterheads miteinander zu kommunizieren. Im schlechtesten Fall entstehen zwei separate Sensornetze, die
nur durch Hinzufügen von Sensorknoten oder durch Veränderung der geografischen Lage
der verbliebenen Knoten wieder in gegenseitige Reichweite gebracht werden können, um
den Kontakt wieder herzustellen.
Eine interessantere Situation entsteht durch den Ausfall eines Clusterheads. Die Mitglieder des nun nicht mehr funktionsfähigen Clusters erkennen diese Situation durch das
Ausbleiben des Beaconpaketes oder bei dem Versuch, ein Infopaket an den CH zu senden. Sensorknoten, die bereits in Kontakt zu anderen Clustern standen, versuchen direkt
nach der Erkennung des Ausfalls mittels eines Join-Request-Paketes diesem beizutreten.
Bei Knoten, die keinen Kontakt zu weiteren Clustern besaßen, startet der Vorgang der
5 Simulation
97
Bild 44: Gegenüberstellung von benötigter Zeit und Knotenanzahl im Sensornetz
Netzbildung von neuem: nach der Lauschphase wird versucht, einem anderen Cluster
beizutreten, oder es wird ein eigener Cluster erstellt. Das bei dieser Situation gezeigte
zeitliche Verhalten entspricht dem der Neubildung eines Sensornetzes mit einer geringen
Anzahl von Sensorknoten, wie es in Bild 44 exemplarisch für fünf Knoten dargestellt ist.
5.2 Datenverteilung
Im Folgenden wird die Datenverteilung innerhalb des Sensornetzes betrachtet. Es wird
auch untersucht, ob das entwickelte Verfahren es ermöglicht, den durch den Ausfall von
Knoten entstandenen Datenverlust zu kompensieren. Weiterhin wird mit Hilfe der Simulationen betrachtet, wie viele Knoten ausfallen können bevor ein Datenverlust entsteht.
5.2.1 Datenverteilung innerhalb eines Sensornetzes
Ein Sensorknoten, der Datenpakete erzeugt, sendet diese zu seinem Clusterhead. Ein
Clusterhead leitet diese im Falle der Abwesenheit einer Basisstation an seine Nachbarcluster weiter. Die Auswahl des Nachbarclusters durch den Clusterhead erfolgt nach einem
5 Simulation
98
30
27
25
20
17
Anzahl Cluster
Benötigte Beacons
15
13
10
5
4
3
2
0
5
15
30
Anzahl Sensorknoten
Bild 45: Gegenüberstellung der Mittelwerte von Clusteranzahl und benötigter Zeit in
Abhängigkeit der Netzgröße
Round-Robin Schema. Bei einem Sensornetz, das aus vielen Clustern besteht, werden die
Daten somit gleichmäßig über die benachbarten Cluster einer Datenquelle verteilt.
5.2.2 Datenverteilung innerhalb eines Clusters
Da ein Clusterhead empfangene Datenpakete ebenfalls mittels eines Round-Robin Schemas unter seinen Cluster Mitgliedern verteilt, ist es von Interesse, wie effektiv dieses
Schema ist. Das Schema der Datenverteilung ist exemplarisch für einen Cluster mit sechs
Sensorknoten in Tabelle 9 dargestellt. Die Datenpaketteile sind jeweils mit a und b gekennzeichnet und die Pakete fortlaufend durchnummeriert.
Bei einem Cluster mit sechs Mitgliedern können, unter der Voraussetzung, dass von
jedem Datenpaket höchstens ein Teil (a oder b) verloren gehen darf, maximal drei Knoten
(beispielsweise Knoten 2, 4 und 6) ausfallen.
Um allgemeingültig bestimmen zu können, wie viele Sensorknoten ausfallen können,
wurden unterschiedlich große Cluster betrachtet, die in regelmäßigen Abständen von einem anderen Cluster Datenpakete empfingen. Für einen Cluster mit acht Sensorknoten
ist die Verteilung in Tabelle 10 (Seite 100) dargestellt, wobei der Speicherinhalt der Knoten eines Clusters zeilenweise aufgetragen ist. Bei acht Mitgliedern kann der Ausfall von
vier Knoten kompensiert werden.
Es wird nun untersucht, ob das Verfahren mit mehr als zwei Teilpaketen eine höhere
Datensicherheit bietet. Dazu wurde das Protokoll so verändert, dass nun vier Datenteile
5 Simulation
99
Tabelle 9: Datenverteilung in einem Cluster mit sechs Sensorknoten
Knoten Datenpakete
1
2
3
4
5
6
1a, 4a, 7a, 10a
1b, 4b, 7b, 10b
2a, 5a, 8a, 11a
2b, 5b, 8b, 11b
3a, 6a, 9a, 12a
3b, 6b, 9b, 12b
Die Datenpakete sind beginnend von eins an durchnummeriert und die gebildeten Datenteile
mit a und b gekennzeichnet.
gebildet werden. Die daraus resultierende Datenverteilung ist in Tabelle 11 (Seite 101)
dargestellt.
Aus dieser Darstellung ist erkennbar, dass es für die Kompensierung eines Ausfalls von
zwei Knoten mindestens acht Mitglieder in einem Cluster bedarf. Daraus folgt, dass mehr
Datenteile nicht nur mehr Sendeaufwand benötigen, da der CH nun vier einzelne Pakete
anstelle von zwei Paketen verschicken muss, sondern auch weniger Sicherheit gegenüber
Ausfällen einzelner Knoten bietet.
Die Größe eines Clusters hängt direkt mit der Datensicherheit zusammen. Daher wird
folgende Beziehung zwischen der Anzahl kompensierbarer Knotenausfälle in einem Cluster
mit N Sensorknoten und den verwendeten Datenpaketteilen T gebildet (Gleichung 12)35 :
Amax = N div T
(12)
Für zwei, drei und vier Datenpaketteile ist dieser Zusammenhang grafisch in Bild 46
auf Seite 102 dargestellt.
N
Dies lässt sich auf das gesamte Netz übertragen. Im Mittel enthält jeder Cluster ln(N
)
Sensorknoten. Für ein Sensornetz mit N Sensorknoten gilt, dass nur ln(N ) − 1 Cluster
ein Datenpaket speichern, da der Paritätsblock im Ursprungscluster verbleibt und für die
Datenrekonstruktion erhalten bleiben muss.
Es gilt somit für ein Sensornetz mit N Sensorknoten folgender Zusammenhang:
35
Der Ausdruck div entspricht der ganzzahligen Division.
5 Simulation
100
Tabelle 10: Datenverteilung in einem Cluster mit acht Sensorknoten
Knoten Datenpakete
1
2
3
4
5
6
7
8
1a, 5a, 9a, 13a
1b, 5b, 9b, 13b
2a, 6a, 10a, 14a
2b, 6b, 10b, 14b
3a, 7a, 11a, 15a
3b, 7b, 11b, 15b
4a, 8a, 12a, 16a
4b, 8b, 12b, 16b
Die Datenpakete sind beginnend von eins an durchnummeriert und die gebildeten Datenteile
mit a und b gekennzeichnet.
AN etz = ((Copt − 1) · NCl div T ) + AUClr
(13)
Mit der optimalen Clusteranzahl Copt = ln(N ), der mittleren Anzahl Sensorknoten
N
, der Anzahl der möglichen Ausfälle im Ursprungscluster
in einem Cluster NCl = ln(N
)
N
AUClr = ln(N
− 1 und der Anzahl der Datenpaketteile T = 2 ergibt sich:
)
A
N etz
=
N
N
div 2 +
−1
(ln(N ) − 1) ·
ln(N )
ln(N )
(14)
Eine Kurzübersicht über einige Größen von Sensornetzen ist nachfolgend in Tabelle 12
auf Seite 101 angegeben.
Diese Werte geben nur einen theoretischen Mittelwert wieder. In Simulationen wird die
optimale Anzahl Cluster häufig unter- oder überschritten. Dies hat zur Folge, dass die Anzahl der Sensorknoten in den einzelnen Clustern vom theoretischen Mittelwert abweicht.
Auch ist die Anzahl der Sensorknoten in einem Cluster nicht für alle Cluster gleich. So
werden Netze gebildet, die zwar die optimale Anzahl Cluster bilden, die Sensorknoten
jedoch nicht über die Cluster gleichmässig verteilt sind. Somit entstehen extrem kleine
oder große Cluster, die eine ungleiche Anzahl von Ausfällen kompensieren können. Dieser
Sachverhalt soll abschliessend an einem Beispiel verdeutlicht werden.
Simulationsbeispiel
Betrachtet wird wieder das Sensornetz aus Bild 24 auf Seite 53. Knoten 6 und 7 senden
in unregelmäßigen Abständen Datenpakete an ihren Clusterhead 5 und speichern lokal
5 Simulation
101
Tabelle 11: Datenverteilung in einem Cluster mit acht Sensorknoten bei vier Datenteilen
Knoten Datenpakete
1
2
3
4
5
6
7
8
1a, 3a, 5a, 7a
1b, 3b, 5b, 7b
1c, 3c, 5c, 7c
1d, 3d, 5d, 7d
2a, 4a, 6a, 8a
2b, 4b, 6b, 8b
2c, 4c, 6c, 8c
2d, 4d, 6d, 8d
Die Datenpakete sind beginnend von eins an durchnummeriert und die gebildeten Datenteile
mit a, b, c und d gekennzeichnet.
Tabelle 12: Tolerierbare Ausfälle in einem Sensornetz
Anzahl Optimale Anzahl
Kompensierbare Ausfälle
Sensorknoten
Cluster in Knoten Anteilig in Prozent
5
15
30
100
1000
1,61
2,71
3,40
4,61
6,91
2
6
15
50
503
40
40
50
50
50,3
die dazugehörigen Paritätsblöcke. Dieser leitet die Datenpakete an seine Nachbarcluster
weiter. In diesem Beispiel existieren nur zwei Nachbarcluster, 4 und 9, zwischen denen
die Datenpakete verteilt werden. Deshalb werden die Datenpakete mit den geraden Indizes in Cluster 9 gespeichert, während Datenpakete mit ungeraden Indizes in Cluster
4 gespeichert werden. Die Clusterheads 4 und 9 verteilen ihrerseits die Datenpakete auf
die Mitglieder ihrer Cluster, wobei die Datenpakete in zwei Teile unterteilt werden. Die
vollständige Verteilung ist in Bild 47 (Seite 103) dargestellt.
Insgesamt sind elf Sensorknoten36 an der Datensicherung beteiligt. Von diesen elf Knoten können maximal vier Knoten ausfallen, beispielsweise einer in Cluster 4 und drei in
Cluster 9, bevor ein Datenverlust eintritt. Dies entspricht 37% der Sensorknoten. Um
36
Die zwei Knoten, die die Daten erzeugen und neun Knoten, die diese speichern.
5 Simulation
102
A
5
2 Teilpakete
3 Teilpakete
4 Teilpakete
4.5
Erlaubte defekte Sensorknoten
4
3.5
3
2.5
2
1.5
1
0.5
0
0
1
2
3
4
5
6
Anzahl Sensorknoten im Cluster
7
8
9
N
Bild 46: Grafische Darstellung des Zusammenhangs von Clustergröße und kompensierbaren Paketausfällen
dies mit den theoretischen Werten vergleichen zu können, muss das gesamte Sensornetz
betrachtet werden: in Cluster 5 dürfen drei Knoten ausfallen, in Cluster 4 einer und in
Cluster 9 können drei Knoten ausfallen. So können insgesamt sieben Knoten ausfallen,
was 50% aller Sensorknoten entspricht.
5 Simulation
103
Paritätsblöcke
9
8
6
7
5
4
1
3
2
6
7
8
5
1
5
4
2
3
9
4
9
13
10
14
1a
1b
3a
3b
5a
5b
7a
7b
9a
9b
12
11
2a
2b
8a
8b
4a
4b
6a
6b
Datenblöcke
Bild 47: Verteilung von Daten in einem Sensornetz
Die Datenpakete werden nur durch ihren fortlaufenden Index repräsentiert. Datenpaketteile
sind durch ein a“ bzw. b“ gekennzeichnet.
”
”
5 Simulation
104
5.3 Betrachtung des Mehraufwandes an Kommunikation
Eine direkte Betrachtung des Mehraufwandes an Energie ist nicht möglich, da dieser abhängig von der verwendeten Hardware der Sensorknoten ist. Daher kann nur die Anzahl
der maximalen Kommunikationsvorgänge betrachtet werden, die für eine Datenübertragung benötigt werden. Bei der Betrachtung der Kommunikationsvorgänge muss zwischen
zwei Situationen unterschieden werden: bei der ersten ist eine Basisstation im Netz verfügbar, bei der zweiten werden die Daten innerhalb des Netzes verteilt und gespeichert.
Anschliessend werden die gespeicherten Daten von der Basisstation angefordert. Diese zwei Situationen wurden verglichen und der etwaige Mehraufwand für die verteilte
Datenspeicherung ermittelt. Ein direkter Vergleich mit anderen Netzwerkprotokollen ist
aufgrund der sehr unterschiedlichen Funktionsweise nicht möglich.
5.3.1 Betrieb mit Basisstation
Es wird wieder das Sensornetz aus Bild 24 (Seite 53) betrachtet. In Cluster 5 ist eine Basisstation direkt an Knoten 5 angemeldet, während in Cluster 9 in regelmäßigen
Abständen Datenpakete von Knoten 13 generiert werden. Die Pakete werden, logisch betrachetet, von Knoten 13 über Knoten 12, Knoten 9 und Knoten 5 an die Basisstation
gesendet. Der physische Paketweg verläuft jedoch über Knoten 13, Knoten 12, Knoten 9
und über Knoten 14, Knoten 8 und Knoten 5 an die Basisstation, also zwei Verbindungen
mehr. Durch einfache Betrachtung der Netztopologie kann offensichtlich keine Angaben
über die Anzahl benötigter Verbindungen und deren Energiebedarf erstellt werden.
Da im Vorfeld einer Simulation die spätere Form des Netzwerk ebenso unbestimmt ist
wie die Anzahl benötigter Verbindungen zwischen einer Basisstation und einem Sensorknoten, müssen einige Annahmen getroffen werden, um ein allgemeines Modell erstellen
zu können:
• Der Clusterhead ist immer in der geografischen Mitte“ seines Clusters.
”
• Das Netz bildet eine annähernd optimale Anzahl von Clustern (ln (N )).
• Mit einer Wahrscheinlichkeit p ist die Verbindung von Sensorknoten zu Clusterhead
eine Multihop-Verbindung.
• Die maximale Netzwerktiefe ist zwei.
Die optimale Clusteranzahl wurde mit Clopt = ln(N ) angegeben. Da der Clusterhead in
der geografischen Mitte des Clusters liegt, bedarf es zwei Verbindungen um, geografisch
betrachtet, von einer Seite des Clusters auf die andere Seite zu gelangen. Zusätzlich wird
5 Simulation
105
eine Verbindung für den Übergang in den benachbarten Cluster benötigt. Die maximale
Verbindungsanzahl in einem Cluster, in Abhängigkeit von der Wahrscheinlichkeit p, und
unter Berücksichtigung der maximalen Netzwerktiefe von zwei ergibt sich dann zu:
cl
Vmax
(p) = 2 + 2p
(15)
Unter der Annahme, dass die längste mögliche Verbindung maximal über Clopt Cluster führt, lässt sich die maximale Verbindungsanzahl zwischen Basisstation und einem
Sensorknoten wie folgt angeben:
cl
cl
(p)
(p) + 1) + Vmax
Vmax = (Clopt − 1)(Vmax
(16)
Vmax = (ln(N ) − 1) · (3 + 2p) + (2 + 2p)
(17)
Vmax = (3 + 2p) ln (N ) − 1
(18)
5.3.2 Betrieb ohne Basisstation
Wenn im Netzwerk keine Basisstation angemeldet ist, werden die Pakete als Datenfragmente im Netz zwischengespeichert, wie in Unterabschnitt 3.6.3 auf Seite 67 beschrieben.
Nachdem nachträglich eine Basisstation in das Sensornetz integriert wurde, werden diese
Fragmente an die Basisstation gesendet und defekte Pakete erkannt. Im Anschluss daran
werden von den einzelnen Sensorknoten die Paritätsblöcke angefordert. Es muss daher
als Erstes die maximale Verbindungsanzahl berechnet werden, die benötigt wird, um
ein Paket in einem Cluster zu speichern. Dies entspricht genau zweimal der maximalen
Verbindungsanzahl in einem Cluster, zuzüglich einer Verbindung für den Wechsel vom
Datenursprungscluster in einen neuen Cluster:
cl
cl
Vmax
= 2Vmax
(p) + 1
(19)
Dazu addiert sich die benötigte maximale Verbindungsanzahl V bs , um ein Datenpaket
aus einem Cluster an eine Basisstation zu senden, sobald diese verfügbar ist.
V bs = (Clopt − 1) · (3 + 2p)
(20)
bs
cl
Vmax
= V bs + Vmax
(21)
5 Simulation
106
bs
cl
Vmax
= (Clopt − 1) · (3 + 2p) + 2Vmax
(p) + 1
(22)
bs
Vmax
= (3 + 2p) ln N + 2 + 6p
(23)
cl
Damit ergibt sich eine Differenz von 3 + 6p = Vmax
(p) + 1 + 4p zu dem Betrieb mit einer
Basisstation. Weiterhin muss berücksichtigt werden, dass mit einer Wahrscheinlichkeit
psk ein Sensorknoten ausgefallen ist, und der Paritätsblock von der Basisstation angefordert werden muss. Das Anfordern und anschliessende Senden des Paketes entspricht dem
zweimaligen Senden gemäß Gleichung 18 (105), so dass daraus folgt:
an
Vmax
= psk 2((3 + 2p) ln (N ) − 1)
(24)
Es werden zwei Fälle mit dem Szenario einer im Netz integrierten Basisstation verglichen: Zum einen, wenn eine neu in das Netz integrierte Basisstation die zwischengespeicherten Daten abfragt, zum anderen, wenn die zwischengespeicherten Daten fehlerhaft
sind und der Paritätsblock angefordert werden muss. Werden Daten so lange zwischengespeichert, bis der Kontakt zu einer Basisstation wieder hergestellt werden kann, entspricht
cl
(p) + 1 + 4p in etwa der Ander Mehraufwand bei der Anzahl der Verbindungen mit Vmax
zahl der maximalen Verbindungen in einem Cluster. Zu erkennen ist dabei, dass der
Mehraufwand bei Sensornetzen mit geringer Wahrscheinlichkeit p sinkt. Im Falle einer
an
Anforderung von Paritätsblöcken erhöht sich die Differenz noch einmal um Vmax
.
5.4 Zusammenfassung der Ergebnisse
Anhand der Simulationsergebnisse wurde gezeigt, dass das Verfahren zur redundanten
und distributiven Datenverarbeitung in drahtlosen Sensornetzen die gestellte Aufgabe
erfüllt. Die Daten werden, bei Ausfall der Basisstation, redundant im Netz gespeichert.
Nach erfolgreichem Wiederherstellen der Kommunikation mit der Basisstation werden die
Daten an diese weitergesendet. Der dabei benötigte Mehraufwand an Zeit und Energie
ist ein nicht zu vernachlässigender Faktor; ob die ermittelten Daten diesen Mehraufwand
rechtfertigten, hängt von den Anforderungen der Benutzer und der Applikation und nicht
zuletzt von der Wichtigkeit der ermittelten Daten ab.
Die Resistenz gegenüber Ausfällen einzelner Knoten, ist ein wichtiges Merkmal moderner Protokolle für drahtlose Sensornetze. Das hier entwickelte Verfahren ist in der Lage,
Ausfälle von einzelnen Knoten bis zu einem gewissen Grad zu tolerieren. Wie in Unterabschnitt 5.2 (siehe Seite 97) gezeigt, hängt die Sicherheit einzelner Datenpakete nur von
den gebildeten Clustergrößen ab.
Zusammenfassung und Ausblick
107
Zusammenfassung und Ausblick
Die vorliegende Arbeit beschreibt den Entwurf eines Verfahrens für drahtlose Sensornetze, mit dessen Hilfe es möglich ist, etwaigen Datenverlust in für solche Netze typischen
Situationen zu verhindern. Typische Situationen bei solchen Netzen sind der Ausfall von
einzelnen Teilnehmern oder, weit schwerwiegender für den erfolgreichen Betrieb eines solchen Netzes, der Ausfall der Basisstation. Dabei ist es unerheblich, ob die Basisstation
ausfällt, oder nur die Verbindung zu dieser für einen längeren Zeitraum gestört ist. Um
eine Anwendung des entwickelten Verfahrens in drahtlosen Sensornetzen zu ermöglichen,
wurde das Verfahren in einem Netzwerk-Protokoll implementiert. Speziell für dieses Protokoll wurde ein eigener Softwaresimulator entwickelt, der die besonderen Eigenschaften
von drahtlosen Sensornetzen berücksichtigt und mit dessen Hilfe die Leistungscharakteristik des Sensornetzes in verschiedenen Situationen bestimmt wurde.
Das in dieser Arbeit entwickelte Verfahren zur redundanten und distributiven Datenverarbeitung in drahtlosen Sensornetzen stellt eine wesentliche Basis für weitere Betrachtungen dar.
Auf Grundlage der Simulationen des Netzwerkprotokolls und der Abschätzungen der
Eigenschaften bezüglich des Energieverbrauchs müssen Implementierungen auf unterschiedlichen Hardwareplattformen und Anwendungen die Ergebnisse bestätigen. Eine Implementierung auf einer vom Institut für Mikroelektronische Schaltungen und Systeme
entwickelten Plattform wurde begonnen.
Eine spätere Anwendung wird voraussichtlich eine Modifikation in einigen Protokollebenen zur Folge haben; so wäre es bei der Clusterbildung wünschenswert, wenn das
Protokoll Funktionen unterstützte, die Cluster auflösen oder gezielt neu erstellen, um eine optimale Clusteranzahl im Sensornetz zu erhalten. Weiterhin wäre es von Vorteil, wenn
die Cluster eine wählbare Mindestgröße aufweisen könnten, da die Knotenanzahl in einem
Cluster direkt bestimmt, wie viele Knoten im Idealfall ausfallen können, bevor Datenverlust entsteht. Auch sollte das Protokoll eine zu große Anzahl an Multihop-Verbindungen
zwischen Sensorknoten und den Clusterheads vermeiden. Diese Verbindungen erhöhen,
wie in Unterabschnitt 5.3.2 auf Seite 105 gezeigt, den Mehraufwand an Kommunikation
erheblich.
Eine weitere Verbesserung ist bei der Behandlung der Paritätsblöcke möglich. Die Anforderung eines solchen Blocks führt, wird die Anzahl der benötigten Verbindungen betrachtet, zu einer starken Zunahme des Netzverkehrs. Hier können Methoden aus modernen Peer-To-Peer Netzen Abhilfe schaffen, so dass weniger Verbindungen für die Anforderungen solcher Blöcke nötig sind.
Zusammenfassung und Ausblick
108
Für spätere Applikationen wird es sinnvoll sein, eine Authentifizierung der Basisstation
oder sogar einzelner Knoten beim Hinzufügen in das Netz durchführen zu können. Eine
solche Maßname schützt die Daten vor unberechtigten Zugriffen Dritter. Eine Realisierung
dieses Verfahrens wird unausweichlich auch eine Implementierung neuer Applikationen für
die Netzverwaltung und die Auswertung von Daten bedeuten. Das Sensornetz muss in die
Lage versetzt werden, serviceorientierte Aufgaben zu übernehmen, und somit die Funktionalität von Datenbanken nachzubilden. Einige Ansätze dazu werden von Blumenthal,
Golatowski und Timmermann in [GBHT03] und [BHGT03] präsentiert.
Im Rahmen dieser Arbeit konnte gezeigt werden, dass die eigentliche Aufgabe, die
verteilte, redundante Datenverarbeitung in einem Sensornetz, erfolgreich gelöst wurde.
Allerdings muss bei der Anwendung dieses Verfahrens abgeschätzt werden, ob die ermittelten und gegen einen potentiellen Verlust zu schützenden Daten den benötigten
Mehrverbrauch an Energie rechtfertigen, da dieser, im Falle eines defekten Datenpaketes,
die Lebensdauer der einzelnen Knoten verkürzt. Je nach Applikation und Umfeld kann
dies dazu führen, dass ein Sensornetz seine Aufgaben nicht über die ursprünglich geplante
Dauer erfüllen kann, sondern eine Wartung in kürzeren Abständen nötig ist.
Literatur
109
Literatur
Die Literaturangaben sind alphabetisch nach den Namen der Autoren sortiert. Bei mehreren Autoren wird nach dem ersten Autor sortiert.
[ASS04]
Ahmed, Ahmed A., Hongchi Shi und Yi Shang: A Survey On Network
Protocols For Wireless Sensor Networks. Technischer Bericht, Department
of Computer Engineering & Computer Science, University of MissouriColumbia, 2004.
[ASSC02]
Akyildiz, I.F., W. Su, Y. Sankarasubramaniam und E. Cayirci:
Wireless sensor networks: a survey. Computer Networks, Elsevier B.V.,
2002.
[AWD03]
Abolhasan, Mehran, Tadeusz Wysocki und Eryk Dutkiewicz: A
review of routing protocols for mobile ad hoc networks. Ad Hoc Networks,
Elsevier B.V., 2003.
[BBB04]
Burrell, Jenna, Tim Brooke und Richard Beckwith: Vineyard
Computing: Sensor Networks in Agricultural Production. IEEE Pervasive
Computing, 2004.
[BBEH02]
Bulusu, Nirupama, Vladimir Bychkovskiy, Deborah Estrin und
John Heidemann: Scalable, Ad Hoc Deployable RF-based Localization.
Technischer Bericht, UCLA and USC/ISI, 2002.
[BG01]
Bhardwaj, Manish und Timothy Garnett: Upper Bounds of the Lifetime of Sensor Networks. Technischer Bericht, MIT Cambridge, 2001.
[BH02]
Bulusu, Nirupama und John Heidemann: Self-Configuring Localization Systems: Design and Experimental Evaluation. Technischer Bericht,
University of California at Los Angeles, 2002.
[BHGT03]
Blumenthal, Jan, Matthias Handy, Frank Golatowski und Dirk
Timmermann: Wireless Sensor Networks - New Challenges in Software
Engineering. Technischer Bericht, Universität Rostock, 2003.
[Blu]
Bluetooth: Bluetooth Special Interest Group.
Homepage: http://www.bluetooth.org, Stand Nov. 2004.
[Bow03]
Bowman, Cliff: Architecting Communications in a Wireless Mesh Network. Embedded Systems Conference, 2003.
Literatur
110
[BRP03]
Belding-Royer, Elizabeth M. und Charles E. Perkins: Evolution and future directions of the ad hoc on-demand distance-vector routing
protocol. Ad Hoc Networks, Elsevier B.V., Issue 1, 2003.
[CBJ+ 02]
Coers, Alexander, Guido Bruck, Peter Jung, Rainer Kokozinski und Hans-Christian Mueller: A System Independent Data Compressor For Wireless Internet Access. Proceedings Of IEEE International
Symposium on Consumer Electronics, 2002.
[CM02]
Coers, Alexander und Hans-Christian Mueller: Independent Data Compressor for Wireless Internet Access. Anual Report of Fraunhofer
Institut für Mikroelektronische Schaltungen und Systeme, 2002.
[Coe05a]
Coers, Alexander: Data Security And Integrity In Wireless Sensor Networks. Anual Report of Fraunhofer Institut für Mikroelektronische Schaltungen und Systeme, 2005.
[Coe05b]
Coers, Alexander: Redundante Datensicherung in drahtlosen Sensornetzen. Technischer Bericht, 4. GI/ITG KuVS Fachgespräch Drahtlose Sensornetze, Zürich, 2005.
Homepage: http://www.vs.inf.ethz.ch/events/fg2005.
[CT]
Crossbow Technology, Inc.: Wireless sensor networks with mica nodes.
Homepage: http://www.xbow.com/Products/productsdetails.aspx?sid=3,
Stand Nov. 2004.
[Dij59]
Dijkstra, E. W.: A Note on two problems in Connexion with Graphs.
Numerische Mathematik 1, 1959.
[DS]
Digital Sun, Inc.: S.Sense Wireless Sensors.
Homepage: http://www.digitalsun.com, Stand Nov. 2004.
[DSG]
Doolin, David M., Nicholas Sitar und Steve Glaser: The Firebug
Project.
Homepage: http://firebug.sourceforge.net/, Stand Nov. 2004.
[EE00]
Elson, Jeremy und Deborah Estrin: An Address-Free Architecture
for Dynamic Sensor Networks. Technischer Bericht, University of Southern
California, 2000.
Literatur
111
[EE01]
Elson, Jeremy und Deborah Estrin: Time Synchronization for Wireless Sensor Networks. Technischer Bericht, University of California, 2001.
[EHC02]
Edgar H. Callaway, Jr.: Wireless Sensor Networks. Auerbach Publications, 2002.
[FV03]
Fall, Kevin und Kannan Varadhan: Network Simulator Version 2
Handbook. Technischer Bericht, UC Berkeley, LBL, USC/ISI and Xerox
PARC, 2003.
[GBHT03]
Golatowski, Frank, Jan Blumenthal, Matthias Handy und Dirk
Timmermann: Softwarearchitektur für Sensornetzwerke. Technischer Bericht, Universität Rostock, 2003.
[GCYE03]
Ganesan, Deepak, Alberto Cerpa, Wei Ye und Deborah Estrin:
Networking Issues in Wireless Sensor Networks. Technischer Bericht, Department of Computer Science, UCLA and USC/ISI, 2003.
[Gla04]
Glaser, Steven D.: Some real-world applications of wireless sensor nodes. Technischer Bericht, University of California, Berkeley, 2004.
[GLB+ 03]
Gay, David, Philip Levis, Eric Brewer, David Culler, Matt
Welsh und Robert von Behren: The nesC Language: A Holisitc Approach to Networked Embedded Systems. Technischer Bericht, University of
California, Berkeley and Intel Research, Berkeley, 2003.
Homepage: http://nescc.sourceforge.net, Stand Nov. 2004.
[GLCB03]
Gay, David, Philip Levis, David Culler und Eric Brewer: nesC
1.1 Language Reference Manual, May 2003.
[GS03]
Gupte, Siddhartha und Mukesh Singhal: Secure routing in mobile
wireless ad hoc networks. Ad Hoc Networks, Elsevier B.V., 2003.
[HBE01]
Heidemann, John, Nirupama Bulusu und Jeremy Elson: Effects of
Detail in Wireless Network Simulation. Technischer Bericht, USC and Information Sciences Institute, 2001.
[HJP03]
Hu, Yih-Chun, David B. Johnson und Adrian Perrig: SEAD: secure
efficient distance vector routing for mobile wireless ad hoc networks. Ad Hoc
Networks, Elsevier B.V., Issue 1, 2003.
Literatur
112
[HL04]
Hu, Zhihua und Baochum Li: On the Fundamental Capacity and Lifetime Limits of Energy-Contrained Wireless Sensor Networks. Proceedings
of the 10th IEEE Real-Time and Embedded Technology and Applications
Symposium (RTAS’04), 2004.
[Hol94]
Holland, Mark Calvin: On-Line Data Reconstruction In Redundant
Disk Arrays. Doktorarbeit, Carnegie Mellon University, 1994.
[Hsi04]
Hsieh, Tim Tau: Using sensor networks for highway traffic applications.
Technischer Bericht, IEEE Potentials, April/May 2004.
[IEEa]
IEEE: IEEE 802.11 Wireless LAN.
Homepage: http://grouper.ieee.org/groups/802/11/, Stand Jan. 2005.
[IEEb]
IEEE: IEEE 802.15 Standard.
Homepage: http://www.ieee802.org/15, Stand Nov. 2004.
[IEE05]
IEEE: IEEE 802.5 Token Ring, 2005.
Homepage: http://grouper.ieee.org/groups/802/5/www8025org/, Stand
Jan. 2005.
[JM04]
Jiang, Qiangfeng und D. Manivannan: Routing Protocols for Sensor
Networks. Technischer Bericht, Department of Computer Science, University of Kentucky, 2004.
[Kah00]
Kahn, Dr. J.: ALOHA Note. Technischer Bericht, University of Newcastle, 2000.
[KCHM04]
Kokozinski, Rainer, Alexander Coers, Markus Holzapfel und
Hans-Christian Mueller: Drahtlose Sensornetzwerke - Technologie und
Architektur. SENSORreport, Ausgabe 6, 2004.
[KCHM05]
Kokozinski, Rainer, Alexander Coers, Markus Holzapfel und
Hans-Christian Mueller: Drahtlose Sensornetzwerke - Systeme und
Anwendungsgebiete. SENSORreport, Ausgabe 1, 2005.
[KW03]
Karlof, Chris und David Wagner: Secure routing in wireless sensor
networks: attacks and countermeasures. Ad Hoc Networks, Elsevier B.V.,
2003.
[Lan03]
Lang, H. W.: Algorithmen in Java. Oldenbourg, 2003.
Literatur
113
[LYH03]
Li, Yuan, Wei Ye und John Heidemann: Demonstration of Schedule
and Latency Control in S-MAC. Technischer Bericht, USC/ISI, 2003.
[MA04]
Ma, Yong und James H. Aylor: System Lifetime Optimization for Heterogeneous Sensor Networks with a Hub-Spoke Topology. IEEE Transactions
on Mobile Computing, 2004.
[MCH04]
Mueller, Hans-Christian, Alexander Coers und Jens Hoffmann: White Paper on Localization and Calibration in Wireless Ad-hoc
Sensor Networks. Technischer Bericht, Fraunhofer Institut für Mikroelektronische Schaltungen und Systeme, 2004.
[MFJWM02] Malan, David, Thaddeus Fulford-Jones, Matt Welsh und Steve Moulton: CodeBlue: An Ad Hoc Sensor Network Infrastructure for
Emergency Medical Care. Technischer Bericht, Division of Engineering and
Applied Sciences, Harvard University, 2002.
[Mon]
Monitoring: The Great Duck Island Project.
Homepage: http://www.greatduckisland.net, Stand Nov. 2004.
[MPS+ 02]
Mainwaring, Alan, Joseph Polastre, Robert Szewczyk, David
Culler und John Anderson: Wireless Sensor Networks for Habitat Monitoring. Technischer Bericht, Intel Research Laboratory, Berkeley, 2002.
[MR03]
Mhatre, Vivek und Catherine Rosenberg: Design guidelines for wireless sensor networks: communication, clustering and aggregation. Ad Hoc
Networks, Elsevier B.V., 2003.
[Nel91]
Nelson, M.: The Data Compression Book. M&T Books, 1991.
[PB94]
Perkins, Charles E. und Pravin Bhagwat: Highly Dynamic
Destination-Sequenced Distance-Vector Routing (DSDV) for Mobile Computers. Technischer Bericht, IBM, T.J. Watson Research Center and University of Maryland, 1994.
[PBRD03]
Perkins, Charles E., E. M. Belding-Royer und S. Das:
Ad hoc on demand distance vector (AODV) routing.
Technischer Bericht, RFC 3561, Category: Experimental, work in progress.
http://www.ietf.org/rfc/rfc3561.txt, 2003.
[PMBT02]
Priyantha, N. B., Allen K. L. Miu, Hari Balakrishnan und Seth
Teller: The Cricket Compass for Context-Aware Mobile Applications.
Literatur
114
Technischer Bericht, MIT Laboratory for Computer Science, 2002.
Homepage: http://nms.lcs.mit.edu/cricket/, Stand Nov. 2004.
[PMJ03]
Pietro, Roberto Di, Luigi V. Manchini und Sushil Jajodia: Providing secrecy in key management protocols for large wireless sensor networks.
Ad Hoc Networks, Elsevier B.V., 2003.
[REG02]
Ratnasamy, Sylvia, Deborah Estrin und Ramesh Govindan: DataCentric Storage in Sensornets. Technischer Bericht, ICIR, UCLA, UC Berkeley, 2002.
[RG88]
Ramabadran, T.V. und S. S. Gaitonde: A tutorial on CRC computations. Technischer Bericht, IEEE Micro, 1988.
[RRR99]
Radhakrishnan, S., N. Rao und G. Racherla: DST – A routing protocol for ad hoc networks using distributed spanning trees. IEEE Wireless
Communications and Networking Conference, 1999.
[RSL04]
Rhee, Sokwoo, Deva Seetharam und Sheng Liu: Techniques for
Minimizing Power Consumptions in Low Data-Rate Wireless Sensor Networks. WCNC/IEEE Communications Society, 2004.
[Sca]
Scatterweb: Freie Universität Berlin, Scatterweb.
Homepage: http://www.scatterweb.net, Stand Nov. 2004.
[Sch04]
Schiller, Jochen H.: Sensornetze überwachen die Ostsee. fundiert - Das
Wissenschaftsmagazin der Freien Universität Berlin, 2004.
[SE03]
Sagduyu, Yalin Evren und Anthony Ephremides: Energy-efficient
MAC in ad-hoc networks inspired by conflict resolution concepts. Ad Hoc
Networks, Elsevier B.V., Issue 1, 2003.
[SGAP00a]
Sohrabi, Katayoun, Jay Gao, Vishal Ailawadhi und Greg Pottie: Self Organizing Wireless Sensor Network. Technischer Bericht, Electrical Engineering Department, UCLA, 2000.
[SGAP00b]
Sohrabi, Katayoun, Jay Gao, Vishal Ailawadhi und Gregory J.
Pottie: Protocols for Self-Organization of a Wireless Sensor Network.
IEEE Personal Communications, 2000.
[Sik01]
Sikora, Axel: Wireless LAN – Protokolle und Anwendungen. AddisonWesley, 2001.
Literatur
115
[Sik04]
Sikora, Axel: ZigBee: Grundlagen und Applikationen. Elektronik Wireless, 2004.
[Sim]
Simulator: Network Simulator Version 2.
Homepage: http://www.isi.edu/nsnam/ns/index.html, Stand Nov. 2004.
[Sma01]
Smartdust: Autonomous Sensing and Communication in a cubic millimeter. Technischer Bericht, University of Berkeley, California, 2001.
Homepage: http://robotics.eecs.berkeley.edu/∼ pister/SmartDust.
[SPMC04]
Szewczyk, Robert, Joseph Polastre, Alan Mainwaring und David Culler: Lessons from a Sensor Network Expedition. Technischer Bericht, 1st European Workshop on Wireless Sensor Networks (EWSN), 2004.
[SSIGA90]
Stonebraker, Michael, Gerhard A. Schloss, William V. Courtright II und Gibson Garth A: Distributed Raid – A New Copy Algorithm. Technischer Bericht, Walter A. Haas School of Business, University
of California, 1990.
[Sto93]
Stodolsky, Daniel: A Redundant Disk Array Architecture For Efficient
Small Writes. Technischer Bericht, Carnegie Mellon University, 1993.
[SY04]
Sivrikaya, Fikret und Bülent Yener: Time Synchronization in Sensor Networks: A Survey. IEEE Networks, 2004.
[Tan02]
Tanenbaum, Andrew S.: Computernetzwerke. Prentice Hall, 2002.
[Tcl]
Tcl/Tk: Tcl/Tk Developer Site.
Homepage: http://www.tcl.tk/, Stand Januar 2005.
[Tin]
TinyOS: TinyOS Community Forum.
Homepage: http://www.tinyos.net, Stand März 2004.
[VLW97]
Vaziri, Mandana, Nancy Lynch und Jeannette Wing: Proving Correctness of a Controller Algorithm for RAID 5. Technischer Bericht, MIT
Cambridge and Carnegie Mellon University Pittsburgh, 1997.
[War62]
Warshall, S.: A Theorem on Boolean Matrices. Journal of the ACM,
Volume 9, 1962.
[WE03]
Wang, Hanbiao und Jeremy Elson: Target Classification and localization in habitat monitoring. Technischer Bericht, UCLA, 2003.
Literatur
116
[Wei04]
Weimerskirch, André: Authentikation in Ad-hoc und Sensornetzwerken. Technischer Bericht, Horst Görtz Institut für IT-Sicherheit, RuhrUniversität Bochum, 2004.
[Whi02]
Whitehouse, Cameron Dean: The Design of Calamari: an Ad-hoc Localization System for Sensor Netzworks. Technischer Bericht, University of
California, Berkeley, 2002.
[Wol02]
Wollert, Jörg S.: Das Bluetooth Handbuch. Franzis Verlag, 2002.
[XBH03]
Xu, Ya, Solomon Bien und John Heidemann: Topology Control Protocols to Conserve Energy in Wireless Ad Hoc Networks. Technischer Bericht,
UCLA and USC/ISI, 2003.
[XGB03]
Xu, Kaixin, Mario Gerla und Sang Bae: Effectiveness of RTS/CTS
handshake in IEEE 802.11 based ad hoc networks. Ad Hoc Networks, Elsevier B.V., Issue 1, 2003.
[YHE01]
Ye, Wei, John Heidemann und Deborah Estrin: An Energy-Efficient
MAC Protocol for Wireless Sensor Networks. Technischer Bericht, Information Science Institute, 2001.
[YHE04]
Ye, Wei, John Heidemann und Deborah Estrin: Medium Access
Control with Coordinated, Adaptive Sleeping for Wireless Sensor Networks.
ACM/IEEE Transactions on Networking, 12(3):493–506, June 2004. A preprint of this paper was available as ISI-TR-2003-567.
[ZS03]
Zussman, Gil und Adrian Segall: Energy efficient routing in ad hoc
disaster recovery networks. Ad Hoc Networks, Elsevier B.V., 2003.
Häufig verwendete Abkürzungen
117
Häufig verwendete Abkürzungen
ACK Acknowledge (Bestätigungspaket)
ADC Analog Digital Converter
AODV Ad hoc on-demand distance vector routing (Reaktives Routingverfahren)
CD Compact Disc
CH Clusterhead
CRA Collision Resolution Algorithm
CRC Cyclic Redundancy Check
CSMA Carrier Sense Multiple Access
CSMA/CA Carrier Sense Multiple Access with Collision Avoidance
CSMA/CD Carrier Sense Multiple Access with Collision Detection
CTS Clear To Send (Bestätigung eines RTS Paketes)
DCF Distributed Coordination Function
DSDV Destination-sequenced distance vector routing (Proaktives Routingverfahren)
DST Distributed Spanning trees based routing (Hybrides Routingverfahren)
DVD Digital Versatile Disc
FDMA Frequency Division Multiple Access (Frequenzmultiplexverfahren)
FFD Full Function Device (Geräteklasse des IEEE 802.15.4)
FTP File Transfer Protocol
GPS Global Positioning System (Satellitengestütztes Navigationssystem)
GSM Global System for Mobile Communications (Mobilfunkstandard)
HAL Hardware Abstraction Layer
HTTP Hypertext Transfer Protocol
IMAP Internet Message Access Protocol
Häufig verwendete Abkürzungen
ISO International Standards Organisation
LAN Local Area Network (Lokales Rechnernetz)
MAC Medium Access (Layer)
MD Mediator Device (Netzprotokoll)
NAV Network Allocation Vector
OSI Open System Interconnection
PCF Point Coordination Function
POP3 Post Office Protocol Version 3
QOS Qualitiy Of Service
QRY Query (Anfragepaket)
RAID Redundant Array Of Independent Disk, Festplattenverbund
RES Response (Antwortpaket auf ein QRY Paket)
RFD Reduced Function Device (Geräteklasse des IEEE 802.15.4)
RTS Request To Send (Anfragepaket, Signalisiert einen Sendevorgang)
SAN Storage Area Network
SDMA Space Division Multiple Access (Raummultiplexverfahren)
SEAD secure efficient distance vector routing (Reaktives Routingverfahren)
SICS Swedish Institute of Computer Science
S-MAC Sensor Medium Access (spezieller MAC-Layer für Sensornetze)
SMTP Simple Mail Transport Protocol
SOHO Small Office and Home Application
SPI Serial Parallel Interface
SYNC Synchronisation (Synchronisationspaket)
TDMA Time Division Multiple Access (Zeitmultiplexverfahren)
TTL Time To Life
118
Teile des vorgestellten Verfahrens sind zum Patent angemeldet.
Erstellt mit LATEX auf einem AppleTM Mac.
Herunterladen