Diplomarbeit Routing in Sensornetzen (fast) ohne Speicher

Transcrição

Diplomarbeit Routing in Sensornetzen (fast) ohne Speicher
Diplomarbeit
Informatik
Routing in Sensornetzen
(fast) ohne Speicher
vorgelegt von
Kerstin Voß
Matrikelnummer: 6096475
Betreuer:
Dr. rer. nat. Christian Schindelhauer
Diplomarbeit
Routing in Sensornetzen (fast) ohne Speicher
an der:
Universität Paderborn
Fachgebiet Algorithmen und Komplexität
Dr. rer. nat. Christian Schindelhauer
Fürstenallee 11
33102 Paderborn
Erklärung
Ich versichere, dass ich diese Arbeit selbstständig angefertigt und keine anderen als die
angegebenen und bei Zitaten kenntlich gemachten Quellen und Hilfsmittel benutzt habe.
Paderborn, den 29. März 2005
—————————
(Kerstin Voß)
i
Inhaltsverzeichnis
1 Einleitung
1.1
2
Motivation für das Forschungsinteresse in Sensornetzen . . . . . . . . . . .
2
1.1.1
Algorithmische Probleme . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2
Ziel und Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3
Einführung in Sensornetze . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.1
Charakteristische Eigenschaften . . . . . . . . . . . . . . . . . . . .
5
1.3.2
Einsatzgebiete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2 Aufgabenstellung
12
2.1
Hardwarespezifikation
2.2
Das Szenario “Supermarkt“ . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1
Situationsbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2
Explizite Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . 15
3 Stand der Forschung
3.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
30
Das 1 QK-Protokoll im Überblick . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.1
Ein erster Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.2
Distanz zum Server - die Expected Power Distance . . . . . . . . . 35
3.1.3
uplink-Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.4
downlink Kommunikation . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.5
weitere Nachrichtentypen . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.6
Bezug zum ISO/OSI Modell . . . . . . . . . . . . . . . . . . . . . . 44
INHALTSVERZEICHNIS
3.1.7
3.2
iii
Schwachstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Bestehende Routingverfahren . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.1
Routingverfahren für mobile Ad-hoc Netze . . . . . . . . . . . . . . 51
3.2.2
Das Pulse Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.3
Data Collection Protokoll . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.4
Direct Diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.5
Insgesamte Beurteilung der Routingverfahren . . . . . . . . . . . . 61
4 Synchronisation
62
4.1
Einsatz klassischer Synchronisierungsalgorithmen in Sensornetzen . . . . . 62
4.2
Synchronisationsverfahren für Sensornetze . . . . . . . . . . . . . . . . . . 63
4.3
4.2.1
Time Stamp Synchronization . . . . . . . . . . . . . . . . . . . . . 64
4.2.2
Reference Broadcast Synchronization . . . . . . . . . . . . . . . . . 65
4.2.3
Timing Sync Protocol for Sensor Networks . . . . . . . . . . . . . . 69
4.2.4
Beurteilung der drei Verfahren . . . . . . . . . . . . . . . . . . . . . 71
Globales kontra lokales synchrones Aufwachen . . . . . . . . . . . . . . . . 72
4.3.1
Regalweise Synchronisation . . . . . . . . . . . . . . . . . . . . . . 72
4.3.2
Global synchronisierter Aufwachpunkt . . . . . . . . . . . . . . . . 74
4.3.3
Vergleich der Ansätze . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5 Frequenzwahl
5.1
82
Gleichverteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.1
Abschätzungen für den Erfolg der Gleichverteilung
. . . . . . . . . 86
5.2
Geometrische Verteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3
Faktorisierte geometrische Verteilung . . . . . . . . . . . . . . . . . . . . . 95
5.3.1
Abschätzungen für den Erfolg der faktorisierten geometrischen Verteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.4
Beurteilung der einzusetzenden Wahrscheinlichkeitsverteilung . . . . . . . . 100
5.4.1
Beispielrechnungen für die regalweise Synchronisation . . . . . . . . 100
5.4.2
Einzusetzender Faktor in der faktorisierten geometrischen Verteilung 110
INHALTSVERZEICHNIS
iv
5.4.3
Vergleichsverläufe des Erwartungswertes . . . . . . . . . . . . . . . 117
5.4.4
Kombination für das optimierte 1 QK-Protokoll . . . . . . . . . . . 119
6 Fairness des Routings
124
7 Auswirkungen auf das 1 QK-Protokoll
134
7.1
Beschreibung der Modifikationen . . . . . . . . . . . . . . . . . . . . . . . 134
7.2
Veränderte Spezifikation - Release 3.0 . . . . . . . . . . . . . . . . . . . . . 136
8 Zusammenfassung
8.1
138
Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
A Quellcode
140
A.1 Dokumentation und Code zur regalweisen Synchronisation . . . . . . . . . 140
A.2 Release 3.0 des 1 QK-Protokolls . . . . . . . . . . . . . . . . . . . . . . . . 148
B Verzeichnisse
160
B.1 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
B.2 Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Abbildungsverzeichnis
168
INHALTSVERZEICHNIS
1
Kapitel 1
Einleitung
1.1
Motivation für das Forschungsinteresse in Sensornetzen
Sensornetze sind die Datenerfassungsnetzwerke der Zukunft! Die integrierten Stationen
erfassen sensorisch physische Umwelteigenschaften und leiten diese an eine Zentralstation
weiter. Die Stationen, genannt Sensorknoten, können Eigenschaften wie zum Beispiel
Licht, Temperatur, Feuchtigkeit, Erschütterung, Beschleunigung, aber auch akustische
Signale messen. Die Aufgabe eines einzelnen Knotens besteht zunächst aus dem Auslesen
der Sensordaten, anschließender Bearbeitung sowie dem Versenden von diesen [Fr 03].
Eines der wichtigen Ziele in der Entwicklung von Sensorknoten ist ihre Kostengünstigkeit.1
So werden Sensorknoten oft nur bis zur Erschöpfung ihrer eigenen Energiequelle verwendet. Um sie möglichst preiswert zu produzieren, werden die Kleinstrechner nur
mit einer stark begrenzten Hardware ausgestattet. Auf kleinstem Raum sind Sensor,
Prozessor, Speicher (RAM und FLASH), eine Kommunikationseinheit sowie eine autarke
Energiequelle integriert (siehe Abbildung 1.1) (siehe auch [Wa 01]). In den meisten
Einsatzgebieten wird eine Funkeinheit zur Kommunikation benutzt. Eine drahtlose
Kommunikation hat schließlich den Vorteil, dass die Stationen ihre Position verändern
können. Zudem ist das Netz leichter zu installieren.
Das Ziel eines Sensornetzes ist es, erfasste Sensordaten an eine zentrale Einheit
weiterzuleiten [Va, Ch]. Da die Knoten meistens batteriebetrieben sind, besitzen sie in
der drahtlosen Kommunikation nur eine geringe Sendereichweite. So ist im Allgemeinen
1
Der vorausgesagte Preis in zwei Jahren für einen Knoten wie in Abbildung 1.1 wird auf 10 US-Dollar
geschätzt [Va, Ch].
1 Einleitung
3
Abbildung 1.1: Beispiel eines Sensorknotens, Quelle: [Va, Ch]
keine direkte Kommunikation mit dem Server möglich. Nachrichten müssen mit Hilfe
von anderen Stationen zum Server weitergeleitet werden. Die wichtigste Aufgabe eines
Sensorknotens beschränkt sich damit nicht mehr auf die Datenerfassung und - versendung. Ein ebenso elementares Problem ist die Nachrichtenweiterleitung durch das Netz,
das Routing .
Sensorknoten stehen am Ende einer Entwicklung von immer kleiner werdenden
mobilen Endgeräten (Laptops, PDAs, programmierbare Handies . . . ) [Hae 05]. Sie sind
die kleinsten und energieeffizientesten aller vorherigen Entwicklungen. Wegen diesen
Eigenschaften sind sie von großem Nutzen und haben undenkbar viele Einsatzgebiete.
In Zukunft werden solche Netze vermutlich in vielen alltäglichen Gegenständen integriert
sein. Eingebaut zum Beispiel in intelligenten Gebäuden oder in Fahrzeugen. Ihre Aufgabe
besteht dann im “Erfühlen“ der Umgebung und der automatischen Anpassung des
jeweiligen Verhaltens technischer Systeme aus den erfassten Umweltveränderungen.
Netze aus vielen solchen Knoten gestatten die weiträumige Beobachtung von
”
Phänomenen der realen Welt mit großer Genauigkeit, ohne dabei die physischen
Prozesse wesentlich zu beeinflussen. Sensornetze sollen daher in vielen Anwendungsgebieten einen hohen Nutzen stiften.“[Fr 03]
Entgegen der starken Ressourcenbeschränkungen ist die Anzahl der Knoten in einem Sensornetz meistens hoch. Die Knoten in näherer Umgebung dienen als direkte
Kommunikationspartner. In vielen Fällen entsteht so aus der Vielzahl der Knoten
ein dichter Kommunikationsgraph. Besteht ein dichter Graph, kann die nicht sehr
ausgeprägte Sendereichweite vernachlässigt werden.
1 Einleitung
1.1.1
4
Algorithmische Probleme
Algorithmische Probleme in Sensornetzen (wie zum Beispiel das Routing) sind im
Prinzip auch schon von Kommunikationsnetzen bzw. Ad-Hoc-Netzen bekannt [Ka 05].
Aufgrund der begrenzten Hardwareeigenschaften von Sensorknoten sind allerdings neue
algorithmische Modelle und Verfahren erforderlich (siehe dazu 3.2).
Alle Algorithmen für Sensornetze sind darauf bedacht, die Vielzahl der Knoten so
auszunutzen, dass im gemeinsamen Zusammenspiel die bestehenden Anforderungen
(zum Beispiel eine große Sendereichweite, großer Speicherplatz, Erkennung der räumliche
Anordnung der Sensorknoten . . . ) erfüllt werden. Gelingt dies, so sind Sensornetze nicht
nur sehr mächtig2 sondern auch extrem robust gegenüber Ausfällen. Daher skalieren sie
gut mit zu- oder abnehmender Knotenanzahl.
1.2
Ziel und Aufbau der Arbeit
Die Diplomarbeit beschäftigt sich mit einer der elementarsten Aufgaben in Sensornetzen, dem Routing. Dabei wird auf einer speziellen Hardwarekonfiguration der Knoten
aufgesetzt. So sind die Knoten zum Beispiel mit nur 256 Byte RAM ausgestattet. Des
Weiteren wird als Grundlage das 1 QK-Protokoll genutzt, welches an der Universität
Paderborn in der Fachgruppe Meyer auf der Heide unter der Leitung von Dr. Christian
Schindelhauer entwickelt wurde [Sch 04/04], [Sch 04-R02].
Das Routingverhalten des 1 QK-Protokolls wird auf zwei Wegen modifiziert: Die
Veränderungen liegen in der Frequenzwahl für den Sende- und Empfangsvorgang sowie
in der Weiterleitung von Nachrichten. Mittels dieser Modifikationen treten weniger
Störungen in der Kommunikation auf. Das Protokoll wird effizienter und gewinnt an
Fairness.
Die Arbeit gliedert sich wie folgt:
Der folgende Abschnitt (siehe 1.3) wird eine kleine Einführung in Sensornetze geben. Im
zweiten Kapitel wird die genaue Aufgabenstellung der Arbeit erläutert. Anschließend
folgt ein Überblick über den Stand der Forschung. Mit dem vierten Kapitel beginnt die
Beschreibung der Modifikationen:
Das 1 QK-Protokoll arbeitet mit unsynchronisierten Knoten. In der Diplomarbeit
wird eine Synchronisation eingesetzt. Geeignete Synchronisationsverfahren werden im
vierten Kapitel “Synchronisation“ beschrieben. Im Kapitel “Kanalwahl“ gehe ich auf
2
Mit Hilfe einer räumlichen Orientierung eröffnen sich viele weitere Einsatzgebiete.
1 Einleitung
5
die Modifikationen bezüglich der Frequenzwahl beim Senden und Empfangen ein. Die
Erreichung von Fairness im Routingverhalten wird im sechsten Kapitel erläutert. Im
Anschluss an diese Veränderungen werden die Auswirkungen auf das 1 QK-Protokoll
aufgeführt. Die Arbeit endet mit einer Zusammenfassung und einem Ausblick auf weitere
Optimierungen des 1 QK-Protokolls.
1.3
Einführung in Sensornetze
Zum besseren Verständnis von Sensornetzen wird eine kurze Einführung gegeben.
Zunächst werden die wichtigsten Eigenschaften, die bereits zuvor angemerkt wurden,
zusammengefasst und erläutert. Anschließend stelle ich einige Einsatzgebiete zur Veranschaulichung vor.
1.3.1
Charakteristische Eigenschaften
Sensorknoten bestehen aus Speicher, Rechenleistung, einer Kommunikationseinheit und
einer Energieversorgung [Hae 05]. Diese Ressourcen sind meistens stark begrenzt. Vor
allem wird die Leistungsfähigkeit eines Knotens dadurch beschränkt, dass er seine Energie
aus einer Batterie erhält. Daher ist die Hauptaufgabe aller Algorithmen der sparsame
Energieverbrauch.
Trotz der starken Ressourceneinschränkungen ist auf vielen Sensorknoten ein Betriebssystem lauffähig. TinyOS ist ein weitverbreitetes speziell für Sensorknoten entwickeltes
Betriebssystem der University of California in Berkeley [Ti 04]. Es unterstützt eine
einfache Programmierung der Sensorknoten sowie Flexibilität im Scheduling durch eine
ereignisgesteuerte Ausführung. Damit werden die Eigenschaften von drahtlosen Sensornetzen und ihrer physischen Umgebung vollkommen berücksichtigt. Schließlich sollen
auf gewisse Ereignisse ohne Verzögerung Reaktionen erfolgen. Für schnellst mögliche
Reaktionen ist es notwendig, dass diese im Scheduling an die erste Position rückt.
Die Architektur von TinyOS ist komponentenbasiert. So sind zum Beispiel Netzwerkprotokolle oder Treiber für Sensoren in den Bibliotheken enthalten und können in den
eigenen Applikationen problemlos eingesetzt werden.
Die Hardware der Kommunikationseinheit entscheidet über drahtlosen oder drahtgebundenen Nachrichtenaustausch. Die drahtlose Kommunikation hat sicherlich einige
Vorteile: Es werden keine festen Verbindungen zwischen den Knoten benötigt, sie sind
1 Einleitung
6
somit leichter zu installieren und beweglich. Je nach Eigenschaften der Funkeinheit
(Radio-Transceiver) stehen den Knoten verschiedene Frequenzbereiche (Kanäle) zur
Verfügung, auf denen sie senden und empfangen können. Die Funkeinheit sendet innerhalb eines Senderadius und alle Sensorknoten innerhalb des Bereiches (und im gleichen
Frequenzbereich) können die Signale hören. In einer dichten Umgebung sind damit mit
einem Kommunikationsversuch zahlreiche Nachbarn erreichbar.
Um die gleiche Anzahl von Nachbarn mit einer festen Verkabelung zu erreichen,
bedarf es ohne Netzwerk einer hohen Anzahl von Kabeln:
Sollen N Knoten mit jedem anderen Knoten kommunizieren können, müssen alle
miteinander verbunden sein. Es werden
T = N − 1 + N − 2 + N − 3 . . . + 1 ≤ N2
Kabel benötigt, wenn mit jedem Kabel die Kommunikation in beide Richtungen möglich
ist.
Werden die Sensorknoten in einem Netzwerk betrieben, so genügt meistens ein Kabel.
Das Medium wird dann jedoch zum Flaschenhals der Kommunikation [Cr 00, S.3 f].
Die drahtlose Kommunikation hat jedoch auch Nachteile: Störungen3 können auftreten.
Diese Interferenzen resultieren zum einen aus einer gegenseitigen Behinderung, das heißt
wenn zwei Knoten auf dem gleichen Kanal senden. Zum anderen treten Störungen durch
Einflüsse der unmittelbaren Umwelt auf: Gesendete Signale können von Gegenständen
oder Personen in unmittelbarer Umgebung abgelenkt werden. Wenn Gegenstände oder
Personen nur temporär die Verbindung stören, sind einige Nachbarn zeitweise nicht
erreichbar. Beim Routing bedarf es somit eines Handlings von dynamischen Nachbarn.
Die Dynamik ist ebenso erforderlich, da die Sensorknoten ihre Position ändern können
(sei es selbstständig oder durch menschlichen Einfluß). Ein Knoten muss daher die
Informationen über seine Nachbarschaft stets aktualisieren.
Aufgrund der Dynamik in den Routingalgorithmen sind drahtlose Sensornetze selbsterzeugend und selbstorganisierend [Ra, Mi, S.1]. Die Kommunikationspfade bestehen aus
Multi-Hops, da eine direkte Kommunikation mit dem Server meistens nicht möglich ist.
3
Definition Störung: negative Beeinträchtigungen der übertragenen Signale mit eventueller Konse”
quenz einer Nachrichtenverfälschung bzw. eines Nachrichtenverlustes“ [Wo 04, S.23]
1 Einleitung
1.3.2
7
Einsatzgebiete
Der Einsatz von Sensornetzen ist vielfältig. Die ersten Prototypen für drahtlose Sensornetze sind für die Umweltüberwachung, Katastrophenverhütung oder für Aufklärungszwecke
konzipiert worden ( Smart Dust“-Projekte). Anwendungsgebiete sind in der Beobachtung
”
großer Gebiete zu finden:
Umweltforscher erhoffen sich umfassendere und genauere Möglichkeiten zur
”
Überwachung der Ausbreitung von Verschmutzungen in Luft und Wasser; durch
Einbringen von Sensornetzen in Gebäude und Brücken will man den Einfluss von
seismischen Aktivitäten auf deren strukturelle Integrität besser erkennen; und Militärs
sind stark daran interessiert, Aktivitäten in unzugänglichem Gelände durch den Einsatz
von Sensornetzen zu überwachen.“[Fr 03] (vergleiche [Ak,Su 02])
Zudem sind Sensornetze bei einer Früherkennung sowie als Lokalisierungshilfe von
Brandherden in Waldbränden, der Tierbeobachtung und der Gebäude-/Geländesicherung
einzusetzen. Es folgen vier Beispielszenarien für Einsatzgebiete.
1. ZebraNet
ZebraNet ist der Name eines Forschungsprojektes der Princeton University. Das Migrationsverhalten von Zebras wird mittels GPS erforscht. Durch die alle acht Minuten
aufgenommenen GPS Angaben können detaillierte Angaben zu den Bewegungsmustern
der Tiere gemacht werden. Diese Angaben werden im zwei-Stunden-Rhythmus versucht
an einen Empfänger zu übermitteln (siehe Abbildung 1.2). Als Empfänger dienen andere
Zebras zur Weiterleitung, falls keine Basisstation erreichbar ist. Also liegt eine store-and
forward Kommunikation vor.
Abbildung 1.2: Kommunikation im ZebraNet, Quelle: [Sa 04, S.2]
1 Einleitung
8
Die Zebras tragen eine Halsmanschette (siehe Abbildung 1.3), in welcher der Sensorknoten befestigt ist. Sehr bedeutend für dieses Projekt ist eine lange Funktionsweise ohne
menschlichen Einfluss von etwa einem Jahr. Für diese lange wartungsfreie Zeit muss
stets ausreichend Energie vorhanden sein. Eine entsprechende Batterie wiegt jedoch zehn
Kilogramm, da ein relativ hoher Energieverbrauch stattfindet (0.03-0.07 Watt). Aus
diesem Grund sind die eingesetzten Batterien mit Solarenergie wiederaufladbar.
Abbildung 1.3: Zebra mit Halsmanschette, Quelle: [Zh, Sa 04, S.9]
Die Latenzzeit für die Nachrichtenübertragung ist unkritisch, aber die erfolgreiche
Übermittlungswahrscheinlichkeit soll hoch sein. Der Fokus der sendenden Daten liegt
auf der aktuellen Position des Zebras. Denkbar ist natürlich auch die Angabe von
Temperatur, weiteren Wetterdaten, Gesundheitsdaten des Zebras und so weiter.
Probleme im ZebraNet bestehen zur Zeit noch in der Weiterleitung der Nachrichten.
Die Funkeinheit wurde für eine Reichweite von fünf Meilen spezifiziert, in Wirklichkeit
wird jedoch nur eine Sendereichweite von etwa einer Meile erreicht. Bisher bestehen nur
Vermutungen für die Gründe der geringeren Sendereichweite:
Störend kann die Grundplatte der Antenne oder einfach die Tatsache sein, dass beim
Grasen des Zebras die Halsmanschette nahe am Boden ist. Bei einer geringen Distanz
zum Boden werden Signale verzerrt (Absorption) und die Sendereichweite reduziert.
Die zukünftige Forschungsarbeit soll realisieren, dass eine Übertragung losgekoppelt vom
zwei-Stunden-Rhythmus stattfindet. Immer wenn sich ein Empfänger in Sendereichweite
befindet, soll eine Übertragung erfolgen. Um diese Funktion mit den gegebenen Ressourcen zu erreichen, soll eine energiesparendere Funkeinheit eingesetzt werden.
Für weitere Informationen über das ZebraNet kann die eingesetzte Literatur [Zh,
Sa 04] und [Sa 04] genutzt werden.
1 Einleitung
9
2. Supermarkt
Jede Artikelgruppe in den Regalen wird mit einem Sensorknoten ausgestattet. Sein
Sensor mißt die Artikelanzahl und schickt bei Veränderung des Bestandes, sei es durch
Entnahme oder Auffüllen, eine Nachricht an den Server [Sch 03/04]. Dieser hat somit
stets einen aktuellen Überblick über den gesamten Warenbestand im Supermarkt.
Mit diesen Informationen kann er automatisch entsprechende Bestellungen aufgeben.
Ebenfalls denkbar ist eine Meldung, falls der Warenbestand im Regal aufgefüllt werden
muss.
Abbildung 1.4: Sensorknoten der Artikelgruppe ’Cigaret’, In Anlehnung an [Sch 03/04,
S.2]
Des Weiteren verfügen die Sensorknoten über ein elektronisches Display, welches für die
Preisanzeige genutzt wird. Der Server hat die Möglichkeit jedem beliebigen Sensorknoten
eine Nachricht mit einer Preisänderung zukommen zu lassen. Der neue Preis wird dann
automatisch auf dem elektronischen Display angezeigt.
3. Gebäudesicherung
In erdbebengefährdeten Gebieten könnte mit Hilfe von intelligenten Gebäuden mehr
Sicherheit geschaffen werden. Dazu werden an den Außenseiten der Hochhäuser Sensorknoten befestigt. Mit Hilfe der Messungen von Schwankungen ist es möglich, die
Menschen rechtzeitig zu evakuieren, falls das Gebäude einsturzgefährdet ist.
1 Einleitung
10
4. Waldbrände
Ein weiteres Einsatzgebiet von Sensornetzen ist in ausgebrochenen Waldbränden zu
sehen: Im Brandgebiet werden Sensorknoten aus einem Flugzeug abgeworfen, welche
dann jeweils die an ihrer Position gemessene Temperatur an die Zentrale mittels Routing
durch das Sensornetz weiterleitet. Brandherde können identifiziert und das Feuer schnell
eliminiert werden.
An diesem Szenario werden drei Eigenschaften von Sensornetzen deutlich: Zum einen
befinden sich die Sensorknoten nach dem Absturz in keiner festgelegten Reihenfolge. Die
neuen Kommunikationsnachbarn müssen gefunden und verarbeitet werden. Daher spielt
die dynamische Verwaltung der Nachbarschaftsinformationen eine große Rolle.
Zudem muss das Netz selbstorganisierend und selbstkonfigurierend erzeugt werden,
schließlich ist kein menschlicher Einfluss nach dem Abwurf mehr möglich.
Als weitere Eigenschaft sollten die Sensorknoten möglichst preiswert sein. Ein zweiter
Einsatz der Knoten ist aufgrund der Hitzeauswirkungen wahrscheinlich nicht möglich.
1 Einleitung
11
Kapitel 2
Aufgabenstellung
Dieser Kapitel gibt eine genaue Definition der Aufgabenstellung. Für die Diplomarbeit
werden spezielle Hardwareeigenschaften der Sensorknoten vorausgesetzt, welche in
der Fakultät für Elektrotechnik im Fachgebiet Sensorik an der Universität Paderborn
entwickelt und produziert werden. Das Ziel dieser Entwicklungen ist es, eine äußerst
preisgünstige Hardware herzustellen.
Nach der expliziten Hardwarespezifikation wird das Szenario für die Arbeit im Detail
erläutert.
2.1
Hardwarespezifikation
Allgemein zeichnen sich Sensorknoten durch geringe Rechenleistung, wenig Speicher und
eine spärliche Sendereichweite aus. In meiner Diplomarbeit betrachte ich folgende expliziten Hardwareeinschränkungen:
Die Sensorknoten besitzen einen Micro-Controller der Firma Texas Instruments 1 mit 256
Byte RAM und einen FLASH-Speicher von acht Kilobyte. Der Micro-Controller ist mit
einem RISC Prozessor ausgestattet. Dieser Prozessor hat nur geringe Rechenpower: Additionen sind in der Hardware verankert, Multiplikationen müssen bereits mittels Software
gelöst werden.
Mit dem Radio-Transceiver Chipcon CC1000 ist die Übertragungsweite regulierbar. Frequenzbereiche können gewählt werden und es existieren Energiespar-Funktionen. Der
Radio-Transceiver ist individuell programmierbar.2 Der Frequenzbereich zum Senden und
1
des Typs MSP430F413
Es wird derzeit Frequency Shift Keying(FSK), mit Manchester Codierung und einer Kanaltrennung
von 64kHz genutzt.
2
2 Aufgabenstellung
13
Empfangen im 443MHz Band beträgt etwa 1, 75 MHz. Die Kanäle haben einen Bereich
von 64 kHz. Mit der gleichen Breite als Sicherheitsbereich zur Kanaltrennung stehen dreizehn Frequenzbereiche zur Verfügung.
Des Weiteren besitzen die Sensorknoten eine Uhr, welche für die Knotensynchronisierung eingestellt werden kann. Mit Hilfe der Uhr können die Knoten in eine Standby-Zeit
(Schlafphase) versetzt werden. Nach einer gewünschten Schlafphase nimmt der Knoten
seinen gewohnten Betrieb erneut auf.
Die betrachteten Sensorknoten (siehe Abbildung 2.1) verfügen außerdem über ein elektronisches Display (beschriftet mit A). Der Sensor zur Datenerfassung ist auf einer Schiene
angebracht (B).
Abbildung 2.1: Sensorknoten zur Erfassung des Warenbestandes, Quelle: [Sch 04, S.2]
Da die Knoten batteriebetrieben sind, ist eins der primären Ziele Energie zu sparen.
Durch die Energiespar-Funktionen in Schlafphasen wird eine Einsparung um den Faktor
hundert erreicht.
In den Eigenschaften von Sensornetzen (vergleiche 1.3.1) habe ich erwähnt, dass auf
vielen Sensorknoten das Betriebssystem TinyOS genutzt werden kann. Wegen der harten
Ressourceneinschränkungen der genutzten Hardware ist der Einsatz von TinyOS nicht
möglich.
Aufgrund des knappen zur Verfügung stehenden Speichers heißt die Diplomarbeit
auch Routing in Sensornetzen (fast) ohne Speicher.“
”
Die Informationen der Spezifikation sind in [Sch 04, S.8] sowie [Sch 03/04, S.4] zu finden.
2 Aufgabenstellung
2.2
14
Das Szenario “Supermarkt“
Als Einsatzgebiet des Sensornetzes für die Diplomarbeit wird das Augenmerk auf das
Szenario “Supermarkt“ gerichtet. Natürlich können die Ergebnisse auf ähnliche Szenarien
übertragen werden.
Die Beschreibung des Szenarios erfolgt im ersten Abschnitt durch eine allgemeine
Situationsdarstellung. Anschließend werden explizite Annahmen beschrieben, die zur
Ergebnisfindung vorausgesetzt wurden.
2.2.1
Situationsbeschreibung
Die Wahl fällt auf das Szenario Supermarkt, da die entwickelte Hardware (vgl. 2.1) speziell für einen solchen Einsatz angefertigt ist (siehe Abbildung 2.1).
Das elektronische Display zeigt den Preis der Artikelgruppe an. Auf der Schiene mit der
Sensortechnik werden die Artikel positioniert. Mittels Schienenauslastung kann die Anzahl der aktuell vorhandenen Artikel bestimmt werden. In den Regalen steht für jede
Artikelgruppe ein solcher Sensorknoten.
Wird die Ausnutzung der Schienenlänge verändert, liegt eine Modifikation des Warenbestandes vor und eine Nachricht wird generiert. Mit Hilfe der anderen Sensorknoten wird
diese über Multi-Hops zum Server geleitet. Fließen Nachrichten von einem Sensorknoten
zum Server spricht man von der uplink -Kommunikation.
Nachrichten werden downlink versendet, wenn sie vom Server zu einem Serverknoten
geschickt werden. Für Preisänderungen oder Nachrichten an alle Sensorknoten wird diese
Kommunikationsrichtung genutzt.
In Abbildung 2.2 werden die Kommunikationswege visualisiert. Dabei symbolisiert s0
den Server, si ist ein beliebiger Sensorknoten. Wie in der Abbildung zu sehen ist befinden
sich zeitweise Einkäufer/-innen in den Durchgängen zwischen den Regalen. Diese können
Störungen hervorrufen, da sie gegebenenfalls Signale ablenken und Kommunikationswege
versperren.
2 Aufgabenstellung
15
Abbildung 2.2: Kommunikation über Regale im Supermarkt, Quelle: [Sch 03/04, S.4]
2.2.2
Explizite Voraussetzungen
In dem oben geschilderten Szenario gibt es viele unbekannte Faktoren:
Zum einen ist ungewiss, wie häufig sich der Artikelbestand ändert und eine Nachricht zu
versenden ist. Dies entspricht der Wahrscheinlichkeit, dass ein Artikel verkauft wird oder
Artikel aufgefüllt werden.
Zum anderen liegen keine Informationen über ein Verhältnis von Sendern und Empfängern
vor. Ein derartiges Verhältnis ist aber sehr wichtig, um eine Erfolgswahrscheinlichkeit für
das Versenden einer Nachricht zu bestimmen. Schließlich sinkt die Erfolgswahrscheinlichkeit bei mehr Sendern und erhöht sich mit wachsender Anzahl von Empfängern.
Die Abschätzung oder Annahme einer Wahrscheinlichkeit, dass eine Nachricht generiert
wird, ist realistisch kaum zu veranschlagen. Einerseits gibt es gewisse Stoßzeiten mit
viel Betrieb und wiederum Zeiten mit wenig Einkäufen. Andererseits werden einige
Artikel häufiger gekauft als andere. Wichtig ist natürlich ebenso, dass das gesamte
Verkaufsvolumen und die Stoßzeiten von Supermarkt zu Supermarkt variieren. Jedoch
sollten Annahmen möglichst generell gültig sein. Letztendlich könnte höchstens eine sehr
fehlerhafte Durchschnittswahrscheinlichkeit abgeschätzt werden.
Realistische Abschätzungen kann ich jedoch für das Verhältnis von potentiellen
Sendern und potentiellen Empfängern treffen. Die Summe von potentiell störenden
2 Aufgabenstellung
16
Knoten und potentiell verfügbaren Empfängern ist abhängig von der Knotenanzahl
im Sendebereich. Dabei betrachte ich entweder uplink- oder downlink-Kommunikation.
Somit zählen als Empfänger nur die Sensorknoten “in der richtigen Richtung“. Mit
anderen Worten: Bei der uplink-Kommunikationen sind potentielle Empfänger die
Knoten, welche sich näher zum Server befinden. Anvisierte Nachbarschaftsknoten zur
Weiterleitung bei der downlink-Kommunikation sind die Sensorknoten, welche weiter
vom Server entfernt sind. Als Maß für die Distanz wird die Hopdistanz eingeführt:
Definition 2.2.1 Hopdistanz
Die Hopdistanz wird definiert als Maß der Distanz zum Server. Es gilt:
1. Der Server besitzt eine Hopdistanz von Null.
2. Die Hopdistanz d ist beschränkt: 0 ≤ d ≤ ROU T ELEN GT H, dabei ist ROUTELENGTH die bereits im Protokoll existierende Konstante.
3. Die Hopdistanz wird in Beacons, uplink-Nachrichten sowie den zugehörigen Acknowledgements übertragen.
4. Die Hopdistanz ist in den meisten Fällen eine Fließkommazahl (Datentyp real). Zur
Bestimmung des Aufwachpunktes sowie bei der Versendung von Nachrichten wird
die nächste ganze Zahl genutzt.
5. Sei d die gerundete Hopdistanz eines Knotens. Empfängt dieser ein Acknowledgement oder ein Beacon mit Hopdistanz h − 1 < d , so verringert er seine Hopdistanz
um einen konstanten Faktor (zum Beispiel
1
).
3
Ansonsten bildet der Knoten das
arithmetische Mittel der Hopdistanzen.
6. Da Kommunikationswege ausfallen können, kann sich die Hopdistanz eines Knotens
ändern. Wurde eine uplink-Nachricht während einer Wachphase nicht versendet und
es traten keine Interferenzen auf, so ist ein vorheriger Kommunikationsweg wahrscheinlich gestört. Ist noch nicht die maximale Hopdistanz erreicht, wird die eigene
Hopdistanz inkrementiert.
7. Sendet der Server eine downlink-Nachricht zu einem Knoten, teilt er ihm die Hopdistanz der vorgeschlagenen Route mit. Diese übernimmt der Knoten.
2 Aufgabenstellung
17
Bemerkung 2.2.2
Die Hopdistanz ist das neue Maß für die Distanz zum Server und löst damit die im
1 QK-Protokoll definierte Expected Power Distance (siehe Abschnitt 3.1.2) ab. Da die
Knoten für die Diplomarbeit synchronisiert sind, kann die Distanz einfacher erkannt
werden. Schließlich kann jeder Knoten nur zu gewissen Zeitpunkten eine Nachricht
empfangen. Ohne Synchronisation konnten Nachrichten zu jeder Zeit in der Wachphase
eintreffen.
Des Weiteren weisen sich Knoten der Hopdistanz zu, von welcher sie die meisten
Nachrichten erhalten. Dieses wird durch das arithmetische Mittel erreicht.
Obige Definition gilt nur, wenn Knoten mit Hopdistanz i auch noch lauschen, wenn
Knoten mit der niedrigeren Hopdistanz i − 1 uplink senden. Andernfalls muss die
Hopdistanz nicht gerundet werden und nicht in uplink-Acknowledgements enthalten sein.
Die Sicherung bei Ausfällen von Kommunikationswegen besteht dann alleine aus der
Erhöhung nach einer erfolglosen Wachphase.
Die Distanz wird nur schrittweise herunter gesetzt, damit die “mühevolle“ Erhöhung
nicht zu schnell wieder rückgängig gemacht wird. Mit dieser Hopdistanz ist die maximale
Distanz im Netz dynamisch. Das Netz passt sich dem aktuellen Nachrichtenaufkommen
an: Kleine maximale Hopdistanz bei wenig Verkehr und gropße Hopdistanz bei hohem
Nachrichtenvolumen. Die Anzahl der Interferenzen wird damit verringert.
Die Konstante, welche zur Verringerung der Distanz genutzt wird, muss mit Bedacht gewählt werden. Denn die gleiche Knotenanzahl soll in etwa für jede Hopdistanz
gelten.
Knoten mit der gleichen Hopdistanz befinden sich in einer virtuellen Regalreihe. Dies
ist nur eine virtuelle und keine physikalische Regalreihe. Mittels Reflektionen von Nachrichten durch Gegenstände in der direkten Umwelt können kürzere Kommunikationswege
für einen Sensorknoten aus einer weiter entfernten Regalreihe entstehen. Durch die dynamische Anpassung kann man jedoch davon ausgehen, dass ungefähr gleich viele Knoten
pro Hopdistanz (und damit pro virtuelle Regalreihe) zu verzeichnen sind.
Beispiel 2.2.3 Zugehörigkeit zum virtuellen Regalreihen
Dieses Beispiel ist visualisiert in Abbildung 2.3. Der rote Knoten besitzt eine Hopdistanz zum Server von Eins. Die roten Striche stellen versendete Beacons dar. Eins
dieser Signale wird durch einen Gegenstand so reflektiert, dass der grüne Knoten
2 Aufgabenstellung
18
Abbildung 2.3: Virtuelle Regale
in der dritten Regalreihe die Signale empfängt, obwohl er eigentlich außerhalb der Sendereichweite ist. Anhand des erhaltenen Beacons setzt der Knoten seine Hopdistanz auf
zwei. Diese Hopdistanz besitzen auch die Knoten in Regalreihe zwei. Somit ist der grüne
Knoten in der virtuellen Regalreihe zwei, befindet sich aber physikalisch in der dritten
Regalreihe.
Mit Hilfe der Hopdistanz ist die Knotenanzahl pro Entfernungsschritt in etwa gleich.
Zwei aneinander stehende Regale werden als eine Regalreihe angesehen. Die Anzahl
der potentiellen Empfänger und Sender wird als Durchschnitt in der Regalreihenmitte
gemessen. Bei der Berechnung der Strecke werden jeweils nur die Regale der Regalreihen
“in der richtigen Richtung“ sowie mit der Öffnung zum Regalgang betrachtet. Wie die
Trennwände die Signale beeinflussen, ist nämlich schwer abzuschätzen.
Da diese Annahmen bei der Berechnung der Sender und der Empfänger gemacht werden,
ist der Fehler auf beiden Seiten gleich und wirkt sich für das Verhältnis nicht aus. Ebenso
wird das Verhältnis nur für eine Regalebene berechnet. Ein Regal besitzt natürlich
mehrere Einlegeböden und damit befinden sich mehrere Stationen in verschiedenen
Ebenen vertikal übereinander (siehe Abbildung 2.4). Wie sich der Nachrichtenempfang
zwischen Stationen verschiedener Ebenen verhält, ist schwer abzuschätzen. Je nach
verwendetem Regalmaterial werden schließlich die Signale unterschiedlich stark zerstreut
oder verzerrt. Für das Verhältnis von Empfängern und Sendern kann die Abgrenzung sich
aber auf eine Ebene beschränken. Bei mehreren Ebenen erhöht sich natürlich die Anzahl
der Empfänger. Die Anzahl der konkurrierenden Sender wächst jedoch gleichermaßen.
So bleibt das Verhältnis von Sendern und Empfängern unabhängig von der Anzahl der
2 Aufgabenstellung
19
Ebenen in etwa gleich.
Abbildung 2.4: Visualisierung der Regalbegriffe
Es folgt zunächst eine Funktion zur Ermittlung des Empfänger-Sender-Verhältnisses. Dabei wird ohne Beeinschränkung der Allgemeinheit die uplink-Kommunikation betrachtet.
Anschließend werden einige Beispielrechnungen durchgeführt.
Um ein gültiges Verhältnis zu finden, bedarf es zum einen der Betrachtung der
Topologieeigenschaften. Alle Knoten im Sendebereich zählen jedoch nicht zu Sendern
oder Empfängern. Für die Klassifizierung der Knoten ist die Distanz zum Server ausschlaggebend. Knoten im Sendebereich mit niedrigerer Hopdistanz zählen als Empfänger.
Es hängt von der Realisierung des Protokolls ab, welche Knoten als potentielle Sender
gezählt werden müssen. So kann gelten, dass nur Knoten mit identischer Hopdistanz
zeitgleich senden (lokaler synchroner Aufwachpunkt, siehe 4.3). Ein anderer Realisierungsansatz ist, dass alle Knoten im Sendebereich zur gleichen Zeit senden (globaler
synchroner Aufwachpunkt). Dieser Aspekt wird im zweiten Schritt zur Ermittlung eines
Empfänger-Sender-Verhältnisses betrachtet.
1. Topologieeigenschaften
Die Sendereichweite verläuft theoretisch kreisrund um den sendenden Knoten. In der
neuesten Forschung wird die Sendereichweite nicht mehr als Kreisform gesehen. Diese
Erkenntnisse werden für diese theoretische Arbeit allerdings nicht betrachtet. Des
Weiteren werden in den Untersuchungen keine Regalenden einbezogen.
2 Aufgabenstellung
20
Abbildung 2.5: Senkrechte Anordnung der Regale zum Server
Problematisch ist, dass die Regalanordnungen in Bezug zum Server variable sind. So sind
Anordnungen wie in den Abbildungen 2.5, 2.6 und 2.7 zu berücksichtigen.
Abbildung 2.6: Querstehende Regale zum Server
Für das Verhältnis von Knoten in Sendereichweite wird der Senderadius eines beliebigen
Knotens betrachtet (siehe 2.7), der sich nicht am Regalende befindet. Zu Knoten Zwei
2 Aufgabenstellung
21
gehört der gelb visualisierte Senderadius. Knoten Eins besitzt den roten. Das ermittelte
Knotenverhältnis von Eins kann für jeden anderen Knoten übertragen werden. Schließlich
ist b nicht in allen Sendebereichen der Knoten im Radius von Eins. Dies ist visualisiert
für Knoten c: Er befindet sich im Senderadius von Zwei, ist jedoch für Eins nicht mehr
erreichbar. Damit kann das Verhältnis für einen beliebigen Senderadius untersucht und
für alle anderen Knoten übertragen werden.
Abbildung 2.7: Überschneidungen vom Sendebereich
Zur Ermittlung der Strecke, auf welcher sich Knoten im Sendebereich befinden können,
sind einige Parameter erforderlich. Für die Knotenanzahl wird diese Strecke durch die
durchschnittliche Artikelbreite dividiert. Als Parameter werden eingesetzt:
• r ist der Radius der Sendereichweite
• b ist die Länge zwischen zwei Regalreihenmitten und ergibt sich aus der Durchgangsbreite sowie der Breite einer Regalreihe
Der Satz von Pythagoras wird zur Streckenberechnung genutzt. Die Visualisierung der
Berechnung für zwei unterschiedlich weit entfernten Regalreihen ist in Abbildung 2.8 visualisiert. In rot wird der Radius, in blau die gesuchte Strecke und in schwarz die
Entfernung zur anderen Regalmitte dargestellt. Die Hypothenusen sind gleichzusetzen mit dem Radius. Die rechts anliegenden Katheten entsprechen der Entfernung zur
Mitte der anderen Regalreihen.
Die Summe der zweiten Kathetenlängen ist gleich dem Bereich, in welchem sich andere
Knoten befinden. Zusätzlich muss die eigene Regalreihe bedacht werden. Der Durchmesser
ist die Länge, auf welchem sich zusätzlich Knoten verteilen. Die Länge der Strecke in
2 Aufgabenstellung
22
Abbildung 2.8: Visualisierung der Dreiecksberechnung
anderen Regalreihen wird mit vier mutlipliziert, da Regalreihen in beide Richtungen für
die Knoten betrachtet werden müssen. Hierbei wird zunächst noch keine Unterscheidung
zwischen gegebenenfalls störenden oder anvisierten Knoten gemacht. Von der Realisierung
des 1 QK-Protokolls ist abhängig, welcher Knoten welche Rolle übernehmen kann.
r
Knotenstrecke (r, b) = 2 · r +
bbc
X
4·
p
r2 − (ib)2
i=1
2. Knotenklassifizierung
Von der Hopdistanz der Knoten ist abhängig, ob diese als störender Sender oder als
Empfänger in Frage kommen. Ich betrachte hier ohne Beeinschränkung der Allgemeinheit
den Kommunikationsfluss zum Server. Die Ergebnisse sind dann auf die Gegenrichtung
übertragbar.
Werden Nachrichten zum Server von Knoten k versendet, sind alle lauschenden Knoten
mit geringerer Hopdistanz potentielle Empfänger. Zur Klassifizierung der Sender muss die
Realisierung des 1 QK-Protokolls und der Synchronisation genauer betrachtet werden:
In jedem Fall sind Knoten mit gleicher Hopdistanz wie k stets potentiell störende Nachbarknoten. Des Weiteren sind Knoten Sender, wenn ihre Sendephasen zu denen von k
nicht disjunkt sind. Die Aufwachphasen können so gestaltet sein, dass alle Knoten gleichzeitig erwachen und senden (global). Auf der anderen Seite ist auch ein lokaler synchroner
Aufwachpunkt möglich. Dabei überschneiden sich die Sendephasen nur von Knoten mit
gleicher oder ähnlicher Hopdistanz:
Sei h die Hopdistanz des betrachteten Knotens k. Nicht disjunkt seien die Sendephasen
von k und den Knoten mit einer Hopdistanz, welche sich um s Einheiten unterscheidet
(also mit Hopdistanz (h−s−1) . . . (h+s+1)). Beim globalen Ansatz entspricht s der maximalen Differenz zu anderen Hopdistanzen. Senden nur Knoten mit gleicher Hopdistanz,
2 Aufgabenstellung
23
ist s Null. Knoten mit gleicher Hopdistanz liegen im gleichen virtuellen Regal. Die Anzahl
der Knoten pro virtuellem Regal wird aufgrund der dynamischen Anpassung der Distanz
ähnlich der Knotenanzahl im physikalischen Regal sein. Daher setze ich hier das virtuelle
mit dem physikalischen Regal gleich (dieser Ansatz wird in 4.3.1 weiter fortgeführt).
Senden nur Knoten mit identischer Hopdistanz zeitgleich, so sind in den vorigen Abbildungen in Cyan stets die Sender und in Grün die Empfänger dargestellt. Eine waagerechte
Regalanordnung wie in Abbildung 2.7 ist dann einfach zu handhaben: Der Abstand zu
den Empfängern ist mittels der Durchgangsbreite zu berechnen.
Liegt jedoch eine senkrechte Anordnung wie in 2.5 vor, wird dieses problematischer:
Als Sendern zählen die Knoten in einem gewissen Radius um k. Die Empfänger befinden
sich im gleichen und in anderen Regalen nach einer gewissen Distanz in der richtigen Richtung. Dies führt dazu, dass wenn man virtuelle Regalreihen betrachtet, man wieder an
die Ansicht aus Abbildung 2.7 herantritt. Der Abstand zwischen den virtuellen Regalreihen entspricht dann aber nicht dem Durchgang. Ebenso muss bei der Senderberechnung
der Regaldurchgang betrachtet werden. Daher wird nur eine Regalseite in einer beliebigen Richtung betrachtet. Durchschnittswerte der Knotenentfernungen sind notwendig, um
wieder mit dem Satz des Pythagoras zu argumentieren. Damit werden folgende Parameter
benötigt:
• r ist der Radius der Sendereichweite
• x ist die minimale Entfernung zu Knoten mit einer anderen Hopdistanz im gleichen
Regal. Der Faktor ist nur von Bedeutung einer senkrechten (siehe Abbildung 2.5)
oder schiefen (siehe Abbildung 2.6) Regalanordnung vorliegt. Der Parameter wird
als Hypothenuse bei der Berechnung der Sender eingesetzt.
Für die waagerechte Regalanordnung entspricht dies dem Parameter b der vorigen
Funktion.
• y ist bei einer senkrechten oder schiefen Anordnung die durchschnittliche Entfernung zu Knoten gleicher Hopdistanz. Für die waagerechte Anordnung ist sie
gleich Null, da die Verhältnisse von virtuellen und physikalischen Regalen in etwa übereinstimmen.
Daraus resultiert die Strecke für störende Nachbarknoten von:
1. Fall: s > b xr c
a) y = 0
r
Senderstrecke (r, x, y, s) = 2 · r +
bxc
X
i=1
4·
√
r 2 − x2
2 Aufgabenstellung
24
b) y > 0
Senderstrecke (r, x, y, s) = 2 ·
p
x2
y2
− +2·
p
= 2 · ( r2 − y 2
p
r2
−
y2
−
p
x2
−
y2
Abbildung 2.9: Streckenverhältnisse der senkrechten Regalanordnung
Die genutzten Summen über i sind für die Sender anderer Hopdistanzen, welche den
Sendevorgang stören können. Die angegebene durchschnittliche Entfernung gilt für
alle Knoten mit gleicher Hopdistanz. Dies ist eine Vereinfachung anstatt die Knoten
jedes physikalisch benachbarten Regals genau zu untersuchen. Daher stützen sich alle
Berechnungen auf Ausschnitte des Dreieck mit einer Kathete (= y) und Hypothenuse
(= r) (siehe Abbilung 2.9). Bei der Senderstrecke gleicher Hopdistanz wird die Hypothenuse durch die minimale Entfernung x ersetzt. Zählen alle Knoten im Sendebereich
zu den Sendern, so muss für die Strecke der anderen Hopdistanzen nur die Strecke der
gleichen Hopdistanz subtrahiert werden. Die Strecken werden mit 2 multipliziert, da die
Dreiecksberechnungen symmetrisch sind (in Richtung zum und vom Server entfernt).
2. Fall: s ≤ b xr c
a) y = 0
Senderstrecke (r, x, y, s) = 2 · r +
s
X
4·
√
r 2 − x2
i=1
b) y > 0
Senderstrecke (r, x, y, s) = 2 ·
p
x2
=2·
−
y2
+2·
q
2
((s + 1)x) −
y2
−
p
x2
−
y2
q
((s + 1)x)2 − y 2
Als Empfänger zählen alle Nachbarknoten mit geringerer Hopdistanz. Zum Empfangen
2 Aufgabenstellung
25
müssen diese jedoch wach sein und auf einem Kanal lauschen. Daher werden für die
waagerechte Anordnung nur Knoten der Regalreihen w näher zum Server betrachtet, die
zur Sendezeit von k ihre Empfangsphase haben. Bei anderen Regalanordnungen kann
die Empfängerstrecke mit Hilfe der Senderstrecke berechnet werden. In der Dreiecksberechnung für die Senderstrecke wird schließlich die minimale Strecke als Hypothenuse
genutzt, in welcher Knoten anderer Hopdistanz vertreten sind. :
1. Fall: w > b xr c
a) y = 0
r
Empfängerstrecke (r, x, y, w) =
bxc
X
2·
p
r2 − (ix)2
i=1
b) y > 0
Empfängerstrecke (r, x, y, w) =
p
r2 − y 2 −
p
x2 − y 2
2. Fall: w ≤ b xr c
a) y = 0
Empfängerstrecke (r, x, y, w) =
w
X
2·
p
r2 − (ix)2
i=1
b) y > 0
q
p
Empfängerstrecke (r, x, y, w) = ((w + 1)x)2 − y 2 − x2 − y 2
Anstatt der Fallunterscheidung kann für die Strecke jeweils die Summe bis zum Minimum
von b xr c und s oder w berechnet werden.
3. Verhältnis von Sendern zu Empfängern
Nimmt man obigen Berechnungen zusammen, ergibt sich ein Verhältnis von potentiellen
Sendern und potentiellen Empfängern von:
a) y = 0
Pmin(b xr c,w) √ 2
Empfängerstrecke
2 · r − x2
i=0
=
Pmin(b r c,s) √
Senderstrecke
2 · r + i=1 x 4 · r2 − x2
Pmin(b xr c,w) √ 2
r − x2
i=0
=
Pmin(b r c,s) √ 2
r + 2 · i=0 x
r − x2
2 Aufgabenstellung
26
b) y > 0
q
p
2
2
min
−
((w + 1)x) − y − x2 − y 2
Empfängerstrecke
q
=
p
Senderstrecke
2
2
2
2
2 · min
((s + 1)x) − y , r − y
p
r2
y2,
Beim lokalen Ansatz gilt w ≥ (0, 5 · s + 1). Schließlich sind alle Knoten, die beim lokalen
Ansatz wach sind entweder Sender oder Empfänger. Besitzen die Knoten keine eigene
Nachricht, so handelt es sich um Empfängern. Da aber der Kommunikationsfluss zum
Server betrachtet wird, zählen nur die Knoten mit geringerer Hopdistanz. Des Weiteren
müssen Sensorknoten mit Hopdistanz h − s − 2 wach sein, wenn welche mit Distanz
h − s − 1 senden. Ansonsten wären die Sendeversuche der Sensorknoten unnütz.
Lemma 2.2.4
Es ist zu erkennen, dass zur Bestimmung des Empfänger-Sender-Verhälntisses bei einer
senkrechten oder schiefen Regalanordnung es an wesentlich mehr Informationen bedarf.
Zudem wird der Fehler deutlich größer sein, da es sich nur um Durchschnittswerte von
Entfernungen handelt. Eine genauerer Analyse dieses Szenarios ist aber wesentlich umfangreicher und in dieser Diplomarbeit nicht zu bewältigen. Daher beschränke ich mich
bei den Beispielszenarien sowie der Untersuchungen auf eine senkrechte Regalanordnung.
Die Ergebnisse der Arbeit können bei allen Regalanordnungen eingesetzt werden. Zur Findung der Optimierungen des Protokolls ist es jedoch leichter, eine senkrechte Anordnung
vorauszusetzen.
Beispielszenarien
Nach eigenen Untersuchungen sind Regale in Supermärkten entweder dreißig Zentimeter
oder fünfzig Zentimeter tief, Einkaufswagen meistens zwischen vierzig und sechszig
Zentimetern breit. Regaldurchgänge in Supermärkten mit Einkaufwagen müssen gemäß
der Verkaufstättenrichtlinien in Österreich mindestens 1, 20 Meter breit sein (siehe [Ma
02, S.9]). Ein Referenzsupermarkt in Deutschland hatte eine Durchgangsbreite von 2, 10
Metern.
2 Aufgabenstellung
27
Abbildung 2.10: Regalproportionen
Betrachtet wird zum Vergleich eine “große“ und eine “kleine Konstruktion“. Im 1. Fall
ist der Durchgang 2, 10 Meter und die Regale sind fünfzig Zentimeter tief. Im Gegensatz dazu steht der 2. Fall mit 1, 20 Metern Durchgang und dreißig Zentimetern Regaltiefe.
1. Fall: Durchgangsbreite 2,10 m
Die Regaltiefe betrage fünfzig Zentimeter. Damit ergibt sich eine Gesamttiefe der
Regalreihe von 1 Meter.
Die Entfernung von einer Regalmitte zur nächsten beträgt 2, 10m + 0, 50m + 0, 50m =
3, 10m (= Parameter x). Damit die jeweils äußersten Sensorknoten miteinander kommunizieren können, benötigt man mindestens eine Sendereichweite von 4, 10 Metern. Die
Sendereichweite kann nicht so gut justiert werden, dass nur die nachfolgende Regalreihe
inkludiert ist. Mit Hilfe der regalweisen Synchronisation kann realisiert werden, dass
nur Knoten zweier benachbarter virtueller Regalreihen gleichzeitig wach sind. Damit
entspricht der Nenner dem Senderadius. Die Variable s wird auf Null gesetzt und w auf
Eins.
a) Der Senderadius r sei 4, 50 Meter.
p
p
Länge für potentielle Empfänger: 4, 502 m2 − 3, 102 m2 = 10, 64m2 = 3, 26m
Empfängerstrecke
3, 26m
=
= 0, 724
Senderlänge
4, 50m
Das heißt, etwa 72,4 Prozent der Sender sind als Empfänger erreichbar. Also knapp 3/4
der Sender sind als Empfänger vertreten.
2 Aufgabenstellung
28
b) Der Senderadius sei nun 4, 80 Meter.
p
p
Länge für potentielle Empfänger: 4, 802 m2 − 3, 102 m2 = 13, 43m2 = 3, 65m
Empfängerstrecke
3, 65m
=
= 0, 7604
Senderlänge
4, 80m
Etwa 76,0 Prozent der Sender sind als Empfänger erreichbar. Also gut 3/4 der Sender
sind als Empfänger in Sendereichweite.
Insgesamt kann man somit davon ausgehen, dass etwa 1/4 weniger Empfänger als
Sender zur Verfügung stehen. Bei n potentiellen Sendern sind dies 3/4 · n Empfänger.
Die Sendereichweite wird nicht variiert und so liegt stets ein gleichmäßiger Energievebrauch vor.
2. Fall: Durchgangsbreite 1, 20 Meter
Die Regaltiefe betrage nun dreißig Zentimeter, daraus resultiert eine Tiefe der Regalreihe
von sechzig Zentimetern.
Parameter x beträgt 1, 20m + 0, 30m + 0, 30m = 1, 80m. Damit die jeweils äußersten
Sensorknoten miteinander kommunizieren können, wird mindestens eine Sendereichweite
von 2, 40 Metern benötigt.
a) Der Senderadius sei 2, 50 Meter.
p
p
Länge für potentielle Empfänger: 2, 502 m2 − 1, 802 m2 = 3, 01m2 = 1, 73
Empfängerstrecke
1, 73m
=
= 0, 694
Senderlänge
2, 50m
Etwa 69,4 Prozent der Sender sind als Empfänger erreichbar. Dies entspricht etwas
weniger als 3/4.
b) Der Senderadius sei nun 3, 00 Meter.
p
p
Länge für potentielle Empfänger: 3, 002 m − 1, 802 m = 5, 76m2 = 2, 40m
Empfängerstrecke
2, 40m
=
= 0, 80
Senderlänge
3, 00m
Etwa 80 Prozent der Sender sind als Empfänger erreichbar. Damit wird das EmpfängerSender-Verhältnis von 3 : 4 etwas übertroffen.
2 Aufgabenstellung
29
Insgesamt kann man somit davon ausgehen, dass etwa 1/4 weniger Empfänger in
Reichweite sind als Sender.
Resultat aus beiden Fällen
Die Abschätzung n Sender und 3/4 · n Empfänger hat sich für beide Fälle herausgestellt.
Mit Sicherheit liegt ein gewisser Fehler in der Abschätzung vor allem wenn in Bezug
auf die Regalenden. Werden diese zusätzlich berücksichtigt, führt das kombinatorisch
zu noch mehr Fallunterscheidungen. Diese können aufgrund ihres Umfanges im Rahmen
einer Diplomarbeit nicht betrachtet werden. Zudem ist die Sendereichweite individuell
konfiguierbar und mit Hilfe der regalweisen Synchronisation kann diese Verhältnis
annähernd erreicht werden.
Für eine genaue Knotenanzahl in Reichweite ist natürlich die Artikelbreite entscheidend.
Ein gebildeter Durchschnittswert der Breite kann mit der Empfänger- und Senderlänge
eine Aussage treffen.
Beispiel 2.2.5
Haben die Artikel zum Beispiel eine Durschnittsbreite von 8 Zentimetern.
Für Fall 1b gilt dann:
Anzahl der Sender = 480/8 = 60, pro Regalrichtung. Damit 120 Sender im Senderadius.
Für die Empfänger bedeutet dieses 120 · 3/4 = 90.
Für Fall 2b gilt dann:
Anzahl der Sender = b300/8c = 37, pro Regalrichtung. Damit 74 Sender im Senderadius.
Die Anzahl der Empfänger beträgt resultierend b74 · 3/4c = 55.
Kapitel 3
Stand der Forschung
Dieses Kapitel gibt einen Überblick über entwickelte Routingverfahren. Zunächst wird
das 1 QK-Protokoll beschrieben, welches ich im Rahmen der Diplomarbeit optimiere.
Dieses Protokoll kann bei der vorausgesetzen Hardwarespezifikation (vgl. 2.1) eingesetzt
werden. Im Abschnitt 3.2 wird eine Auswahl bereits bestehender Verfahren vorgestellt.
Die Einsatzmöglichkeit jedes Verfahrens wird auf die gegebenen Problemdarstellung
untersucht.
3.1
Das 1 QK-Protokoll im Überblick
Das 1 QK-Protokoll wurde im Jahre 2004 an der Universität Paderborn in der Fachgruppe Meyer auf der Heide unter der Leitung von Dr. Christian Schindelhauer entwickelt
[Sch 04/04], [Sch 04-R02]. Es ist darauf spezialisiert, minimalen Speicher in Anspruch zu
nehmen:
Das Protokoll benötigt 128 Bytes =
1
8
Kilobyte RAM. Zur Verfügung stehen gemäß der
Hardwarespezifikation für das Routingprotokoll sowie der Applikation zur Sensordatenerfassung und -verarbeitung auf den Knoten 256 Byte. Aufgrund dieser Tatsache ist auch
der Name des Protokolls entstanden.1
Die Beschreibung des 1 QK-Protokolls ist gegliedert in mehrere Abschnitte:
Zunächst wird ein erster Überblick über die Funktionsweise und die Ideen des Protokolls
geliefert. In Abschnitt 3.1.2 wird das im Protokoll genutzte Maß für die Distanz zum
Server definiert und erklärt. Dieses Maß, die Expected Power Distance, ist vor allem
1
1Kilobyte = 1024 Byte. Es gilt
RAM benötigt.
1024
4
= 256. Somit wird ein Viertel(=1 Quarter) eines Kilobytes an
3 Stand der Forschung
31
für die uplink-Kommunikation von Bedeutung. Im Anschluss folgt eine Erläuterung
der Funktionsweise der uplink- und der downlink-Kommunikation. Abschnitt 3.1.5
liefert eine kurze Beschreibung weiterer Nachrichtentypen, die eine untergeordnete
Rolle im Protokoll spielen. Es folgt eine Strukturanalyse des Protokolls in Bezug zu
dem bekannten OSI-Referenzmodell (siehe 3.1.6). Abschließend werden die Probleme
und Schwachstellen des 1 QK-Protokolls beschrieben. Durch Feststellung der Probleme werden meine Ansätze zur Optimierung des Routings (siehe Kapitel 5 und 6) deutlich.
3.1.1
Ein erster Überblick
Das Protokoll arbeitet mit unsynchronisierten Knoten. Dieses wurde hauptsächlich so
verwirklicht, da zum Entwicklungszeitpunkt eine Synchronisierung nicht realisierbar war:
Die Applikation erzeugte einen zu starken Uhrendrift. Dieses Softwareproblem ist behoben worden.
Die Sensorknoten besitzen eine lokale und eine globale Identifikationsnummer (ID). Aufgrund der Speicherersparnis werden lokale IDs, genannt auch NetIDs, bei der Versendung
von Nachrichten eingesetzt. Sie sind vom Datentyp int. Für eine globale Unterscheidung
aller Sensorknoten genügen jedoch gegebenenfalls keine 655535 Identifikationsnummern
(1 int=2 Bytes)2 . Daher wird für die globale ID (GID) der Datentyp long verwendet (4
Bytes).
Abbildung 3.1: Verhalten in der Round-Time, Quelle:[Sch 03/04, S.12]
Das Protokoll besteht aus einem Zyklus, der für alle gleich lang ist und endlos durchlaufen wird. In dieser Round-Time befindet sich jeder Knoten zunächst in der Schlafphase
2
Eine ID wird als Konstante für Speicherungszwecke verwendet, wenn der Wert unbelegt ist. Konstante
heißt NO NODE
¯
3 Stand der Forschung
32
(in Abbildung 3.2: Zustand Idle Sleep). Nach einer zufälligen Wartezeit innerhalb der
Round-Time wacht jeder Knoten auf3 . Nach dem Erwachen eines Knotens überprüft er,
ob neue Sensordaten vorliegen (Abb. 3.2: Zustand Check for Sensor Data). Bei neuen
Daten wird eine Nachricht für den Server generiert. Diese wird so lange versendet, bis
der Sender eine Empfangsbestätigung (Acknowledgement) erhalten hat (Abb. 3.2: Zustand Send). In den meisten Fällen ist der Empfänger ein anderer Sensorknoten. Handelt
es sich um eine uplink-Nachricht und ist die Basisstation in Reichweite, kann auch die
Basisstation das Acknowledgement senden.
Abbildung 3.2: Zustandsübergänge, Quelle:[Sch 04/04, S.6]
Liegen zum Aufwachpunkt keine neuen Sensordaten vor, wird innerhalb einer gewissen
Zeitspanne4 nach einer fremden Nachricht gelauscht (Abb. 3.2: Zustand Listen, Abb.
3.1: treceive ). Falls eine empfangen wird und diese den Weiterleitungskriterien entspricht
(siehe Abschnitte 3.1.3, 3.1.4), schickt der Sensorknoten ein Acknowledgement zum
3
4
vergleiche Abbildung 3.1: Beginn von tactive
Zeit pro Frequenzbereich entspricht der Variablen Treceive
3 Stand der Forschung
33
Sender. Anschließend sendet er diese Nachricht weiter (Abb. 3.2: Zustand Send).
Wird keine Nachricht empfangen und liegen keine eigenen neuen Daten vor, wird ein
sogenanntes Beacon versendet (Abb. 3.2: Zustand Send, Abb. 3.1: tsendBeacon ). Ein
Beacon enthält Informationen über die Identifikationsnummer, die Distanz zum Server
(die so genannte Expected Power Distance, siehe Abschnitt 3.1.2) sowie der Round-Time
des Knotens.
Nach dem Erhalt einer uplink- oder downlink-Nachricht und vor Versenden des
Acknowledgements wird diese im Buffer zwischengespeichert. Der Buffer kann gleichzeitig
eine uplink- und eine downlink-Nachricht speichern. Zudem ist Speicherplatz für eine
Route vorhanden. Falls sich im Buffer beide Nachrichtentypen befinden, ist stets die
downlink-Route im Buffer. Diese ist nämlich weitaus wichtiger als die uplink-Route (siehe
dazu 3.1.4). Priorität bei der Weiterleitung der Nachrichten hat das uplink-Paket, da der
Server mit möglichst geringer Latenz die Informationen verarbeiten soll.
Abbildung 3.3: Aktivitätendiagramm zu Process Packet, Quelle:[Sch 03/04, S.10]
3 Stand der Forschung
34
Der Zustand Process Packet (siehe Abbildung 3.3) wird eingesetzt, um den korrekten
Nachrichtentyp der empfangenen Nachricht (uplink, downlink, Beacon . . . ) zu bearbeiten.
Die meisten Übergänge der internen Zustände führen in Send, um eine neue Nachricht
(meistens die Weiterleitung) zu verschicken. Wird hier eine andere Nachricht als ein Beacon versendet, erfolgt der Wechsel zu Blocked. Dieser Zustand realisiert eine kürzere
Schlafphase als Idle Sleep.
Idle Sleep impliziert nur dann eine Schlafphase, wenn der Knoten nichts zu tun hat.
Deshalb prüft er vor dem Schlafengehen, ob keine Nachricht im Buffer ist oder neue
Sensordaten vorliegen. Falls noch eine Aufgabe zu erledigen ist, wechselt der Knoten unverzüglich in den Zustand Check for new Sensor Data.
Abbildung 3.4: Das hidden terminal problem, Quelle:[Si,Ra 99, S.2]
Ein besonderer Aspekt des 1 QK-Protokolls ist, dass ein Sender das Übertragungsmedium
nicht reserviert, sondern Kollisionen in Kauf nimmt. Die Nachrichten werden einfach
gesendet, solange bis ein Acknowledgement empfangen wird. Diese Designentscheidung
resultiert aus der Nachrichtengröße (kleiner als 36 Bytes) und der damit verbundenen
geringen Übertragungsdauer. Das Verfahren ALOHA verfolgt zum Beispiel ebenfalls die
Strategie, dass Kollisionen nicht explizit vermieden werden [Ab 70], [Ro 75].
Die meisten anderen Kommunikationsprotokolle wie zum Beispiel PAMA oder MACA arbeiten mit einem Kanalzugangsprotokoll [Si,Ra 99], [Ka 90,S.134-140]. Als Ankündigung
und Nachfrage zum Versenden einer Nachricht wird ein “RequestToSend“(RTS) geschickt. Ist ein Knoten bereit die Nachricht entgegen zu nehmen, wird die Antwort
“ClearToSend“(CTS) gesendet. Erst nach dem Erhalt des CTS wird die eigentliche
Nachricht übertragen. Anhand dieser Methode werden Interferenzen durch gleichzeitiges
Senden mehrerer Knoten vermieden. Angemerkt sei allerdings, dass in diesen Protokollen
auch Probleme bei Überschneidungen und Überhören der RTS- und CTS-Nachrichten
existieren. Diese Schwierigkeiten, visualisiert in Abbildung 3.4, fallen unter den Begriff
3 Stand der Forschung
35
“hidden terminal problem“.5
3.1.2
Distanz zum Server - die Expected Power Distance
Um bei der uplink-Kommunikation zu entscheiden, ob eine empfangene Nachricht weitergeleitet wird, ist ein Maß für die Distanz zum Server notwendig. Schließlich sollen
Nachrichten auf möglichst direktem Wege zum Server gelangen.
Definition 3.1.1 Expected Power Distance
1. Der Server besitzt eine Expected Power Distance von Null.
2. Sei m die Länge des erhaltenen Beacons, p die Übertragungsstärke und T die Länge
der Round-Time. Die Expected Power Distance eines Sensorknotens u wird dann
definiert durch:
EPD(u) := m · p +
X EPD(v)
p·T
+
|A(u)|
|A(u)|
vA(u)
mit A(u) := {vV |EPD(v) < EPD(u) ∧ u kann v erreichen }.
Problematisch bei dieser Definition ist die Realisierung mit der gegebenen Hardware:
• Die gesamte Nachbarschaft kann aufgrund des geringen Speichers nicht erfasst werden.
• Der Micro-Controller unterstützt keine Hardwaremultiplikation und - division.
• Die Gleichung ist rekursiv.
Deswegen entstand eine etwas abgewandelte Realisierung der Expected Power Distance:
Algorithmus 3.1.2 Vereinfachte Expected Power Distance
Max-EPD sei initialisiert mit einem beliebigen Wert größer Null.
Initialisierung der EPD(u) und der Hilfsvariablen M (u) mit Max-EPD.
5
Für ausführliche Informationen zum hidden terminal problem wird auf [Si,Ra 99] verwiesen.
3 Stand der Forschung
36
Im Hintergrund:
u wacht einmal in der Round-Time T auf.
if u ein Beaconsignal von v empfängt:
XXXif EPD(v) < EPD(u) then
XXXXXXM (u) = Minimum{EPD(v) + m · p, Max-EPD}
XXXend-if
end-if
M (u) = Minimum{M (u) +
2p
, Max-EPD}
tsb
EPD(u) = (1 − α)EPD(u) + αM (u)
Mit tsb als die benötigte Zeit zur Versendung eines Beacons, m und p wie
oben sowie α ≈
tsb
.
T
Abbildung 3.5: Verlauf von Hilfsvariablen M und der EPD, Quelle:[Sch 03/04, S.17]
Die Expected Power Distance wird in jeder Wachphase verändert. Beim Eintritt in
den Zustand Process Packet läuft obiger Algorithmus ab. Zudem wird bei jedem
uplink-Sendeversuch die EPD um eine Konstante EPD MALUS erhöht. So steigt sie
¯
automatisch an, wenn eine Nachrichten von keinem Knoten mit geringerer EPD entgegen
genommen wird. Die Dynamik des Sensornetzes durch Ausfälle von Kommunikationswegen ist damit gut abgebildet. Nach Erhalt eines “näheren“ Beacons fällt die Expected
Power Distance nicht abrupt. Sie sinkt langsam, da M nur mit dem Faktor α für die
3 Stand der Forschung
37
Berechnung der EPD angenommen wird.
Beispiel 3.1.3
In Abbildung 3.5 ist Weiß der Server. Nur Grün (Knoten 1) und Cyan (Knoten
2) haben eine direkte Verbindung zu ihm. Daraus resultieren auch die EPDs von Blau
(Knoten 3) und Braun (Knoten 4).
M zeigt jeweils eine stark schwankende Kurve (im Zick-Zack-Verlauf ). Immer wenn der
Knoten ein entsprechendes Beacon erhält, fällt M rapide ab. Anschließend wächst M
solange an, bis ein weiteres “näheres“ Beacon empfangen wird.
Betrachte man die Kurve von M (1) genauer:
Zu den Zeitpunkten t1 und t2 empfing der Knoten jeweils ein Beacon der Zentralstation.
Bei t3 hingegen wird ein Beacon von Knoten 2 verarbeitet. M (1) fällt damit weniger
steil ab als bei den vorherigen Empfangszeitpunkten. Das Beacon von Knoten 2 wird
verarbeitet, da dieser Knoten eine niedrigere EPD zum Zeitpunkt t3 besitzt.
3.1.3
uplink-Kommunikation
Bei der uplink-Kommunikation werden Nachrichten von einem Sensorknoten zum Server
geleitet.
Definition 3.1.4 uplink-Nachricht
Eine uplink-Nachricht besteht aus:
• sender id: int;
¯
Die lokale ID des aktuell versendenden Knotens. Diese Information wird übertragen,
damit sie im Acknowledgement ebenfalls enthalten ist.
• packet id: byte;
¯
Die ID des Paketes wird mittels einer internen Variablen hochgezählt bzw. beim
Weiterleiten die ursprüngliche ID übernommen und im ACK übertragen. Mit der
Angabe der sender ID und der packet ID ist eine Verwechselung des ACK damit
¯
¯
ausgeschlossen. Schließlich wartet ein Sender immer auf das ACK seiner aktuell
versendeten Nachricht.
• EPD: int;
Die Expected Power Distance des aktuell versendenden Knotens.
3 Stand der Forschung
38
• origin GID: long;
¯
Globale ID des Knotens, welcher die Nachricht erzeugt hat. Sie dient dem Server
zur Identifizierung des Nachrichtenursprungs.
• application data : array [UP APPL LENGTH] of byte;
¯
¯
¯
Beinhaltet die Applikations-/Sensordaten für den Server.
Die
Konstante
UP APPL LENGTH ist obere Schranke für den Umfang der Applikationsdaten.
¯
¯
• route : array [ROUTELENGTH] of int;
Entspricht der bisher zurückgelegten Route. Die Route ist dabei beschränkt durch
die Routenlänge. Ist das Array vollständig gefüllt, werden beim Weiterleiten keine
Informationen mehr hinzugefügt. Die letzten Hops zum Server werden dann nicht
mehr dokumentiert.
Versendet ein Knoten eine uplink-Nachricht, wird diese auf einem gewählten Kanal
ausgestrahlt. Wurde innerhalb einer bestimmten Zeit kein Acknowledgement erhalten,
wird die Kanalnummer erhöht und ein neuer Sendeversuch gestartet. Dabei durchläuft
der Knoten eine bestimmte Anzahl von Kanälen rückwärts6 . Wird der Kanal Null
erreicht, war der Sendeversuch wahrscheinlich erfolglos.
Erhält ein Knoten eine uplink-Nachricht im Zustand Listen, wird in Process Packet
übergegangen. Dort folgt aufgrund des empfangenen Nachrichtentyps eine Weiterleitung
in den untergeordneten Zustand Process Uplink (vergleiche Abbildung 3.3). Der Sender
des Paketes wird in die Nachbarschaftsliste aufgenommen. Ist der gesamte Speicherplatz
belegt, wird ein zufälliges Element überschrieben.
Anschließend muss der Empfänger entscheiden, ob er die Nachricht weiterleitet. Das
erste Kriterium dabei ist, ob im Buffer bereits eine uplink-Nachricht existiert. Die
Entscheidung erfolgt mittels der boolschen Variablen B.up ready to send7 . Sie ist auf
¯
¯ ¯
jeden Fall mit true gesetzt, falls nach dem Aufwachen eigene Sensordaten vorhanden
waren. Andernfalls ist sie true, wenn noch eine “alte“ uplink-Nachricht verschickt werden
muss.
Ist B.up ready to send true, wird in den Zustand Send gewechselt, um einen Sendeversuch
¯
¯ ¯
für die uplink-Nachricht im Buffer zu starten. Ist die Variable auf false gesetzt, erfolgt
die zweite Überprüfung: Dabei wird die eigene EPD mit der EPD der Nachricht verglichen.
1. Fall:
Ist die eigene EPD größer, soll die Nachricht nicht weitergeleitet werden. Es erfolgt
6
7
Konstante NR OF CHANNELS, gesetzt in [Sch 04-R02] auf drei.
¯ ¯
Im Quellcode [Sch 04-R02] heißt die Variable B.uplink buffer full
¯
¯
3 Stand der Forschung
39
ein Übergang zu Blocked. In diesem Status beginnt nach einer Schlafphase erneut der
Zyklus mit dem Zustand Check for Sensor Data.
Abbildung 3.6: Prepare Uplink Packet From Buffer, Quelle:[Sch 03/04, S.19]
2. Fall:
Ist die eigene EPD geringer, so ist der Empfängerknoten näher zum Server. Der Empfänger
wird die Nachricht weiterleiten. Dazu speichert er die erhaltenen Daten im Buffer und
sendet ein Acknowledgement (Zustand Send ACK-Packet(up)). Dieses beinhaltet die
packet id, die ID des Senders und die eigene ID. Anschließend erfolgt das Umkehren der
¯
Belegung von B.up ready to send und ein Übergang in Send, um die uplink-Nachricht zu
¯
¯ ¯
versenden.
Beim Erstellen einer neuen Nachricht aus dem Buffer werden die meisten Inhalte direkt
übernommen (vgl. Abbildung 3.6). Bezüglich der Route der Nachricht gibt es ein besonderes Verfahren:
3 Stand der Forschung
40
Ist keine downlink-Route im Buffer abgespeichert, wird die Route der Nachricht schrittweise in den Buffer geladen. Dies wird fortgeführt bis kein Knoten mehr in der Route
enthalten ist oder die Arraykapazität nicht mehr ausreicht. Ist noch Kapazität nach dem
Einladevorgang frei, wird die eigene NetID an die letzte Position gefügt.
Bemerkung 3.1.5
Nehme an, dass Knoten A eine uplink-Nachricht versendet. Aufgrund von temporären
Störungen und Verzerrungen sei keiner seiner vorherigen Nachbarn mit geringerer EPD
erreichbar. Haben alle Empfänger seiner Nachricht eine höhere EPD, nimmt keiner die
Nachricht an. So sendet Knoten A solange bis seine EPD größer ist als die einer der
hörenden Knoten. Die EPD wächst schließlich mit jedem uplink-Sendeversuch an (Zustand Punish EPD). Damit wird die Chance bewahrt, dass ein Knoten seine Nachricht
erfolgreich versenden kann, auch wenn vorherige Kommunikationswege ausfallen.
Bemerkung 3.1.6
Ein Knoten sendet seine Nachricht solange, bis er das erste Acknowledgement erhalten
hat. Dies kann natürlich dazu führen, dass mehrere Empfänger die Nachricht gleichzeitig
abarbeiten. Nach dem ersten erhaltenen Acknowledgement oder nach Ablauf der vorgegebenen Sendezeit stoppt der Sender (zunächst) seine Sendeversuche.
Im Zustand Listen ist es möglich, dass ein ACK erhalten wird. Durch die angegebene
Sender ID der zugehörigen Nachricht kann der Knoten bestimmen, ob das ACK für ihn
¯
bestimmt war. Falls das ACK an ihn gerichtet war, vergleicht der Knoten die packet id
¯
des Acknowlegement mit den IDs im Buffer. Stimmen die packet ids überein, kann er die
¯
entsprechende Nachricht als erfolgreich versendet betrachten.
Eine Schwierigkeit ist darin zu sehen, dass ein Knoten nach einem für ihn erfolglosen Sendeversuch zwischenzeitlich im Status Blocked schläft. Das zugehörige ACK wird wahrscheinlich nicht solange gesendet, dass der Sender es im Zustand Listen hört. So erfährt
er nicht, dass sein vorheriger Sendeversuch bereits erfolgreich war.
3.1.4
downlink Kommunikation
Der Nachrichtenfluss geht vom Server zu einem Sensorknoten. Durch die Routen in den
erhaltenen uplink-Nachrichten besitzt der Server Informationen über Wege im Netz. Er
wählt eine Knotenfolge zum gewünschten Empfänger aus und speichert diese in der Nachricht. Aufgrund der Dynamik eines Sensornetzes ist diese Route aber nicht starr zu verfolgen, sondern wird als Anhaltspunkt für die Weiterleitung genommen.
Zunächst folgt die Definition der downlink-Nachricht, anschließend wird das genaue Sendeund Empfangsverhalten beschrieben.
3 Stand der Forschung
41
Definition 3.1.7 downlink-Nachricht
Eine downlink-Nachricht besteht aus:
• sender id: int;
¯
Die lokale ID des aktuell versendenden Knotens. Diese Information wird zur Integration im Acknowledgement übertragen.
• packet id: byte;
¯
Die ID des Paketes entspricht der ursprünglich vom Server generierten ID und ist
im ACK enthalten.
• target GID : long;
¯
Dient zur Identifizierung des Zielknotens. Entspricht die eigene globale ID dieser
Variablen, muss die Nachricht nicht mehr weitergeleitet werden. Stattdessen werden
die Applikationsdaten verarbeitet.
• new NetID : byte;
¯
Die NetID für den Zielknoten. Diese muss sich nicht von der aktuellen NetID des
Knotens unterscheiden. Jedoch ist mit Hilfe dieser Variablen eine Rekonfiguration
der NetID durch den Server möglich.
• application data : array [DOWN APPL LENGTH] of byte;
¯
¯
¯
Beinhaltet die Anweisungen des Servers für die Applikation des Zielknotens. Das Datenvolumen ist durch die Konstante DOWN APPL LENGTH beschränkt. Im Pro¯
¯
tokoll ist diese Konstante mit dem Wert sechs belegt.
• route : array [ROUTELENGTH] of int;
Wird vom Server gesetzt und soll als Anhaltspunkt für die Richtung des Routings
dienen. Die Länge der Route ist begrenzt durch die Konstante ROU T ELEN GT H.
Mit dieser Beschränkung wird auch eine Beschränkung für die Größe des Sensornetzes gegeben. ROU T ELEN GT H + 1 Hops ist die maximale Entfernung zwischen
dem Server und jedem Knoten.
Erhält ein Knoten eine downlink-Nachricht, wechselt er mit Hilfe des Zustandes Listen in Process Packet in Process Downlink (vergleiche Abbildung 3.3). Dort
wird zunächst mit der boolschen Variablen B.down ready to send8 überprüft, ob
¯
¯ ¯
bereits eine downlink-Nachricht im Buffer gespeichert ist. In einen solchem Fall wird in
den Zustand Blocked gewechselt. Ist die Variable false, wird geprüft, ob die Nachricht
für den Knoten selbst bestimmt ist. Dieser Test findet mit GID = Paket.target GID statt.
¯
8
Im Quellcode [Sch 04-R02] heißt die Variable B.downlink buffer full
¯
¯
3 Stand der Forschung
42
1. Fall: GID = Paket.target GID
¯
Die downlink-Nachricht wird in den Buffer geschrieben. Das Acknowledgement mit
eigener NetID, der NetID des Senders sowie der Paketnummer wird versendet. Anschließend werden die Daten des Arrays zur Applikation geschickt. Die boolsche Variable
B.already sent wird auf true gesetzt. Im Folgezustand Send besteht dann die Chance
¯
zum Versenden eines anderen Nachrichtentyps (uplink, Beacon . . . ).
2. Fall: GID <> Paket.target GID
¯
Die downlink-Nachricht ist nicht für den betrachteten Knoten bestimmt. Nun wird
überprüft, an welcher Position die eigene NetID in der Route der Nachricht steht. Ist
der Index nach dem Durchlaufen eines Arrays gleich 255, wurde keine Übereinstimmung
gefunden.
a) NetID in Route enthalten
Die eigene NetID stehe an Position k <> 255 der Route. Alle Arrayeinträge nach Index
k werden schrittweise als Route in den Buffer gespeichert. Eine vorhandene uplink-Route
wird in jedem Fall verworfen. Die Variablen B.route is up sowie B.route is down
¯ ¯
¯ ¯
werden entsprechend gesetzt. Im untergeordneten Zustand Buffer downlink message
werden die anderen Daten der Nachricht in den Buffer geladen. Der Knoten versendet
wie im ersten Fall das Acknowledgement und es erfolgt ein Übergang in Send.
Falls im Zustand Send keine uplink-Nachricht zum Versenden existiert, wird ein Sendeversuch für die downlink-Nachricht gestartet. Das Sendeverfahren sowie der Prozess
der Paketherstellung aus dem Buffer sind fast analog zur uplink-Kommunikation. Die
einzigen Unterschiede bestehen darin, dass die Kanäle aufsteigend durchlaufen werden
und die EPD pro Sendeversuch nicht verändert werden. Schließlich ist die EPD für
downlink-Nachrichten nicht von Belang.
Wurde innerhalb der vorgegebenen Zeit erfolgreich versendet, geht der Knoten in
Blocked. Andernfalls wird der erste Knoten der Route als Nachbar gelöscht. Die
Nachricht wird verworfen und die boolschen Prüfvariablen entsprechend gesetzt. Der
Folgezustand ist Check for new Sensor Data.
b) NetID nicht in Route enthalten
In der Route der erhaltenen Nachricht ist die eigene NetID nicht aufgeführt. Nun wird
die Route erneut durchlaufen und geprüft, ob die Route einen Knoten der eigenen
Nachbarschaft beinhaltet. Ist ein Nachbar in der Route unter Index k <> 255 abgelegt,
wird analog zu Fall a) verfahren. Andernfalls wird die Nachricht verworfen. Falls im
3 Stand der Forschung
43
Buffer eine uplink-Nachricht zum Senden bereitliegt, erfolgt der Übergang zum Status
Blocked. Liegt keine Nachricht vor, so wird in Idle Sleep gewechselt.
Bemerkung 3.1.8
Die downlink-Nachricht kann im Fall 2a) verworfen werden, falls ein vorheriger Nachbarknoten nicht mehr erreichbar ist. Schließlich kann der Knoten nicht davon ausgehen,
dass die Kommunikation nur temporär gestört ist. Wurde die Nachricht nicht gleichzeitig von mehreren Knoten bearbeitet, ist die Nachricht verloren gegangen. Der Server hat die Möglichkeit, dass er mittels der Applikationsdaten ein ACK vom Zielknoten
für die downlink-Nachricht anfordert. Dieses ACK wäre dann in einer uplink-Nachricht
“verpackt“. So existiert für den Server eine Kontrollmöglichkeit und er kann bei Bedarf
die Nachricht erneut schicken.
Bemerkung 3.1.9
Im Fall 2b) wird deutlich, dass die vorgegebene Route nur als Anhaltspunkt dient:
Die Nachricht wird auch von einem Empfänger weiterverarbeitet, der benachbart zu einem Knoten der gegebenen Route ist. So wird die Dynamik des Kommunikationsnetzes
berücksichtigt.
Zudem ist zu beachten, dass die unsynchronisierten Knoten zu einem beliebigen Zeitpunkt
in der Round-Time aufwachen. Da die Route nur als Anhaltspunkt dient, kann gegebenenfalls eine schnellere Weiterleitung erfolgen. Schließlich muss nicht gewartet werden
bis ein bestimmter Knoten erwacht (und empfangsbereit ist).
3.1.5
weitere Nachrichtentypen
In dem Diagramm von Process Packet (siehe Abbildung 3.3) ist zu erkennen, dass es
neben Beacons, uplink- und downlink-Nachrichten noch weitere Nachrichtentypen gibt.
Im 1 QK-Protokoll werden ebenfalls die Nachrichten Inquire, Dump und Reset definiert.
Der Einsatz dieser Typen steht nicht im Vordergrund des Protokolls. Deswegen folgen
hier nur zwei kurze Definitionen:
Definition 3.1.10 Dump und Inquire
Ein Dump ist die Antwort auf ein Inquire und beinhaltet die NetID und GID des gefragten
Knotens sowie seine Nachbarschaftsliste. Für die Zuordnung des Dumps auf das Inquire,
wird zudem die ID des Senders angegeben.
Ein Inquire kann mit unbestimmten Empfänger oder zu einem bestimmten Knoten gesendet werden. Die Knoten müssen aber direkt erreichbar sein, da keine Weiterleitung der
Nachricht erfolgt.
3 Stand der Forschung
44
Definition 3.1.11 Reset
Das Reset ist an alle Knoten oder einen Bestimmten gerichtet. Die Überprüfung erfolgt
mittels der GID. Nach Erhalt eines Resets wird der Sensorknoten neu initialisiert.
Auch hier erfolgt keine Weiterleitung der Nachricht durch das Protokoll. Die einzige
Möglichkeit besteht darin, dass die Applikation die Weiterleitung veranlasst und die Nachricht in Form eines Dumps oder einer downlink-Nachricht versendet.
3.1.6
Bezug zum ISO/OSI Modell
Die internationale Organisation für Standardisierung (ISO) hat das OSI Referenzmodell
(siehe Abbildung 3.7) als Methode zur genauen Beschreibung von Netzwerken entwickelt
[CR 00, S.8 f]. In dem Modell wird ein ideales Kommunikationsnetzwerk in sieben Ebenen
aufgeteilt. Bestimmte Funktionen zur Netzwerkkommunikation werden für jede Ebene
definiert.
Abbildung 3.7: Das OSI Referenzmodell, in Anlehnung an Quelle:[CR 00, S.9]
Zu der niedrigsten Ebene - 1 - Physical Layer - zählt das Kommunikationsmedium wie
zum Beispiel Fiberkabel oder der Luftraum bei einer drahtlosen Kommunikation. Die
”
meisten Netzwerke implementieren nicht alle Ebenen des Referenzmodells.“[CR 00, S.9].
Die Ebenen eins (Physical), zwei (Data Link) sowie sieben (Application) sind jedoch in
den meisten Netzwerken vertreten. In vielen Sensornetzen sind die Funktionen der übrigen
Ebenen in der siebten Schicht integriert. Mit der geforderten Hardwarespezifikation
(siehe 2.1) stehen nur 256 Byte zur Verfügung. Damit ist eine strenge Unterscheidung
nach dem OSI-Modell nicht möglich.
3 Stand der Forschung
45
Ich gebe zunächst eine kurze Beschreibung der Ebenen eins, zwei, drei sowie sieben. Dann analysiere ich die Schichten des 1 QK-Protokolls.
Ebene 1 - Physical Layer
Die physikalische Ebene bildet als tiefste Ebene des Modells den Grundstein. In ihr
sind Funktionen zur Konvertierung zwischen der symbolischen Datendarstellung von
Nachrichten und einer physikalischen Repräsentation für das Netzwerkmedium verankert.
Insgesamt werden in dieser Ebene die physikalischen Voraussetzungen für eine Kommunikation geschaffen.
Ebene 2 - Data Link Layer
Zum einen regelt diese Ebene den Zugang zum Netzwerkmedium (MAC, Medium
Access Control). Zum anderen strukturiert sie die Bits in wohl-definierte Gruppen,
“frames“ oder Nachrichten. Darüber hinaus sind in der Data Link Schicht noch weitere
Aufgaben spezifiziert: Die Identifikation von Quell- und Zielstationen im Netzwerk und
die Unterstützung einer fehlerfreien Nachrichtenübertragung.
IEEE 802.3 - auch bekannt als Ethernet - ist als Beispiel eines der zahlreichen Standard
Data Link Protokollen zu nennen.
Ebene 3 - Network Layer
Die Netzwerkebene umschließt Funktionen zugehörig zum Routing von Nachrichten.
Dazu zählt teilweise auch die Suche nach freien Kommunikationswegen. Typischerweise
werden dazu eigene Adressen (zum Beispiel IP-Adressen) eingesetzt.
Ebene 7 - Application Layer
Die Benutzung von Kommunikationsdiensten für die Benutzerapplikation wird in der
siebten Ebene unterstützt. Benutzer interagieren mit dem Netzwerk durch Funktionsund Dienstaufrufe der Applikationsebene. Sie senden oder erhalten Daten zum oder vom
Netzwerk durch alle Ebenen des OSI Modells.
Bezug zum 1 QK-Protokoll
Wie bereits zuvor angemerkt, ist es nicht möglich im 1 QK-Protokoll alle Ebenen des
OSI Modells zu unterscheiden. Im Protokoll werden der Physical und der Application
Layer verwendet [Sch 03/04, S.2]. Dies geht konform mit den meisten Protokollen für
Kommunikationsnetze. Die Data Link Ebene wird aus dem Grund nicht realisiert, da
das Protokoll keine Kollisionsvermeidung besitzt. So können fehlerhafte Übertragungen
3 Stand der Forschung
46
aufgrund von Interferenzen vorkommen.
Die Netzwerkschicht ist seltener eigenständig in Netzen vertreten, wird jedoch im
1 QK-Protokoll unterschieden. Der Routingmechanismus und die Weiterleitung von
Nachrichten bilden schließlich die Hauptaufgaben des Protokolls. Adressen werden
im eigentlichen Sinne im Protokoll nicht verwendet: Bei der uplink-Kommunikation
existieren keine ausgezeichneten Empfänger. Die Route in der downlink-Kommunikation
dient nur als Anhaltspunkt.
Abbildung 3.8: Schnittstellen der Ebenen, Quelle:[Sch 03/04, S.2]
In Abbildung 3.8 werden die Schnittstellen der Ebenen gezeigt. Neben den unterschiedlichen Schichten werden zudem die Interfaces zum Schlafmodus und zur Uhr dargestellt.
3 Stand der Forschung
47
Im Mittelpunkt steht die Netzwerkschicht. Sie tauscht sich mit der Applikationsebene
hauptsächlich bezüglich Daten der Sensorik oder der Anwendung aus. Sowohl die Applikationsebene als auch die Netzwerkschicht können den Schlafmodus des Sensorknotens
hervorrufen.
Mit Hilfe der Uhr kann die bereits vergangenen Zeit nach einem festgelegten Zeitpunkt
kontrolliert werden. Dieses wird nicht nur zum Erwachen, sondern auch bei den zeitbegrenzten Sendeversuchen eingesetzt. Des Weiteren generiert die Uhr eine beliebige Zahl
innerhalb eines Intervalls. Diese Zahl wird einerseits für eine randomisierte Schlafzeit
genutzt. Andererseits bedarf es einer probabilistischen Ersetzung eines Nachbarschaftsknotens bei Speicherplatzmangel.
Die Kommunikation zwischen physikalischer und Netzwerkebene beschränkt sich auf den
Austausch von Nachrichten vom/für das Netz. Dabei gibt die Netzwerkebene die Dauer
und den Frequenzbereich für den Sende-/Empfangsvorgang an.
3.1.7
Schwachstellen
Im Folgenden beschreibe ich die Schwachstellen des Protokolls [Sch 04-R02], [Sch 04/04]
und gebe Lösungsansätze für die Behebung.
Unsynchronität
Primär ist natürlich zu bemerken, dass eine Synchronisierung der Sensorknoten viel
Energie einsparen würde. Schließlich wird nur dann gesendet, wenn auch potentielle
Empfänger wach sind. Zudem bestände nicht die Möglichkeit ACKs zu überhören:
Wenn eine Nachricht gegen Ende der zulässigen Sendedauer empfangen wird, kann es
sein, dass der Sender sich während der Sendung des Acknowledgements in der Schlafphase
befindet oder in einem anderen Frequenzbereich sendet.
Die Anzahl der Duplikate wird dadurch erhöht und Energie für unnötiges Senden verschwendet. Bei synchronisierten Knoten würde das Überhören aufgrund der gleichzeitig
eintretenden Schlafphase und gleichzeitigem Kanalwechsel wegfallen.
Daher ist eine Synchronisierung vorteilhaft. Mit der jetzigen Applikationssoftware kann
die Uhrzeit für Synchronisierungszwecke gestellt werden, daher gehe ich in Kapitel 4 auf
einsetzbare Synchronisierungsmethoden ein.
Ausnutzung der Frequenzen
Zum Senden und Empfangen stehen den Knoten NR OF CHANNELS Frequenzbe¯ ¯
3 Stand der Forschung
48
reiche zur Verfügung. Der Wert dieser Konstante ist in [Sch 04-R02] auf drei gesetzt. Die
Kanäle werden von der Konstante bis Null (oder umgekehrt) durchlaufen und auf jedem
Kanal wird eine gewisse Zeit gesendet.
Da ich nun von einer Synchronisierung ausgehe, werden alle Knoten, die eine uplinkNachricht senden, es zur gleichen Zeit auf dem gleichen Kanal versuchen. Damit stören
sie sich bei jedem Sendeversuch gegenseitig. Der Durchsatz wird gleich Null, wenn
Knoten mit nicht disjunkten Reichweiten eine uplink-Nachricht senden. Die downlinkNachrichten werden in umgekehrter Reihenfolge auf den Frequenzbereichen ausgestrahlt.
So interferieren uplink- und downlink-Nachrichten auf dem zweiten Kanal.
Lösungsidee: Aufgrund des eher dichten Kommunikationsgraphen sollte auf jeden Fall
die Konstante einen höheren Wert zugewiesen bekommen. Zudem wäre es gut, wenn
die Knoten nicht die Frequenzbereiche hintereinander abarbeiten. Gesucht ist eine
Wahrscheinlichkeitsverteilung, mit der ein Kanal für das Senden oder Empfangen
gewählt wird. Mit der Synchronisierung und einer oberen Schranke für einen erfolgreichen
Sendeversuch geht dann kein ACK aufgrund eines Kanalwechsels verloren.
Ich habe mich entschieden diese Lösungsidee weiterzuverfolgen (siehe Kapitel 5).
Schließlich bedarf das Sendeverhalten auf jeden Fall einer Optimierung, wenn die
Knoten synchronisiert werden. Mittels einer guten Wahrscheinlichkeitsverteilung wird
der Nachrichtendurchsatz aufgrund von weniger Interferenzen deutlich erhöht.
Verhungern von Sensordaten
Knoten mit niedriger EPD werden oft in die Weiterleitung von uplink- oder downlinkNachrichten involviert. Daher kann es vorkommen, dass sie im Zustand Listen stets neue
Nachrichten empfangen. Liegen diesen Sensorknoten selbst jedes Mal eigene Daten vor,
so werden die anderen Nachrichten nie weiterverarbeitet. Damit entsteht ein Nachrichtenstau (siehe 6). Weit entfernte Nachrichten haben somit eine lange Bearbeitungszeit
bei einem hohen Nachrichtenvolumen.
Lösungsidee: Jeder Knoten sollte gegebenenfalls in einem ausgewogenem Verhältnis
andere Nachrichten vor den eigenen Daten bevorzugen. Auf diese Idee wird das Kapitel
6 aufgebaut und verschiedene Methoden werden untersucht. Es ist schließlich wichtig,
dass eine gewisse Fairness im Routing besteht. Zudem besitzt der Server bei einer
hohen Latenzzeit von Nachrichten weit entfernter Sender nie einen wirklich aktuellen
Warenbestand.
Asymmetrie
Probleme tauchen auf, falls Sensoren nicht symmetrisch senden und empfangen können.
3 Stand der Forschung
49
Dieser Unterschied wird im Protokoll nicht berücksichtigt, kann aber in der Realität
durch ungünstige Umwelteinflüsse auftreten.
Lösungsidee: Einführung einer neuen Variablen “reached“:
Bei Erhalt eines Beacon wird der Sender in der Nachbarschaftliste aufgenommen und der
reached-Wert auf false gesetzt. Erst wenn von diesem Knoten ein ACK erhalten wurde,
ist ganz sicher, dass die symmetrische Kommunikation momentan gewährleistet ist.
Ergänzend folgende Fallunterscheidung: Ist ein Wechsel zwischen Symmetrie und Asymmetrie häufig, dann sollte reached wie die EPD dynamisch ansteigen und keine boolsche
Variable sein. Der Einsatz einer boolschen Variable genügt, wenn ein Wechsel selten ist.
Duplikate
Da ein Sender immer so lange sendet, bis er ein ACK erhalten hat, besteht die Gefahr
von redundanten Nachrichtenkopien.
Lösungsidee: Erhält der Sender ein ACK, kann er ein weiteres Signal, ein zweites ACK,
versenden. In diesem zweiten ACK würde bekannt gegeben, welcher Knoten das Paket
weiterleitet. Der eine auserwählte Knoten leitet die Nachricht weiter. Alle anderen
Sensorknoten, die dieses Paket empfangen haben, können es verwerfen.
Diese Lösungsidee muss aber kritisch betrachtet werden. Schließlich erhöht sich dadurch
der Nachrichtenverkehr und die Abarbeitung verzögert sich. Vor dem Einsatz einer
solchen Lösung sollte daher das Aufwand-Nutzen-Verhältnis genauer betrachtet werden.
Anpassung der Round-Time
Die zu Beginn konfigurierte Round-Time wird immer beibehalten. Außerhalb der
Öffnungzeiten müssen die Sensorknoten eigentlich gar nicht erwachen. Die Knoten
verschwenden daher viel Energie.
Lösungsidee: Im Beacon ist die Round-Time eines Knotens enthalten. Nach Erhalt
eines Beacons übernimmt der Empfänger die Round-Time des Senders. So ist es dem
Server mit der Versendung eines geeigneten Beacons möglich die Round-Time aller
Sensorknoten zu verändern. Zum Beispiel könnte der Server nach Ladenschluss am
Samstag eine entsprechende Round-Time festlegen, so dass erst kurz vor der Öffnung
am Montag die Sensorknoten erwachen. Dies ist natürlich nicht nur beim Wochenende,
sondern auch für Feiertage und jeden Tag nach Ladenschluss einsetzbar. Mit Hilfe einer
solchen Anpassung wird eine weitere Energieeinsparung hervorgerufen.
Eine Erweiterung des Lösungsansatzes besteht darin, dass je nach Nachrichtenaufkommen
die Round-Time ebenfalls angepasst wird. Der Server überwacht dazu, wie viele Nachrichten ihn in der Round-Time erreichen. Sind es zu wenige, dann erhöht er die Round-Time:
3 Stand der Forschung
50
Im Laden herrscht wenig Betrieb und damit ein geringes Nachrichtenaufkommen.
Werden zu viele Nachrichten empfangen, so wird die Round-Time für alle Knoten
verlängert. Mit dieser Verlängerung verringert sich die Kollisionsanzahl und der Nachrichtendurchsatz erhöht sich.
Speicherersparnis
Das 1 QK-Protokoll benötigt etwa 128 Byte RAM-Speicher. Die anderen 128 Byte stehen
der Applikation zur Verfügung. Es kann sein, dass aufgrund der obigen Optimierungen
oder durch eine größere Applikation mehr RAM benötigt wird.
Lösungsidee: Daten können in den FLASH-Speicher ausgelagert werden. Diese sollten
sich aber nicht zu häufig ändern, da der FLASH-Speicher nur eine begrenzte Anzahl von
Überschreibungen unterstützt.
Für eine Sicherung im FLASH-Speicher sind zum Beispiel die genauen Angaben
der
Frequenzbereiche
geeignet.
Zur
Zeit
werden
sie
im
int-Array
FREQUENCY OF CHANNEL gespeichert.
¯ ¯
Eine weitere Möglichkeit besteht in der Auslagerung der Nachbarschaftsinformationen. In
einem Array im FLASH-Speicher könnten alle NetIDs von erfassten Nachbarn gesichert
werden. Um die Dynamik des Sensornetzes abzubilden, würde dann im RAM ein
0-1-Vektor angelegt. Anhand dieses Präsenzvektors könnte entschieden werden, ob der
entsprechende Nachbar in Reichweite ist oder nicht. Bei einer zwischenzeitigen Störung
würde das entsprechende Präsenzbit von Eins auf Null gesetzt. Ist der Knoten wieder
erreichbar, schaltet das Präsenzbit wieder um. Diese Auslagerung ist bei dem wenig zur
Verfügung stehenden Speicher ratsam.
3.2
Bestehende Routingverfahren
Im vorherigen Abschnitt wurde das 1 QK-Protokoll vorgestellt. Ich möchte darüber hinaus
einen ausgedehnteren Blick über den Stand der Forschung geben: Viele Routingverfahren
wurden bereits für Kommunikationsnetze und auch speziell für Sensornetze entwickelt.
Zunächst betrachte ich das Routing in mobilen Ad-hoc Netzen, um abzuschätzen, ob
gleiche Verfahren genutzt werden können. In den anschließenden Abschnitten werden
spezielle Protokolle für Sensornetze vorgestellt.
3 Stand der Forschung
3.2.1
51
Routingverfahren für mobile Ad-hoc Netze
Sensornetze haben viele gleiche Anforderungen bezüglich des Routings wie mobile Ad-hoc
Netze. Zunächst gehe ich kurz auf die Charakteristiken von mobilen Ad-hoc Netzen
ein. Anschließend werden die Anforderungen an Routingverfahren beschrieben. Dabei
erfolgt stets ein Bezug auf die Eigenschaften von Sensornetzen. Zum Schluss werden zwei
Routingansätze vorgestellt und es erfolgt eine insgesamte Beurteilung über den Einsatz
der Verfahren in Sensornetzen.
Charakteristische Eigenschaften von mobilen Ad-hoc Netzen
Mobilitätscharakteristiken für Knoten in Ad-hoc Netzen sind ein geringer Energievorrat,
wenig Ressourcen, eine dynamische Topologie sowie die problematische Adressierung [Ho
04, S.3f]. Bei drahtlosen Kanälen gilt es eine relativ hohen Fehlerrate, hohe Schwankungen
in der Qualität, der niedrigen Bandbreite, der Broadcast-Natur sowie Sicherheitsaspekte
zu bedenken (vergleiche [Ho 04, S.10]). Diese Charakteristika treffen auch teilweise auf
Sensornetze zu.
Betrachte man zunächst den Aspekt der Adressierung:
Die Vergabe von IP-Adressen kann zum Beispiel mittels eines Buddy-Systems erfolgen
[Ho 04, S.4]. Bezüglich der Adressierung besteht ein großer Unterschied zwischen Sensornetzen und den meisten anderen Kommunikationsnetzen [Mu 04, S.8f]. In Sensornetzen
wird meistens ein Broadcast an alle erreichbaren Knoten durchgeführt. Nachrichten haben
damit keinen ausgewählten Empfänger. Im Extremfall verfügen Sensorknoten über gar
”
keine Identifikation. Der Zugriff erfolgt dann über die Adressierung ihres Aufenthaltsortes
oder über den Typ und Inhalt der von ihnen lieferbaren Daten.“[Mu 04, S.8]
Das 1 QK-Protokoll beinhaltet zwar eine Identifikation mittels der NetID und der
globalen ID ein, beim Routing werden diese aber nur in der downlink-Kommunikation
als Anhaltspunkte eingesetzt [Sch 04-R02], [Sch 04/04].
Anzumerken ist, dass in den meisten Sensornetzen nur eine uplink-Kommunikation
benötigt wird. Die downlink-Kommunikation erfordert gerade im 1 QK-Protokoll den
Einsatz von NetIDs und globalen IDs.
Routinganforderungen
Zu den Anforderungen an das Routing in mobilen Ad-hoc Netzen zählen ein minimaler
Overhead für Kontrollfunktionen und für Prozessorleistung. Zudem soll die RoutingFunktionalität über mehrere Hops realisiert sein. Es bedarf der Verwaltung einer
dynamischen Topologie und eines autonomen, selbst-startenden Betriebes [Ho 04, S.4].
3 Stand der Forschung
52
Diese Anforderungen sind ebenfalls in Sensornetzen gegeben. Jedoch muss bei den
Routingverfahren für Ad-hoc Netzen betrachtet werden, ob die Voraussetzungen auch
mit den minimalen Ressourcen eines Sensorknotens in Einklang zu bringen sind. Zunächst
stelle ich zwei Verfahren für Routingprotokolle vor.
Routing mittels proaktiver Methode
Dieser Ansatz basiert auf den traditionellen Distance-Vector und Link-State Protokollen
und ist tabellenbasiert. Jeder Knoten verwaltet eine Route zu jedem anderen Knoten.
Ein Austausch der Routinginformationen erfolgt periodisch und/oder ereignisgesteuert.
Der Overhead im Vergleich zu dem im Anschluss vorgestellten reaktiven Verfahren ist
meistens höher. Folgende Protokolle verwenden den proaktiven Ansatz:
• Destination-Sequenced Distance-Vector Routing (DSDV);
siehe [Pe, Bh], [Ho 04, S.5f]
• Topology Broadcast Based on Reverse-Path Forwarding (TBRPF);
mehr Informationen in [Lu,Ko 03., S.9f]
• Optimized Link State Routing (OLSR);
beschrieben in [Lu,Ko 03., S.8f]
Beispiel 3.2.1 Destination-Sequenced Distance-Vector Routing
Beim DSDV bedarf es für die Beurteilung der Aktualität einer Abspeicherung von einer
Sequenznummer zu jeder Route. Zudem wird eine Routingtabelle für alle Knoten im Netz
in der Form
<Zielknoten Addresse, Zielknoten Sequenznummer, nächster Hop, Hopanzahl,
¯
¯
¯
Installierungszeit>
gesichert. Updates der Routinginformationen gibt es in drei Formen: Full, Incremental
und Routing. Full Updates enthalten die gesamte Routingtabelle und werden relativ selten
verschickt. Incremental Updates bestehen nur aus den Informationen, die sich nach dem
letzten Full Update geändert haben. Das Routing Update senden Knoten periodisch an ihre
Nachbarn. Zusätzlich zu diesen periodischen Aktualisierungen schicken Knoten Updates,
wenn sich gravierende Änderungen wie zum Beispiel der Ausfall eines Kommunikationsweges ereignet haben. Erhält ein Knoten von zwei verschiedenen Nachbarn zwei Routen
zum selben Betimmungsort, wählt der Knoten die Route mit der größten Sequenznummer.
Falls die Nummern gleich sind, wird die Route mit der kleinsten Hopanzahl übernommen.
3 Stand der Forschung
53
Bemerkung 3.2.2
Routingverfahren mit dem proaktiven Ansatz können in Sensornetzen nicht eingesetzt werden. Das Handling einer Routingtabelle ist aufgrund der geringen Speicherverfügbarkeit
und der Dichte von Sensornetzen nicht realisierbar. Mit den gegebenen Ressourcen scheidet ein tabellenbasiertes Routing somit im Vorhinein aus.
Routing mittels reaktiver Methode
Beim reaktiven Ansatz bauen die sendenden Knoten Routen on-demand auf. Knoten
verwalten stets nur aktive Routen. Der Overhead ist normalerweise durch Kontrollfunktionen kleiner als in der proaktiven Methode. Zudem skalieren diese Verfahren besser. Der
Nachteil in diesem Verfahren ist die Latenz bei der Routen-Berechnung.
Protokolle dieser Methode sind:
• Ad Hoc On-Demand Distance Vector Routing (AODV);
siehe [Pe, Ro 00], [Ho 04, S.8f], [Yu 05]
• Dynamic Source Routing (DSR);
eine Beschreibung ist in [Jo, Ma] sowie [We 04] zu finden
Beispiel 3.2.3 Ad Hoc On-Demand Distance Vector Routing
Da AODV aus DSDV enstanden ist, werden auch hier Sequenznummern als RouteAuffrischungskriterium und für die Loop-Prävention verwendet. Es unterstützt sowohl
Unicast- als auch Multicast-Kommunikation. Im Folgenden wird eine Routenanforderung
beschrieben (vergleiche Abbildung 3.9).
Benötigt ein Knoten S eine Route zu einem Bestimmungsort Z wird ein Route-Request
(RREQ) der Form
<Zielknoten Addresse, Zielknoten SequenzNummer, Senderknoten Addresse,
¯
¯
¯
Senderknoten SequenzNummer, Hopanzahl(=0)>
¯
an alle Nachbarn versendet.
Der einzige Nachbar von S ist in diesem Beispiel A. Knoten A überprüft, ob er eine Route
zum Zielknoten hat und die Sequenznummer größer als die des RREQ ist. Ist dieses nicht
der Fall, versendet A seinerseits ein RREQ. Zudem setzt A einen Eintrag für S in der
Reverse-Route (die entgegengesetzte Route) der Form
3 Stand der Forschung
54
Abbildung 3.9: Beispiel AODV, in Anlehnung an Quelle:[Ho, S.8f]
Zielknoten=S, Nächster Hop=S, Hopanzahl=1.
¯
Nach Erhalt des RREQ, setzt C ebenfalls einen Reverse-Route Eintrag mit
Zielknoten=S, Nächster Hop=A, Hopanzahl=2.
¯
Da C über eine direkte Verbindung zu Z verfügt, und diese Route eine höhere Sequenznummer besitzt, antwortet C mit einem Route-Reply (RREP). Dieses Route-Reply
empfängt A, setzt einen Eintrag in der Forward-Route für Z von
Zielknoten = Z, Nächster Hop=A, Hopanzahl=2.
¯
Anschließend wird das RREP an S weitergesendet, welcher einen ähnlichen Eintrag in
Forward-Route vornimmt. Nun sind allen Knoten auf dem Pfad beide Routenrichtungen
bekannt. S kann seine Datenpakete an Z versenden. Ebenso können problemlos Antworten
von Z nach S verschickt werden, da alle Knoten die Route in beiden Kommunikationsrichtungen kennen.
Bemerkung 3.2.4
Ein reaktiver Ansatz kommt sicherlich eher als die proaktive Methode für das Routing
in Sensornetzen in Frage. Der Einsatz in Sensornetzen ist jedoch nicht sonderlich effizient, wenn nur kleine Datenmengen innerhalb eines Paketes zum Server gesendet werden.
Variieren die Empfänger oder bestehen die Nachrichten aus mehreren Paketen ist diese
3 Stand der Forschung
55
Methode sicherlich gut: Aufgrund der Störanfalligkeit beim Senden müssen daher bei einem Fehler nur kleine Pakete wiederholt werden.
Im Sensornetz sind die Nachrichten von Knoten fast immer an den Server gerichtet.
Meistens werden lediglich Informationen für die Nachbarschaftsaktualisierung (die Beacons) mit anderen Knoten ausgetauscht. Zudem ist der Aufbau einer festen Route sehr
umständlich, wenn nicht viele Datenpakete übertragen werden müssen. Im 1 QK-Protokoll
sind alle Daten in einer kleinen uplink-Nachricht enthalten. Dies ist vor allem wesentlich
effizienter, wenn viele Knoten Nachrichten senden.
Des Weiteren zeichnet sich ein Sensornetz meistens durch eine hohe Dichte aus. Zudem
können mehrere Knoten mit dem Server direkt kommunizieren. Dies führt beim reaktiven
Ansatz dazu, dass es zahlreiche verschiedene Routen gibt. Bei einem RREQ versuchen
viele Knoten eine geeignete Route zu finden. Dies ruft natürlich ein hohes Nachrichtenaufkommen hervor. Die gleichzeitigen RREQ Anfragen können zudem gegenseitige Interferenzen hervorrufen.
Reaktive Methoden empfehlen sich nicht für Sensornetzen mit geringem übertragenen Datenvolumen und hoher Dichte. Allerdings wurde ein reaktiver Ansatz auch für ein Routingprotokoll speziell für Sensornetze entwickelt. Dieses Protokoll stelle ich in 3.2.2 vor
[Aw,Ho 04].
Resumee
Identische Routingprotokolle für Sensornetze und mobile Ad-hoc-Netze sind kritisch
zu betrachten. Beide Netze basieren zwar auf einer Multi-Hop Kommunikation, die
unterschiedlichen Anforderungen bezüglich Adressierung und der Nutzung des Speichers
können jedoch gravierend auseinandergehen.
Als Charakteristik für Mobiliät wird ein geringer Energievorrat genannt. Trotzdem muss
die Energieeffizienz für Sensornetze bedeutend ausgeprägter sein als die Effizienz für
Netze mit Laptops. Die weitere Anforderung über einen geringen Nachrichtenoverhead
und -aufwand wird bei jedem Netzwerk gewünscht.
Mit der speziellen Hardwarespezifikation der Diplomarbeit (siehe 2.1) ist zudem Speicher
eine sehr knappe Ressource. Damit scheidet ein tabellenbasiertes Routingverfahren
glänzlich aus. Aber auch die reaktive Methode ist für einen Einsatz nur bedingt geeignet.
Die speziellen Anforderungen in Sensornetzen erfordern somit eigene Routingprotokolle.
Eine Auswahl von entwickelten Verfahren wird in den folgenden Abschnitten gegeben.
Weitere Informationen und Beispiele zu den hier vorgestellten Routingansätzen sind in
[Ho 04, S.4f], [Yu 05, S.9 f] und [Wi 04] zu finden.
3 Stand der Forschung
3.2.2
56
Das Pulse Protokoll
Im Pulse Protokoll [Aw,Ru 04], [Aw,Ho 04] werden zum ersten Mal Routing und Synchronisation vereint. Das Protokoll dient der so genannten “viele-zu-einem-Kommunikation“
(viele Knoten senden zu einem Server). Periodisch wird eine Nachricht durch das Netz
geflutet und gleicht dabei einem Puls. Diese Nachrichtenflut (Flooding) wird initialisiert
vom Server und bildet einen Spannbaum innerhalb des Netzes. Anhand des Pulses wird
jeder Knoten mit der besten Route zum Server sowie Informationen über die Uhrzeit aktualisiert.
Jeder Sensorknoten merkt sich alleine den Knoten, welcher ihm die geflutete Nachricht
übermittelt hat und die geringste Metrik besitzt. Falls ein Sensorknoten Nachrichten senden oder empfangen möchte, wird als Antwort auf die Flutung eine Reservierungsnachricht
gesendet. In dem zum Server weitergeleiteten Reservierungspaket ist die Adresse des Ursprungsknotens enthalten. Zudem wird in der Nachricht der genutzte Pfad zum Server
dokumentiert. Damit stehen dem Server Informationen über Knotenwege zur Verfügung.
Der genutzte Reservierungsmechanismus ist analog zu Route-Response in AODV (siehe
Abschnitt 3.2 sowie [Pe, Ro 00], [Ho 04, S.8f]).
Eine Reservierungsnachricht ist natürlich unnötig zum Server zu senden, wenn keine Kommunikation mit dem Server gewünscht ist. Besteht während des Floodings noch eine Kommunikation mit dem Server, muss der Senderknoten diese Route erneut aufbauen. Knoten,
die nicht in den Transport von einem Reservierungspaket involviert werden, können bis
zum nächsten Flooding schlafen. Dadurch wird die Energieeffizienz im Pulse Protokoll
erreicht. Ebenso ist der Speicherverbrauch für das Routing sehr gering. Schließlich wird
nur der Knoten mit der geringsten Metrik als Kommunikationspartner abgespeichert.
Bemerkung 3.2.5
Wie bereits in der Bemerkung zum reaktiven Ansatz (siehe 3.2.4) hervorgehoben, ist dieses Verfahren gut, wenn große Datenmengen unterteilt in mehreren Pakete transportiert
werden. Da im Szenario für die Diplomarbeit aber das zum Server übertragen Datenvolumen eines jeden Knotens nur sehr gering ist (etwa 36 Byte), lohnt sich ein vorheriger
Routenaufbau für eine Kommunikation nicht.
3.2.3
Data Collection Protokoll
Das Data Collection Protokoll (DCP) [Ha,Gr 04], [Sen 05] involviert, dass vor der Nachrichtenweiterleitung Daten gesammelt und gepackt losgeschickt werden. Zur Realisierung
des Routings schließen sich benachbarte Knoten zu einem Cluster zusammen. Bei diesem
so genannten Clustering koordinieren die Knoten die Datenerfassung und -verarbeitung
3 Stand der Forschung
57
auf lokaler Ebene. Ein Knoten des Zusammenschlusses, der Clusterkopf, übernimmt eine
besondere Rolle: Er sammelt die Daten und überträgt sie zum Server.
Nun gibt es zwei Ansätze für die Übertragung zwischen Clusterköpfen und dem Server
[Sen 05]:
Eine direkte Kommunikation zwischen diesen Teilnehmern wird in dem LEACH-Protokoll
Low-Energy Adaptive Clustering Hierarchy verfolgt. Für weitere Informationen
zum LEACH-Protokoll wird auf [He,Ba 00], [He,Ch 00] sowie [Yu 05, S.8 f] verwiesen. Da
im Szenario der Arbeit keine direkte sondern eine Multi-Hop Kommunikation stattfinden
soll, verweise ich an dieser Stelle nur kurz auf diese Lösung.
Die Nachrichtenübertragung vom Clusterkopf zum Server kann aber auch mit Hilfe von
Mulit-Hops erfolgen (Clustered-Multihop-Transmission) [Ha,Gr 04]. Eine solche Kombination von Multihop-Übertragung und dem Clustering-Ansatz wird im Data Collection
Protokoll realisiert. Deswegen folgt eine genauere Betrachtung der Clusterorganisation
und des lokalen Routingverhaltens.
DCP ist aufzuteilen in zwei Phasen:
Zunächst wird im Setup das Netzwerk formiert. Dabei erkunden und demonstrieren die
Sensorknoten und der Server ihre Nachbarschaft (zum Beispiel mit Hilfe von Beacons).
Beim Abschluss der Setup-Phase wissen alle Knoten in der Nähe des Servers, dass sie
direkt mit diesem kommunizieren können. Alle anderen Knoten (Clustermitglieder)
kennen “ihren“ Clusterkopf, zu welchem sie ihre erfassten Daten schicken. Die Adresse
dieses Knotens wird Packet Forward Address (PFA) genannt.
Es folgt die zweite Phase, der “Dauerzustand“. In diesem Zustand werden die Nachrichten
zum Server geleitet. Doch die Bezeichnung Dauerzustand ist irrtümlich: Aufgrund der
Dynamik der Kommunikationswege muss die Setup-Phase immer wieder aufgerufen
werden. Die Häufigkeit des Phasenwechsels hängt natürlich von der Häufigkeit von
Ausfällen und Topologieänderungen ab.
Das Netz ist damit untergliedert in mehrere Cluster, die aus einem Clusterkopf und
mindestens einem Clustermitglied bestehen. Wie bereits oben erwähnt, sammeln die
Clusterköpfe die Daten der Clustermitglieder und leiten diese zum Server weiter. Die
Wahl eines geeigneten Clusterkopfes ist nicht trivial: Zum Beispiel muss der ausgewählte
Knoten über genügend Energie verfügen. Die Datenaggregation sowie das Routing
verbrauchen schließlich Energieressourcen. Um den Energieverbrauch innerhalb des
Clusters möglichst klein zu halten, sollte der Clusterkopf sich in der Mitte des Clusters
befinden.
Ein Knoten kann mehrere PFA zugewiesen bekommen. Dies erhöht die Robustheit und
die Energieeffizienz des Protokolls. Hat ein Knoten mit mehreren PFAs eine Nachricht
zu versenden, schickt er diese an den Clusterkopf mit der geringsten Distanz.
3 Stand der Forschung
58
Bemerkung 3.2.6
Die clusterbasierte Datensammlung ist sicherlich ein enormer Vorteil gegebenüber der einzelnen Datenweiterleitung. Das globale Nachrichtenaufkommen wird drastisch reduziert.
Erfassen die Sensordaten mittelbare Werte wie zum Beispiel die Temperatur, kann der
Clusterkopf eine Durchschnittstemperatur anstatt die Sammlung aller Temperaturen in
seiner uplink-Nachricht versenden. Die Nachrichtengröße wird damit wahrscheinlich deutlich verringert.
Jedoch ist eine Datensammlung mit der gegebenen Hardwarspezifikation der Diplomarbeit
nicht möglich. Die Beschränkung des RAMs auf 256 Byte lässt keine Datensammlung zu.
Für weitere Informationen verweise ich auf [Ha,Gr 04] und [Sen 05]. [Ha,Gr 04] beschreibt
zwar das DCP für Sensorknoten mit Bluetooth, die generelle Funktionsweise des DCP
Protokolls wird darin jedoch deutlich.
3.2.4
Direct Diffusion
Im Ansatz von Direct Diffusion [In,Go 00], [Go 05] steht die Datenübertragung bestimmter
Daten im Mittelpunkt (Diffusion=Verbreitung). Die Auswahl einer Route wird in der
Applikationsebene getroffen.
Ein Knoten bekundet sein Interesse in gewissen Daten. In einer solchen interest-Nachricht
wird das Ereignis genau beschrieben, über welches der Knoten Informationen erhalten
möchte. Die Ereignisbeschreibung erfolgt durch so genannte Attribut-Wert-Paare (siehe
Abbildung 3.10). Der Sender der interest-Nachricht wird mit Sink bezeichnet.
Abbildung 3.10: Attribut-Wert-Paare, Quelle:[In,Go 00, S.3]
Der Typ in den Attribut-Wert-Paaren gibt an, welche Daten erfasst werden sollen. Die
Intervallangabe ist die Zeitspanne, in welcher neue Daten zum Sink gesendet werden.
Da dies nur eine zeitlich begrenzte Aufgabe sein soll, bedarf es der Angabe der Dauer
der Datenerfassung (in duration). Neben der zeitlichen gibt es auch eine räumliche
Beschränkung: Ausschließlich Sensorknoten, die sich in einer gewissen Entfernung zum
3 Stand der Forschung
59
Sink befinden, sollen den Sensing-Task durchführen.
Abbildung 3.11: Periodische interest-Nachricht eines sinks, Quelle:[In,Go 00, S.4]
Damit der Sink sein Interesse laufend bekundet, sendet er für alle aktiven Tasks
eine interest-Nachricht an seine Nachbarn (siehe Abbildung 3.11). In dieser wird der
Timestamp automatisch erhöht.
Jeder Knoten verfügt über einen Speicher für aktuell bestehende Interessensanfragen.
Dabei werden nur wirklich unterschiedliche Interessen gesichert. Zwei Interessensanfragen
gelten als unterschiedlich, wenn der type, das interval oder das rect nicht übereinstimmen.
Im Interessenspeicher werden keine Sinks abgelegt. Da nur aktive Interessen gespeichert
werden, skaliert dieser Ansatz gut.
Nach Erhalt einer interest-Nachricht überprüft der Knoten, ob diese Anfrage bereits
im Speicher enthalten ist. Zudem setzt er einen Verweis (genannt Gradient) auf den
anfragenden Knoten. Existiert bereits ein Eintrag mit Gradient, werden nur die Attribute
timestamp und duration aktualisiert. Im Gradienten werden zudem die Datenrate und
die Richtung für die Datenweiterleitung festgehalten.
Kann er die Daten selbst nicht liefern, sendet er die interest-Nachricht an seine Nachbarn weiter. Bei dem Weiterleiten kann der Knoten sich für einen weiteren Broadcast
entscheiden. Dieses entspricht dem Flooding. Falls dem Knoten keinerlei Informationen
zur Verfügung stehen, welcher Sensorknoten den Sensing-Task erfüllen kann, ist der
Re-Broadcast die einzige Möglichkeit. Liegen derartige Informationen vor, kann er die
Nachricht nur an Knoten “in der richtigen Richtung“ weiterleiten. Für die Nachbarn ist
der weiterleitende Knoten der Sink. Dieses heißt lokale Interaktion. Falls ein Knoten bereits Daten von einer Quelle zum Sink leitet, sendet er eine interest-Nachricht nicht weiter.
Erhält ein Knoten eine interest-Nachricht, dessen Daten er liefern kann und er sich in der
geforderten Region befindet, wird dieser zur Datenquelle. Er startet mit der gewünschten
Sensordatenerfassung und sendet zunächst einmal Daten an alle seine benachbarten
Gradienten. Diese Daten dienen der Erforschung des günstigsten Pfades: Mit Hilfe der
3 Stand der Forschung
60
Weiterleitung zu allen Gradienten eines involvierten Knotens wird die “erforschende
Nachricht“ zum Sink weitergeleitet. Dieser antwortet mit einer Bestätigungsnachricht
(reinforcement-Message) dem ersten Knoten, von dem er die Nachricht erhalten hat.
Diese Bestätigungsnachricht wird zur Quelle geleitet. So entsteht der Kommunikationspfad (vergleiche Abbildung 3.12) und die Quelle sendet im gewünschten Intervall die
Daten zum Sink. Zusätzlich verschickt die Quelle periodisch die erforschende Nachricht
an alle verzeichneten Gradienten. Jedoch werden Gradienten nur eine beschränkte Zeit
gespeichert, auch wenn neue Interessen angekommen sind.
Abbildung 3.12: Ablauf von Direct-Diffusion, Quelle:[In,Go 00, S.4]
Bestehen zu einem Interesse mehrere Sinks, erhalten alle eine erforschende-Nachricht.
Für jeden Sink besteht ein Pfad zur Quelle. Dieser Pfad kann mit Pfaden anderer Sinks
übereinstimmen. Für das Nachrichtenaufkommen ist es sogar besonders gut, wenn Pfade
von mehreren Sinks gemeinsam genutzt werden. Schließlich wird dann für mehrere Sinks
nur eine Nachricht produziert. Erst wenn sich die Wege trennen, entstehen mehrere
Nachrichten, so dass auch jeder Sink informiert wird.
Direct Diffusion nutzt einen Interessenspeicher, um Flooding zu vermeiden. So
werden Nachrichten nur einmal wiederholt. Es wird meistens ein guter Pfad mit kurzer
Verzögerungszeit zwischen Quelle und Sink gefunden. Die periodische Wiederholung der
interest- und der erforschenden-Nachrichten sind wichtig, um die Dynamik im Netz zu
unterstützen. Fehlerhafte Kommunikationspfade zwischen Quelle und Sink können damit
repariert werden.
Bemerkung 3.2.7
Direct Diffusion ist sicherlich eine Verbesserung eines reinen Flooding-Protokolls. Die
3 Stand der Forschung
61
Nachrichtenflut wird reduziert. Falls Daten nur einmal zwischen zwei Knoten versendet
werden, sollten diese in der erforschenden-Nachricht enthalten sein. Dann müsste der
Sink keine Bestätigungsnachricht versenden. Dieses Verfahren entspricht dann aber genau dem Flooding, da die interest-Nachricht meistens mittels Broadcast an alle Nachbarn
geflutet wird.
Das zugrunde gelegte Modell bei Direct Diffusion kann kaum auf das Szenario der Diplomarbeit übertragen werden. Der Sink ist stets der Server, die Quellen sind alle Sensorknoten. Der Server ist allerdings nur an Nachrichten interessiert, wenn ein Ereignis beim
Sensorknoten aufgetreten ist (die Änderung des Warenbestandes). Um zudem Informationen von allen Knoten zu erhalten, müsste der Server eine interest-Nachricht pro Knoten
stellen.
Interessant ist der Ansatz von Direct Diffusion sicherlich für Sensornetze mit Kommunikation zwischen Sensorknoten oder mit verschiedenen Servern. Gut einzusetzen ist das
Protokoll, wenn unterschiedliche Quellen periodisch Daten an einen oder mehrere Knoten
liefern sollen.
3.2.5
Insgesamte Beurteilung der Routingverfahren
Anhand der bereits gegebenen Bemerkungen ist zu sehen, dass kein in 3.2 vorgestelltes
Verfahren auf die Gegebenheiten des Szenarios besser angepasst ist als das 1 QK-Protokoll.
Alle Protokolle können nicht das geringe Datenvolumen der Nachrichten ausnutzen. Aufgrund der Größe ist es effizienter die Nachricht gleich zu versenden, anstatt zunächst eine
Route aufzubauen. Die tabellenbasierten Routingalgorithmen fallen natürlich aufgrund
des geringen RAM-Speichers aus.
Es ist also festzuhalten, dass das 1 QK-Protokoll für eine unabhängige downlink- und
uplink-Kommunikation mit kleiner Nachrichtengröße am besten geeignet ist. Die anderen
Routingverfahren sind sicherlich bei einem höheren Datenvolumen oder für eine Kommunikation unter den Sensorknoten effektiver einzusetzen.
Kapitel 4
Synchronisation
Im 1 QK-Protokoll wurde mit unsynchronisierten Knoten gearbeitet. Für meine Weiterentwicklungen des Protokolls setze ich eine Synchronisierung voraus. Daher stelle ich in
diesem Kapitel einige Synchronisierungsmethoden vor.
Zunächst erfolgt eine Beurteilung, ob klassische Synchronisationsalgorithmen in Sensornetzen eingesetzt werden können (siehe 4.1). Speziell für die Synchronisierung von
Sensorknoten wurden bereits einige Verfahren entwickelt. In Abschnitt 4.2 wird die
Beschreibung von drei bekannten Verfahren sowie eine Beurteilung über die zu nutzende
Methode abgegeben. Gegenüber der alleinigen Synchronisation der Uhren könnte zudem
der Aufwachpunkt der Knoten abhängig von ihrer Position (“regalweise“) koordiniert
werden. Daher bildet den Abschluss dieses Kapitels eine Untersuchung, ob ein globaler
oder lokaler synchroner Aufwachpunkt der Sensorknoten einen höheren Nachrichtendurchsatz ermöglicht (siehe 4.3).
4.1
Einsatz klassischer Synchronisierungsalgorithmen in Sensornetzen
Eine einmalige Uhrensynchronisierung der Knoten ist keine dauerhafte Synchronisation.
Zur Dauerhaftigkeit bedarf es einer stetigen Korrektur des Uhrendrifts [Rö 04].
Klassische Synchronisierungsalgorithmen wurden für traditionelle verteilte Systeme
entwickelt, in denen die Energieeffizienz keine Rolle spielte [Kr 03, S.3f] und keine
dynamischen Kommunikationsverbindungen betrachtet wurden [Rö 04]. Beim Design
der klassischen Algorithmen wurde davon ausgegangen, dass das Netzwerk ohne
Einschränkungen benutzt werden kann. Ebenso war der Einsatz des Prozessors uneinge-
4 Synchronisation
63
schränkt. Diese Argumente führen dazu, dass klassische Zeitsynchronisationsalgorithmen,
wie zum Beispiel das im Internet eingesetzte Network Time Protokoll (NTP) (siehe [Bü
93]), in Sensornetzen nicht eingesetzt werden sollten [Ya 05].
Für eine Zeitsynchronisierung in Sensornetzen ist eine hohe Präzision erforderlich.
“Wegen der engen Kopplung der Sensornetze an die Realität sollte die Synchronisation
sehr genau sein. Nur so kann die Beobachtung hinreichend wirklichkeitsgetreu gemacht
werden. Um ein Objekt anhand von Laufzeitunterschieden akustischer Signale zentimetergenau zu orten, ist bereits eine Präzision im µs-Bereich nötig.“ [Kr 03, S.2]
Die Genauigkeit eines Verfahrens hängt von der Häufigkeit der Synchronisierung ab. Eine
häufige Synchronisation impliziert allerdings einen hohen Energieverbrauch.
Selbst wenn ein Protokoll wie NTP trotz des hohen Energieverbrauches eingesetzt werden
könnte1 , würde die Präzision nicht ausreichen. Dies ist ein zusätzlicher Grund dafür, dass
keine klassischen Algorithmen in Sensornetzen realisiert werden sollten.
Weitere Anforderungen für Synchronisationsalgorithmen für Sensornetze sind aufgrund ihrer Dichte die Skalierbarkeit sowie Robustheit [Kr 03, S.2]. Über diese Punkte
hinaus gilt es noch einer Betrachtung der Kosten und Größe der Hardware: Sensorknoten
sollen möglichst preiswert produziert werden. Bei einem Entwurf eines Algorithmus muss
daher auch die Hardwareausstattung und Größe des Knotens betrachtet werden. Es ist
zum Beispiel unmöglich eine Synchronisation zu erreichen, indem jeder Knoten mit einer
Atomuhr ausgestattet wird [Kr 03, S.2].
4.2
Synchronisationsverfahren für Sensornetze
Da klassische Algorithmen keinen praktikablen Einsatz in Sensornetzen versprechen,
wurden eigene Synchronisationsverfahren entwickelt. Ich stelle hier in chronologischer
Entwicklungsreihenfolge drei bekannte Algorithmen vor. Im Anschluss erfolgt die Bewertung der Verfahren für den Einsatz der gegebenen Voraussetzungen der Diplomarbeit.
Der Vollständigkeit halber möchte ich an dieser Stelle den Uhrendrift zunächst
definieren [Rö 01, S.2f]:
1
Der hohe Energieverbrauch entsteht dadurch, dass die Clients immer am Netzwerk auf Nachrichten
lauschen.
4 Synchronisation
64
Definition 4.2.1 Uhrendrift
Die interne Uhr wird hardwaremäßig unterstützt von einem Oszillator und führt eine
Approximation C(t) für die reale Uhrzeit aus.
Z t
C(t) = k ·
ω(τ )dτ + C(t0 )
t0
ist eine reale Funktion über der Realzeit t. Die Funktion ist abhängig von der Kreisfrequenz ω(τ ) des Oszillator. k ist ein zur Kreisfrequenz proportionaler Faktor.
Für eine perfekte Uhr würde dC/dt = 1 gelten. Jedoch besitzt jede Uhr einen Uhrendrift
und ist damit nicht perfekt. Eine genaue Bestimmung des Drifts ist aufgrund von Umwelteinflüssen nicht möglich. Jedoch wird angenommen, dass der Uhrendrift das Maximum
von etwa ρ = 10−6 nicht übersteigt:
1−ρ≤
4.2.1
dC
≤1+ρ
dt
Time Stamp Synchronization
Das Time Stamp Synchronization - Verfahren wurde in 2001 von Kay Römer von der
Eidgenössischen Technischen Hochschule (ETH) Zürich entwickelt. Die Intuition bei
dieser Synchronisierung ist, dass Nachrichten von anderen Sensorknoten mit den eigenen
Nachrichten in einen zeitlichen Zusammenhang gebracht werden sollen [Rö, Bl 05],
[Rö 04], [Rö 01]. Die lokalen Uhren der Knoten werden nicht synchronisiert. Es bedarf
schließlich nur einer korrekten zeitlichen Zuordnung der Nachrichten. Dazu setzt der
Sender in seinen Nachrichten als Zeitstempel die Universial Time (UTC) seiner eigenen
unsynchronisierten Zeit. Jeder Empfänger transformiert diesen Zeitstempel dann in seine
lokale Zeit. Dabei wird UTC als Format für die Zeitübertragung genutzt.
Aufgrund der Nachrichtenübertragung kann eine Transformationen nicht mit einer hohen
Präzision durchgeführt werden. Für die Erreichung eines exakten Wertes werden eine
obere und untere Grenze der aufgetretenen Verzögerungszeit eingesetzt. Der Algorithmus
schätzt daher vor der Transformation die vergangene Realzeit zwischen Erzeugung des
Zeitstempels und Ankunft beim Empfänger nach unten und oben ab. Diese Grenzen
werden dann in die Empfängerzeit umgewandelt und jeweils vom Empfangszeitpunkt
subtrahiert. Das resultierende Intervall beschreibt die untere und obere Grenze für den
Zeitpunkt der lokalen Zeit des Empfängers.
Bemerkung 4.2.2
Dieses Synchronisationsverfahren ist ausreichend, wenn Nachrichten von unterschiedlichen Knoten in ein Verhältnis gesetzt werden sollen. Jedoch wird mit der Time Stamp
4 Synchronisation
65
Synchronization keine Uhrensynchronisation realisiert. Diese ist gerade wichtig für das
Szenario der Diplomarbeit, da die Sensorknoten gleichzeitig erwachen sollen.
4.2.2
Reference Broadcast Synchronization
Der Algorithmus Reference Broadcast Synchronization (RBS) wurde von Jeremy Elson,
Lewis Girod und Deborah Estrin im Jahr 2002 an der University of California, Los Angeles
entwickelt [El, Gi 02], [Kr 03]. Das Verfahren kann eine Präzision der internen Synchronisation (Uhrensynchronisation) im Mikrosekunden-Bereich erzeugen. Die signifikanteste
Anforderung von RBS ist, dass ein Broadcast fähiges Netzwerkmedium erforderlich ist.
RBS kann zum Beispiel nicht in einem Netzwerk von Punkt-zu-Punkt-Verbindungen eingesetzt werden.
Bei der Reference-Broadcast Synchronization senden Knoten Reference-Beacons mittels
Broadcast zu ihren Nachbarn. Dieses Reference-Beacon enthält keinen expliziten Zeitstempel, vielmehr nutzen die Empfänger die Ankunftszeit als Referenzpunkt zur Uhrensynchronisation. Eine besonders hohe Präzision wird erreicht, wenn hardewaremässig ein
Interrupt unterstützt wird: Bei der Ankunft der ersten Bits der Synchronisationsnachricht wird dieses Interrupt ausgelöst, damit sich die interne Verzögerungszeit minimiert.
Um nun eine Synchronisation zu erreichen, werden die Ankunftszeiten mit den anderen
empfangenen Nachbarn verglichen.
Eine bessere Präzision kann durch mehrere aufeinander folgende Reference-Broadcast
Nachrichten erreicht werden:
1. Ein Sender sendet m Reference-Beacons mittels Broadcast.
2. Jeder der n Empfänger, zeichnet die Empfangszeiten in seiner lokalen Uhrzeit auf.
3. Die Empfänger tauschen ihre Beobachtungen aus.
4. Jeder Empfänger i kann seine Offset-Phase zu einem beliebigen anderen Empfänger
j berechnen. Der Offset wird anhand der durchschnittlichen Empfangszeiten der
Reference-Beacons ermittelt, welche i und j empfangen haben.
Sei n die Anzahl der Empfänger, m die Anzahl der versendeten Reference-Beacons,
Tr,b die Uhrzeit von r als Broadcast b erhalten wurde. Dann gilt:
m
1 X
∀i, j ∈ n : Offset[i, j] =
Tj,k − Ti,k .
m k=1
Dieses Verfahren wurde aber in realer Hardware noch nicht realisiert, da es falsch gehende
Uhren nicht ausschließt. Daher wird eine numerische Lösung benutzt, in welcher auch die
obige Gleichung eingesetzt wird. Das maximale Offset wird Group Dispersion genannt.
4 Synchronisation
66
Abbildung 4.1: Präzisionsverbesserung der Group Dispersion, Quelle:[El, Gi 02, S.8]
Beispiel 4.2.3
Mit dem numerischen Verfahren und einer einfachen Konstruktion von zwei Empfängern
wird die Präzision mit Hilfe von dreißig Reference Broadcasts von 11µs auf 1, 6µs verbessert (visualisiert in Abbildung 4.1 (rot)). Dabei ist 11µs der durchschnittliche Fehler bei
der Synchronisierung zweier Empfänger mit einem Reference Beacon.
Sind zwanzig Empfänger vorhanden, kann mit der gleichen Anzahl von Reference Broadcasts eine Präzision von 5, 6µs erreicht werden (schwarz eingezeichnet in Abbildung 4.1).
Die bisherige Beschreibung diente einer Synchronisierung von Knoten, welche sich in einer einzigen Broadcastregion befanden. In einer Erweiterung für RBS werden Knoten
synchronisiert, welche sich innerhalb von mehreren Broadcastregionen befinden. Zur Visualisierung der folgenden Erläuterung wird auf Abbildung 4.2 verwiesen.
Die mit A und B bezeichneten Knoten senden einen Synchronisationspuls. A und B
können sich gegenseitig nicht hören, jedoch empfängt Knoten 4 beide Reference-Beacons.
Die Knoten 1 − 3 und 5 − 7 vergleichen untereinander ihre Uhrzeiten wie zuvor beschrieben. Knoten 4 hat als Einziger beide Beacons empfangen und ist damit in einer anderen
Situation: Er kann die Uhrzeiten beider Broadcastregionen miteinander in einen Bezug
setzen. Damit wird ein Vergleich von Ereignissen aus getrennten Nachbarschaften möglich:
Sei PA der Zeitpunkt vom Versenden des Pulses von A. Für B ist PB analog. Des Weiteren
sei Ereignis 1 (E1 ) bei Knoten 1 zwei Sekunden nach Hören des Pulses von A eingetreten.
¯
Vier Sekunden vor dem Puls von B verzeichnete Knoten 7 das Ereignis 7 (E7 ). Knoten 1
¯
und 7 können 4 über die temporäre Zuordnung ihrer Ereignisse informieren. Anhand der
4 Synchronisation
67
eignen Empfangszeiten kann Knoten 4 bestimmen, dass der Puls von A zehn Sekunden
später als der von B erfolgt (Pa = PB + 10).
Abbildung 4.2: MultiHop-Synchronisation, Quelle:[El, Gi 02, S.12]
Folgende Gleichungen entstehen:
E1 = PA + 2
E7 = PB − 4
PA = PB + 10
⇒ E1 = E7 + 16
Die beiden Ereignisse E1 und E7 können damit in eine globale Beziehung gebracht
werden, da der Durchschnitt der Broadcast Regionen von A und B nicht leer war.
In der Realität liegt jedoch meistens kein einzelner Gateway wie in Abbildung 4.2
vor, welcher die Uhrzeiten der einzelnen Nachbarschaften umrechnet.
In Abbildung 4.3a) sind die mit Buchstaben bezeichneten Knoten Synchronisationssender
und die nummerierten Knoten stellen Empfänger dar. Jeder Sender baut eine eigene
Nachbarschaft auf, in welcher der gleichen Sender zur Synchronisation gehört wird.
Werden diese Nachbarschaftsbeziehungen als Kanten in einem Graphen visualisiert,
entsteht Abbildung 4.3b). Gilt es Ereignisse aus verschiedenen Nachbarschaftsbereichen
miteinander zu vergleichen, hilft der Pfad im Graphen bei der Zeitkonvertierung: Sollen
Ereignisse von Knoten eins (E1 (R1 ), Ereignis 1 in lokaler Zeit von Knoten 1) und zehn
¯
(E10 (R10 )) in Beziehung gebracht werden, so erfolgt eine Transformation der Zeit von
Ereignis 1 in die Zeit von Knoten zehn:
¯
E1 (R1 ) → E1 (R4 ) → E1 (R8 ) → E1 (R10 )
4 Synchronisation
68
Der Transfomationsfehler erhöht sich bei jeder Umwandlung. Aber er wächst nur mit der
Wurzel der Anzahl von Hops.
Abbildung
4.3:
Allgemeines
Modell
für
die
MultiHop-Synchronisation,
Quelle:[El, Gi 02, S.14]
Bemerkung 4.2.4
Dieses Protokoll kann mit der vorgegebenen Hardware für die Arbeit eingesetzt werden.
Schließlich findet die gesamte Kommunikation mittels eines Broadcast statt. Jeder Knoten hat die Möglichkeit als Synchronisationssender zu agieren. Wechseln die Synchronisationssender, kann eine globale Uhrensynchronisation stattfinden. Die Sendereichweiten
überschneiden sich schließlich auf jeden Fall.
Der Austausch der Empfangszeiten zwischen den Sendern kann einfach realisiert werden: Der Synchronisationssender bestimmt zufällig aus seiner Nachbarschaftsliste eine
NetID, welcher seinen Empfangszeitpunkt allen anderen Knoten bekannt gibt. Die anderen Empfänger können mit dieser Propagierung ihren Offset berechnen.
Eine Transformation wird in der Arbeit nicht benötigt, da Nachrichten von unterschiedlichen Knoten nicht in eine gegenseitigen Beziehung gebracht werden müssen.
Hilfreich wäre es, wenn bei der Initialisierung der Knoten eine Zeit vom Server mitgeteilt
würde, welche dann direkt lokal jeder Knoten übernimmt. So entsteht zu Beginn nur ein
geringer Offset pro Hop. Da die Sendereichweite Knoten mit verschiedenen Hopdistanzen
beinhaltet, sollte eine gute globale Synchronisation schnell erreicht werden.
4 Synchronisation
4.2.3
69
Timing Sync Protocol for Sensor Networks
Das Timing Sync Protocol for Sensor Networks (TPSN) wurde von Saurabh Ganeriwal,
Ram Kumar und Mani B. Srivastava in 2003 an der University of California in Los Angeles entwickelt [Ga,Ku 03], [Ma,Fr 02]. Es soll eine zweimal bessere Leistung vollbringen
als das Verfahren Reference-Broadcast Synchronization. Zudem zeigen die Autoren, dass
die Synchronisationsexaktheit nicht deutlich mit der steigenden Anzahl von Knoten abnimmt. Daher skaliert das Protokoll gut.
Das Protokoll ist aufgeteilt in zwei Phasen: Level Discovery Phase sowie Synchronization Phase. In der ersten Phase wird eine hierarchische Topologie aufgebaut: Ein Knoten
(“Root Node“) hat Level Null. Knoten von Level i können wenigstens mit Knoten der
Stufe i − 1 kommunizieren.
Nach dem Aufbau der Hierarchie erfolgt in der Synchronization Phase eine Synchronisation der Knoten auf Level i mit den Knoten auf i − 1.
Annahmen 4.2.5
Für das Protokoll werden einige Annahmen getätigt:
Zum einen müssen die Sensorknoten über eine eindeutige Identifikation verfügen. Andererseits wird für die paarweise Synchronisation eine bidirektionale Kommunikation
benötigt. Zudem soll mit Hilfe dieser bidirektionalen Verbindungen ein Spannbaum im
Netz aufgebaut werden können. Der Aufbau des Spannbaums wird nicht als Overhead betrachtet, da viele Applikationen diesen Spannbaum zum Beispiel für die Datenaggregation
benötigen (siehe zum Beispiel TinyDB [Ma,Fr 02]).
Level Discovery Phase
Der Root-Node versendet mittels Broadcast ein Level Discovery-Paket, in welchem die
¯
Identität des Senders und sein Level enthalten sind. Empfängt ein Knoten eine solche
Nachricht, inkrementiert er das Level und sichert dieses in seinem Speicher. Anschließend
versendet er seinerseits ein Level Discovery. Wird eine zweite Level Discovery-Nachricht
¯
¯
erhalten, ignoriert der Knoten diese. Damit endet diese Phase, wenn alle erreichbaren
Knoten ihr Level ermittelt haben.
Synchronization Phase
In dieser Phase erfolgt eine paarweise Synchronisation. Dazu wird zunächst beschrieben,
wie dies mit dem Austausch zweier Nachrichten realisiert werden kann (siehe Abbildung
4.4). Eine paarweise Synchronisation finde zwischen Knoten A und B statt. T1 und T4
sind Uhrzeiten gemessen in der lokalen Zeit von A, T2 und T3 wurden in der Zeit von B
festgehalten.
4 Synchronisation
70
Abbildung 4.4: Paarweise Synchronisation, Quelle: [Ga,Ku 03, S.4]
A sendet zum Zeitpunkt T1 einen Synchronisationspuls zu B. Diese Nachricht enthält
das Level von A und den Zeitstempel T1. Zum Zeitpunkt T2 wird diese Nachricht von B
empfangen. Dabei gilt T 2 = T 1 + δ + d mit δ als Uhrendrift der beiden Uhren und d der
Zeit zwischen Generation des Zeitstempels und Verarbeitung in B (Propagierungszeit [Ya
05, S.5]). Anschließend sendet B beim Punkt T3 ein Acknowledgement an A mit seinem
Level sowie den Stempeln T1,T2 und T3. Zum Zeitpunkt T4 wird dieses Paket empfangen.
Da es unwahrscheinlich ist, dass in dieser geringen Zeitspanne sich die Propagierungszeit
und der Uhrendrift ändern, kann A diese beiden Unbekannten berechnen:
δ=
(T 2 − T 1) − (T 4 − T 3)
2
d=
(T 2 − T 1) + (T 4 − T 3)
2
Da Knoten A nun sein Uhrendrift bezüglich B bekannt ist, kann er seine Uhr mit B
synchronisieren. Diese Methode ist eine Sender-initiierte Annäherung, da der Sender sich
mit der Uhrzeit des Empfängers synchronisiert.
Der paarweise Nachrichtenaustausch wird vom Root Node mit Hilfe der BroadcastNachricht time synch angestoßen. Die Knoten eines höheren Levels i starten den
¯
Nachrichtenaustausch mit dem niedrigeren Level i − 1. Dabei überhören Knoten des
Levels i + 1 den Austausch in den unteren Levels.
TSPN realisiert ebenfalls eine Multi-Hop-Synchronisation. Diese wird im Paper
[Ga,Ku 03, S.9] für eine post-facto Synchronization beschrieben. Die Synchronisation
wird nicht zu Beginn sondern erst später bei Bedarf ausgeführt. Das folgende Beispiel
erläutert das Verfahren mit Multi-Hops.
Beispiel 4.2.6 Eine post-facto Synchronisation mit Multi-Hops
Sei ein Paket von der Quelle A zum Sink F mit Hilfe des Pfades A → B → C →
4 Synchronisation
71
D → E → F zu transportieren. Bei jedem Empfänger wird nach Erhalt der Nachricht
mit Hilfe von TSPN die eigene Uhrzeit mit dem Sender synchronisiert. Anschließend
wird der nächste Hop durchgeführt. Zum Beispiel synchronisiert sich B erst mit A bevor
das Paket zu C weitergeleitet wird. So werden bei Bedarf alle Knoten des Pfades mit A’s
Uhrzeit synchronisiert. Im Verfahren wird absichtlich eine Verzögerung von zwei Sekunden
eingebaut, um die Bearbeitungszeit in einem Knoten sowie die Zeit zur Versendung in
einem sehr großen Netzwerk abzubilden.
Bemerkung 4.2.7
Mit der Hardwarespezifikation der Diplomarbeit ist keine Datenaggregation möglich und
daher muss der Aufbau des Spannbaums als Overhead gesehen werden. Dabei kann man
jedes Level mit einer virtuellen Regalreihe gleichsetzen. Die Knoten in einem Level müssen
sich nicht physikalisch in der gleichen Regalreihe befinden, da aufgrund von Spiegelungen
und Reflektionen Knoten unterschiedlicher physikalischer Distanz gleich weit (in Hops)
vom Server entfernt sind (siehe Abschnitt 2.2.2).
Der Aufbau des Spannbaums bedarf wegen der Dynamik einer periodischen Wiederholung. Ein großes Wiederholungsintervall könnte gewählt werden, wenn die Level auch den
physikalischen Regalreihen entsprächen. Denn dann sind auch bei Ausfall von Kommunikationswegen noch ausreichend Knoten eines niedrigeren Levels in Reichweite. Aufgrund
der zuvor beschrieben Spiegelungen, kann aber ein Sensorknoten sich virtuell näher zum
Server befinden als physikalisch. Wenn jedoch ein Kommunikationsweg ausfällt, der aus einer solchen Spiegelung entsteht, hat dieser Knoten keine Synchronisationspartner. Dieser
Fehler muss natürlich schnell behoben werden und daher bedarf es einer häufigen Wiederholung der Level Discovery Phase.
Problematisch ist zudem, dass eine paarweise Synchronisation stattfinden soll: Versuchen
alle Knoten eines Levels eine Synchronisation mit einem zufällig gewählten Nachbarn des
niedrigeren Levels, führt dieses sicherlich zu Interferenzen und mehrfachen Anfragen bei
Knoten. Einzelne Knoten können diese Synchronisation nicht stellvertretend für alle machen: Die Knoten müssten explizit bestimmt werden, aber es gibt nur gleichberechtigte
Knoten bei der Synchronisierung.
4.2.4
Beurteilung der drei Verfahren
Für die Synchronisation in dem Szenario der Diplomarbeit können die Verfahren
Reference Broadcast Synchronization (RBS) und das Timing Sync Protocol for Sensor
Networks (TSPN) eingesetzt werden. Das TSPN erzeugt einen gewissen Overhead, da
vor der Synchronisation ein Spannbaum aufgebaut wird. Da jedoch im Protokoll mit der
Hopdistanz (siehe 2.2.2) gearbeitet wird, ist ein Level der Hopdistanz gleichzusetzen.
4 Synchronisation
72
Daher entsteht nur ein Overhead, wenn der Spannbaum explizit aufgebaut wird.
Unabhängig von diesem gegebenenfalls erzeugten Overhead besteht in TSPN das Problem
bei der Realisierung der paarweisen Synchronisation (siehe Bemerkung 4.2.7). Aus diesem
Grund tendiere ich zum Einsatz des RBS. Wird RBS für die Synchronisation genutzt,
sollte die Vereinfachung hinzugenommen werden, dass ein zufällig vom Synchronisationssender ausgewählter Knoten seine Empfangszeit propagiert (siehe Bemerkung 4.2.4).
4.3
Globales kontra lokales synchrones Aufwachen
Die zuvor beschriebenen Verfahren zur internen Synchronisation dienen dazu, dass jeder
Knoten nahezu eine identische Uhrzeit besitzt. Da alle Knoten zudem über die gleiche
Round-Time verfügen, kann der Aufwachpunkt der Knoten synchronisiert werden.
Im folgenden Abschnitt 4.3.1 wachen die Knoten in der gleichen Distanz zum Server
zeitgleich auf (lokal synchroner Aufwachpunkt). Anschließend wird der global synchronisierte Aufwachpunkt beschrieben, das heißt alle Knoten im Netz wachen gleichzeitig auf.
4.3.1
Regalweise Synchronisation
Ein lokaler synchroner Aufwachpunkt ist gegeben, wenn alle Sensorknoten innerhalb der
gleichen Hopdistanz zum Server parallel erwachen.2 Statt vom lokalen synchronen Aufwachpunkt wird auch von der regalweisen Synchronisation gesprochen.
Abbildung 4.5: Sende-und Empfangsphasen in der regalweisen Synchronisation
2
Die Hopdistanz wurde in Abschnitt 2.2.2 genau definiert.
4 Synchronisation
73
Damit eine Kommunikation bei der regalweisen Synchronisation stattfinden kann, müssen
sich die Wachphasen der virtuellen Regale in Sendereichweite überschneiden. Daher
gilt: Alle Stationen in einem Regal (mit gleicher Hopdistanz) besitzen den gleichen
Aufwachpunkt. Die Stationen im hinteren und im vorderen Regal wachen zeitversetzt
auf. Jedoch sind zwei benachbarte Regale immer einige Runden lang gleichzeitig wach.
Die Abbildung 4.5 zeigt die Wach- und die Sendephasen bei einer uplink-Kommunikation.
Knoten mit Distanz sechs haben dabei die größte Entfernung aller Knoten zum Server.
Daher benötigen sie für die uplink-Kommunikation keine Empfangsphase, da keine
Nachrichten von weiter entfernten Knoten gesendet werden können.
Abbildung 4.6: Verhältnis uplink- und downlink- Treppen
Da nun die Phasen zum Senden und Empfangen wohl-definiert sind, kann Energie gespart
werden. Liegt eine Nachricht im Buffer, da sie noch nicht erfolgreich versendet wurde,
muss dieser Sensorknoten erst zur Sendephase erwachen. Analog kann Energie gespart
werden, wenn ein Knoten seine Nachricht oder das Beacon erfolgreich verschickt hat.
Dieser Knoten kann anschließend direkt schlafen gehen, falls er keine Nachricht mehr zu
versenden hat und keine Nachricht mehr empfangen kann.
Die Aufwachphasen verlaufen in Treppenstufen. Da die uplink-Kommunikation wahrscheinlich häufiger vertreten ist als die downlink-Kommunikation, kann man uplinkTreppenstufen häufiger durchlaufen (vielleicht im Verhältnis 3:1, siehe Abbildung 4.6).
Empfängt ein Knoten eine Nachricht und bearbeitet sie zum Weiterleiten vor, bedarf
dieser Vorgang einer gewissen Bearbeitungszeit. Die Empfangsphase sollte mindestens
dieser Dauer plus einer Konstante entsprechen. Ansonsten sind gegebenenfalls in der
Sendephase nur die Nachrichten sendebereit, welche bereits im Buffer waren.
Die Dauer des Empfangsvorgangs inklusive des Erhalts des zugehörigen Acknowledgements kann aufgrund der Synchronisation nach oben abgeschätzt werden. Somit ist es
möglich, den Sendevorgang in Runden aufzuteilen, welche jeweils dieser Abschätzung
entsprechen.
4 Synchronisation
74
Da alle Knoten synchronisiert sind, entspricht die Rundendauer der Transferzeit
der Nachricht bis hin zum Empfangen des Acknowledgements. Ist die obere Grenze
überschritten, beurteilt der Sender den Sendeversuch als erfolglos.
Beschrieben wurde hier die einfache Variante der regalweisen Synchronisation. Senden
Knoten mit Distanz i eine uplink-Nachricht, sind nur Knoten der Entfernung i + 1 wach.
Damit ist die Anzahl der potentiellen Sender gleich der Anzahl der Knoten mit gleicher
Hopdistanz in Sendereichweite. Die Anzahl der Empfänger spricht mit den Knoten aus
dem virtuellen Regal i + 1 im Senderadius überein, die keine Nachricht im Buffer besitzen.
Für die Steigerung des Nachrichtendurchsatzes sollten sich die Treppenstufen deutlicher überschneiden. In Abbildung 4.7 bestehen nicht nur eindeutig definierte Sende- und
Empfangsphasen. Es gibt zudem eine Mischphase: Liegt eine Nachricht versandbereit,
wird gesendet. Ansonsten wird weiter versucht eine Nachricht zu empfangen. Die
Empfangsdauer sollte die obere Grenze für die Dauer des Empfangsvorganges jedoch
auch jetzt nicht unterschreiten.
Abbildung 4.7: Regalweise Synchronisation mit deutlicherer Überschneidung
4.3.2
Global synchronisierter Aufwachpunkt
Wird das 1 QK-Protokoll so verändert, dass alle Knoten direkt zu Beginn der RoundTime erwachen, liegt ein globaler synchroner Aufwachpunkt vor. Schließlich erwachen
alle Sensorknoten des Netzes zum gleichen Zeitpunkt (abgesehen von minimalen Verschiebungen, die auf die Präzision des Synchronisationsverfahrens zurückzuführen sind).
Der globale synchronisierte Aufwachpunkt ist sicherlich leicht zu realisieren. Sind die
4 Synchronisation
75
Uhren synchronisiert worden, muss das Protokoll lediglich so angepasst werden, dass die
Knoten stets zu Beginn der Round-Time aufwachen.
Diese Synchronisation hat jedoch zwei gravierende Nachteile:
Zum einen wird die Sendereichweite mindestens so eingestellt, dass Knoten im vorderen
und im hinteren Regal erreicht werden. Dieses ist für die Kommunikation zwingend
notwendig. Die Anzahl der potentiellen Sender im eigenen Sendebereich werden dadurch
drastisch erhöht. Alle Knoten, die eine Nachricht im Buffer haben, beginnen direkt nach
dem Aufwachen zu senden. Da alle Netzknoten den gleichen Aufwachpunkt besitzen, sind
alle Knoten im eigenen Sendebereich potentielle Sender und Konkurrenten. Betrachtet
man die Funktion für das Empfänger-Sender-Verhältnis mit waagerechter Regalanordnung aus Abschnitt 2.2.2 gilt für den globalen Ansatz:
Pb xr c √ 2
r − x2
Empfängerstrecke
i=0 2 ·
=
r
Pb x c √ 2
Senderstrecke
4 · r − x2
2 · r + i=1
2A
2·r+4·A
Die Sendereichweite kann nicht genau justiert werden. Daher wäre im günstigsten Fall
=
die Sendereichweite so begrenzt, dass nur benachbarte Regalreihen kontaktiert werden.
Laut den Beispielszenarien in 2.2.2 entspricht dann n = 2 · r und A = 3/4 · n. Dies ergibt
zusammen :
2 · 43 · n
Empfängerstrecke
=
Senderstrecke
n + 4 · 34 · n
=
3
n
2
4n
und damit ein Verhältnis von 3:8. Die Wahrscheinlichkeit von auftretenden Interferenzen
ist gegenüber dem lokalen Ansatz deutlich gestiegen.
Zum anderen liegt ein Problem in der Realisierung folgender wünschenswerten Anforderung:
Die Wachphase sollte für eine geringe Latenz so lang sein, dass innerhalb einer RoundTime eine uplink-Nachricht vom entferntesten Knoten zum Server gelangen kann. Für
eine downlink-Nachricht soll natürlich die umgekehrte Weiterleitung innerhalb einer
Round-Time möglich sein. Diese Anforderungen implizieren, dass alle Knoten mindestens
die minimale Dauer einer Weiterleitung durch das gesamte Netz wach sind. Eine derartig
lange Wachphase ruft einen nicht zu vernachlässigen Energieverbrauch hervor.
4 Synchronisation
76
4.3.3
Vergleich der Ansätze
Es
interessant,
ist
reicht.
Für
welcher
Beispielszenarien
“GlobalerAufwachpunkt.mnb“
Ansatz
habe
einen
ich
zwei
höheren
MuPad
Nachrichtendurchsatz
Programme
er-
entwickelt3 .
realisiert den globalen synchronen Aufwachpunkt,
“RegalweiseSynchronisation.mnb“ den lokalen.
In den Implementierungen wird bereits der Aspekt der Fairness (siehe Kapitel 6)
berücksichtigt, so dass eigene Nachricht nicht immer bevorzugt werden. Wird eine
Nachricht empfangen und liegen eigene Daten vor, werden die fremden Nachrichten mit
einer Wahrscheinlichkeit der Variablen “verhaeltnis“ weitergeleitet. Anhand des Parameters “ps“ wird die Wahrscheinlichkeit festgelegt, dass eigene Sensordaten vorhanden
sind. Die Arrays “erhieltBeacon“, “sendWeiter“ sowie “bearbeitetNachricht“ dienen der
Berechnung der aktuell vorhandenen Sender und Empfänger.
Der Server wird mit einer konfigurierbaren Anzahl von Empfängern4 simuliert. Des
Weiteren stehen mehrere Kanäle zur Verfügung (Variable “C“), welche alle mit der
gleichen Wahrscheinlichkeit gewählt werden. Hardwaremäßig können nur dreizehn Kanäle
realisiert werden. Es kann aber mit Hilfe von mehreren internen Runden eine Vielzahl von
Kanälen simuliert werden (siehe Kapitel 5). Daher setze ich hier keine Einschränkungen
für die Belegung der Variablen.
Implementiert wurde die uplink-Kommunikation, da schließlich nur hier die Problematik
mit den eigenen Sensordaten auftritt. Die Sendephasen sind in Runden aufgeteilt, welche
der Dauer einer Zeiteinheit entsprechen. Es wurde exemplarisch festgelegt, dass die
Bearbeitung eines empfangenen Beacons einer Zeiteinheit bedarf. Die Erstellung einer zu
versendenen Nachricht wird mit drei Zeiteinheiten berechnet. Diese drei Zeiteinheiten
werden also benötigt, wenn eine fremde Nachricht empfangen wurde oder eigene Sensordaten vorliegen. Gemäß dieser Zeiteinheit und vor allem der Kanalanzahl sowie der
oberen Abschätzung des Empfangsvorganges werden die Sende- und Empfangsphasen in
Runden eingeteilt.
Um den Erfolg des Verfahrens messen zu können, werden die Nachrichten gezählt,
welche der Server empfängt. Beacons sind in dieser Zählung nicht inbegriffen. Als weitere
Ausgabe erfolgt pro virtuelle Regalreihe die Anzahl der verbliebenen Nachrichten.
Im Anschluss werden die Ergebnisse beider Verfahren mit folgenden Voraussetzungen
präsentiert:
3
4
Diese befinden sich auf der beigefügten CD im Verzeichnis Mupad Quellen
¯
Im Array empfaenger bei Index 6
4 Synchronisation
77
• Variable ps;
Entspricht der Wahrscheinlichkeit, dass ein Knoten eigene Sensordaten vorliegen
hat und eine eigene uplink-Nachricht versenden möchte.
• Variable verhaeltnis;
Speichert die Wahrscheinlichkeit zur Weiterleitung einer fremden empfangenen
Nachricht, wenn selbst neue Sensordaten vorliegen.
• Es gibt fünf Regalreihen.
• In der Sendereichweite eines jeden Sensorknotens befinden sich zehn Sensorknoten
pro Regalreihe. Das heißt als Empfänger stehen zehn Knoten zur Verfügung. Diese Konfiguration von Sendern und Empfängern ist in den Arrays “sender“ und
“empfaenger“ möglich.
• Zur Vereinfachung des Modells kann jeder Knoten jeden anderen Knoten in dieser Sendereichweite kontaktieren. Dies ist eine akzeptable Vereinfachung: Für jeden
Knoten befinden sich in seiner Reichweite neun weitere Knoten des gleichen Regals. Für jeden der neun Knoten sind jedoch auch wiederum neun Sensorknoten des
eigenen Regals in Reichweite. Analog verhält es sich bei den Empfängern.
Die regalweise Synchronisation ist so realisiert, dass nur benachbarte Regale gleichzeitig
wach sind. Dies entspricht einer Sendereichweite, die keinen weiteren Regale erreicht. Der
gleiche Ansatz wurde für einen Vergleich beim globalen Aufwachpunkt implementiert:
Als störende Sender werden nur die Knoten der beiden direkt benachbarten Regalreihen
angesehen.
Anmerkungen zur Realisierung der regalweisen Synchronisation
Die Regalreihen sind so synchronisiert, dass sie gleichzeitig stets vier Runden wach
sind: Eine Runde zum Empfangen einer Nachricht und drei Runden für die interne
Bearbeitung. Empfängt somit ein Knoten in Runde Eins, versendet er diese auch in
Runde Eins. Erhält ein Knoten eine Nachricht in Runde drei, versendet er die Nachricht
auch in der dritten Runde der folgenden Round-Time. Eine ausführliche Dokumentation
sowie der Quellcode sind im Anhang A.1 zu finden.
Die Stationen sind damit maximal vier Runden beim Empfangsvorgang und vier Runden
für das Senden wach. Wenn ein Sensorknoten seine Nachricht abgeliefert oder ein Beacon
versendet hat, kann er bis zum nächsten Aufwachpunkt schlafen. Somit sind die Knoten
im Minimum zehn Runden wach (nur jeweils in den beiden Empfangsphasen sowie zum
Beacon-/einmaligem Nachrichtenversand).
4 Synchronisation
78
Anmerkungen zur Realisierung des globalen Aufwachpunktes
Damit eine Nachricht der äußersten Regalreihe (Eins) die Möglichkeit hat innerhalb
einer Round-Time zum Server zu gelangen, muss die Wachphase mindestens zwanzig
Runden andauern. Schließlich wird eine minimale Bearbeitungszeit von vier Runden
pro Regalreihe benötigt. Für die gleiche Energie können die Knoten mit der regalweisen
Synchronisation mindestens zwei Round-Times durchlaufen. Bei einem zweimaligen
Durchlauf, besteht jedoch für die Knoten zweimal die Möglichkeit eine eigene Nachricht
zu versenden. Daher wird bei dem globalen Ansatz innerhalb einer Round-Time zweimal
die Möglichkeit für die eigene Nachrichtengenerierung eingeräumt. Aufgrund dieser Ungleichheit des Energieverbrauchs wird bei den folgenden Vergleichen stets eine doppelte
Anzahl von Durchläufen für die regalweise Synchronisation durchgeführt.
Als weitere Besonderheit ist zu betrachten, dass der eigene Nachrichtenversand erst in der
zweiten Runde abläuft. Schließlich muss jeder Knoten vor dem Versenden einer eigenen
Nachricht aufgrund der eventuellen Weiterleitung von fremden Nachrichten erst lauschen,
ob er eine fremde empfängt. Bei der allerersten Round-Time führt dieses natürlich dazu,
dass alle Knoten nur lauschen und keiner sendet. In den folgenden Durchläufen senden
aber in der ersten Runde die Knoten, bei denen eine Nachricht im Buffer sendebereit
vorliegt.
Ergebnisse
In der folgenden Tabelle sind die Ergebnisse einiger Beispielauswertungen aufgeführt.
Verschiedene Werte und Kombinationen der Parameter ps, verhaeltnis, C (= Kanäle) und
der absolvierten Anzahl von Round-Times(R-Ts) wurden getestet. Bei den Ergebnissen
der wird die Anzahl der in den verschiedenen Regalen verbliebenen Sensorknoten mit
Nachrichten im Buffer ausgegeben. Zudem folgt eine Angabe der Gesamtanzahl der
Nachrichten, welche der Server empfangen hat. Die Ergebnisse beziehen sich darauf, dass
der Server wie fünf Empfänger realisiert ist. Bei den Angaben in den Klammern sind die
resultierenden Daten angegeben, wenn der Server wie zehn Empfänger arbeitet.
Regal eins ist das Regal von, welchem der Treppenfluss der uplink-Kommunikation
4 Synchronisation
79
beginnt und ist damit am weitesten vom Server entfernt.
ps verhaelt- Kanäle R-Ts
Regalweise
nis
Global
regalw./
global
0,1 0,75
0,1 0,75
0,1 0,75
0,1 0,75
10
10
30
30
2/1
10/5
2/1
10/5
Verblieben:
Verblieben:
Regal 1= 1; X(1)
Regal 1:= 0; X(0)
Regal 2= 4; X(4)
Regal 2:= 7; X(7)
Regal 3= 4; X(4)
Regal 3:= 10;X(10)
Regal 4= 3; X(2)
Regal 4:= 10;X(10)
Regal 5= 4; X(2)
Regal 5:= 6; X(2)
Empfang:= 4 X(7)
Empfang:= 10 X(15)
Verblieben:
Verblieben:
Regal 1:= 1; X(1)
Regal 1:= 0; X(0)
Regal 2:= 5; X(5)
Regal 2:= 7; X(7)
Regal 3:= 7; X(8)
Regal 3:= 10; (10)
Regal 4:= 8; X(6)
Regal 4:= 10; (10)
Regal 5:= 9; X(8)
Regal 5:= 6; X(2)
Empfang:= 15 X(19)
Empfang:= 59 X(66)
Verblieben:
Verblieben:
Regal 1:= 1; X(1)
Regal 1:= 0; X(0)
Regal 2:= 4; X(4)
Regal 2:= 6; X(6)
Regal 3:= 4; X(4)
Regal 3:= 8; X(8)
Regal 4:= 3; X(3)
Regal 4:= 8; X(8)
Regal 5:= 3; X(3)
Regal 5:= 4; X(2)
Empfang:= 3 X(4)
Empfang:= 8 X(12)
Verblieben:
Verblieben:
Regal 1:= 2; X(2)
Regal 1:= 0; X(0)
Regal 2:= 6; X(6)
Regal 2:= 6; X(6)
Regal 3:= 7; X(7)
Regal 3:= 8; X(8)
Regal 4:= 7; X(7)
Regal 4:= 8; X(8)
Regal 5:= 8; X(8)
Regal 5:= 4; X(2)
Empfang:= 16 X(18)
Empfang:= 46 X(52)
4 Synchronisation
ps
80
verhaelt- Kanäle
R-Ts
nis
regalw./
Regalweise
Global
Verblieben:
Verblieben:
Regal 1:= 5; X(5)
Regal 1:= 1; X(1)
Regal 2:= 6; X(6)
Regal 2:= 5; X(5)
Regal 3:= 6; X(6)
Regal 3:= 8; X(8)
Regal 4:= 6; X(6)
Regal 4:= 8; X(8)
Regal 5:= 4; X(3)
Regal 5:= 6; X(2)
Empfang:= 5 X(10)
Empfang:= 12 X(16)
Verblieben:
Verblieben:
Regal 1:= 9; X(9)
Regal 1:= 5; X(5)
Regal 2:= 10;X(10)
Regal 2:= 9; X(9)
Regal 3:= 9; X(9)
Regal 3:= 9; X(9)
Regal 4:= 9; X(9)
Regal 4:= 9; X(9)
Regal 5:= 8; X(8)
Regal 5:= 7; X(2)
Angekommen:= 17
Angekommen:= 69
X(21)
X(75)
Verblieben:
Verblieben:
Regal 1:= 5; X(5)
Regal 1:= 1; X(1)
Regal 2:= 6; X(6)
Regal 2:= 5; X(5)
Regal 3:= 6; X(6)
Regal 3:= 8; X(8)
Regal 4:= 6; X(6)
Regal 4:= 8; X(8)
Regal 5:= 4; X(3)
Regal 5:= 3; X(2)
Empfang:= 5 X(9)
Empfang:= 9 X(16)
Verblieben:
Verblieben:
Regal 1:= 9; X(9)
Regal 1:= 5; X(5)
Regal 2:= 9; X(9)
Regal 2:= 9; X(9)
Regal 3:= 9; X(9)
Regal 3:= 9; X(9)
Regal 4:= 9; X(9)
Regal 4:= 9; X(9)
Regal 5:= 8; X(8)
Regal 5:= 5; X(2)
Angekommen:= 16
Angekommen:= 56
X(21)
X(72)
global
0,4 0,75
0,4 0,75
0,4 0,30
0,4 0,30
10
10
10
10
2/1
10/5
2/1
10/5
Beim Vergleichen der Daten wird deutlich, dass bei der globalen Synchronisation
deutlich mehr Duplikate entstehen. Dies ist in der Tatsache erkennbar, dass mehr
Nachrichten beim Server empfangen werden, aber trotzdem noch viele Nachrichten bei
4 Synchronisation
81
den Sensorknoten verblieben sind. Daher ist der insgesamte Nachrichtenaufwand höher
und die Knoten verbrauchen mehr Energie zum Senden und Empfangen.
Ist die Wahrscheinlichkeit gering, dass eigene Sensordaten vorhanden sind, ist auf jeden
Fall die regalweise Synchronisation besser. Hier sieht es zunächst so aus, dass bei einer
höheren Wahrscheinlichkeit die globale Synchronisation bessere Ergebnisse erzielt. Dieses
ist allerdings zum einen auf die längere Wachphase (zwanzig statt sechzehn Runden) und
zum anderen auf die folgende Vereinfachung zurückzuführen: Die Sensorknoten können
nur in bestimmten Runden ihre eigene Nachricht senden. Wird in den entscheidenen
Runden (beim lokalen in der ersten, beim globalen in der zweiten und zehnten) eine
andere Nachricht zur Weiterleitung ausgewählt, ist die eigene Nachricht verworfen.
Bei dem global synchronisierten Aufwachpunkt sind zudem die Unterschiede in
den verbliebenen Nachrichten aufgrund der Simulation des Servers mit fünf oder zehn
Empfängern deutlicher. In den Daten des lokalen Ansatzes spielt dieser Faktor eigentlich
nur bei der Anzahl der empfangenen Nachrichten eine Rolle. Dass in diesem Punkt
Unterschiede zu verzeichnen sind, ist klar, da mehr simulierte Empfänger auch mehr
Duplikate erzeugen.
Außer Acht gelassen werden darf auch nicht, dass bei der regalweisen Synchronisation die Sensorknoten (außer im ersten Regal) minimal acht und maximal sechzehn
Runden pro Round-Time wach sind. Beim globalen Ansatz hingegen sind alle Knoten
stets zwanzig Runden wach.
Lemma 4.3.1
Die regalweise Synchronisation erzeugt weniger Nachrichtenaufkommen und ist zudem
unanfälliger gegenüber Präsenz des Servers. Da in diesem Ansatz auch mehr Energie
eingespart wird, plädiere ich die Uhrensynchronisation sowie einen lokal synchronen Aufwachpunkt in das 1 QK-Protokoll zu integrieren.
Kapitel 5
Frequenzwahl
Als erste Optimierung des 1 QK-Protokolls stelle ich die Verbesserung der Frequenzwahl
vor. Zunächst folgt die Problemdarstellung sowie die Lösungsidee.
Problemdarstellung 5.0.2 Frequenzwahl
Im 1 QK-Protokoll werden bei der uplink-Kommunikation die Kanäle bei der höchsten
Kanalnummer beginnend abwärts durchlaufen. Dabei wird auf jedem Kanal eine gewisse
Zeit gesendet.
Dies führt zu zwei Problemen:
1. Versenden mehr als zwei Sensorknoten mit nicht disjunkten Sendebereichen eine
uplink-Nachricht, treten auf jeder Frequenz Interferenzen auf. Schließlich sind die
Knoten synchronisiert und starten bei der gleichen Kanalnummer. Damit ist der
Nachrichtendurchsatz für diese Knoten immer gleich Null. Nur Knoten, bei denen
sich kein anderer Sendewilliger im Sendebereich befindet, haben die Chance ihre
Nachricht zu verschicken.
Beim global synchronisierten Aufwachpunkt gilt dieses für beliebige Sensorknoten. In
der regalweisen Synchronisation senden nur die Knoten mit bestimmten Hopdistanzen zeitgleich. Daher ist diese Problematik “nur“ für Knoten ähnlicher Distanzen
von Bedeutung.
2. Im 1 QK-Protokoll kann es bei einem Kanalwechsel dazu kommen, dass Acknowledgements überhört werden. Da die Knoten unsynchronisiert sind, kann folgender
Fall eintreffen: Ein Empfänger hat eine Nachricht erhalten, aber das Acknowledgement wurde aufgrund eines Kanalwechsels oder der Beendigung des Sendevorganges
nicht mehr vom Sender gehört. Damit weiß der Sender nicht, dass sein Sendevorgang erfolgreich war und verbraucht unnötige Energie. Ebenso werden vermeidbare
Duplikate durch weitere Sendeversuche erzeugt.
5 Frequenzwahl
83
Das zweite Problem ist bereits gelöst: Mit der Synchronisierung und der oberen Schranke
für einen Sendevorgang konnten die Sende- und Empfangsphasen in Runden eingeteilt
werden. Wurde in einer Runde kein Acknowledgement erhalten, war der Sendevorgang
definitiv nicht erfolgreich. Schließlich entspricht die Rundenzeit der oberen Schranke.
Der erste angesprochene Problempunkt ist allein mit Hilfe der Synchronisierung
nicht gelöst und weitaus gravierender. Mit dem 443MHz-Band steht die Möglichkeit
offen, dass dreizehn Kanäle genutzt werden. Ohne Sicherheitsbereiche ist der Einsatz
von 26 Kanälen möglich, jedoch erhöht dieses die Gefahr von Interferenzen auch durch
Sendungen auf unterschiedlichen Kanälen. Mit dreizehn Kanälen kann jedoch eine
Vielzahl von Kanälen simuliert werden:
Sollen zum Beispiel 130 Kanäle eingesetzt werden, wird ein Block von zehn Runden als
eine Sende- oder Empfangsrunde genutzt. Fällt die Wahl auf einen Kanal zwischen 0
und 12, wird in der ersten Runde des Blockes agiert. Soll ein Kanal zwischen 13 und 25
genutzt werden, geschieht dieses in der zweiten Runde des Blockes usw..
Die expliziten Frequenzbereiche zu jedem Kanal werden im FLASH-Speicher abgelegt.
Damit ergibt sich kein Speicherproblem aufgrund der vorhandenen 256 Byte. Im
Folgenden gehe ich davon aus, dass beliebig viele Kanäle simuliert werden können. Die
interne Rundenzeit ist aufgrund der geringen Nachrichtengröße sehr kurz. Der meiste
Energiebverbrauch ist zudem für das Aufwachen sowie das Senden und Empfangen
anzusetzen. Wartet der Knoten nur auf die korrekte interne Runde zum Senden oder
Empfangen, wird der Energieverbrauch nicht sehr hoch sein. Daher ist der höhere
Energieverbrauch resultierend aus der längeren Wachphase vernachlässigbar. Mit einer
Vielzahl von Kanälen steigt jedoch die Wahrscheinlichkeit für einen erfolgreichen Sendeversuch deutlich. Somit werden weniger Sendeversuche benötigt. Dieses verringert nicht
nur die Latenz, sondern wirkt sich auch positiv auf den Energieverbrauch aus.
Für eine synchrone Abarbeitung des Sendevorganges ist es sehr bedeutend, dass die
Kanäle nicht schrittweise durchlaufen werden. Gesucht wurde eine Wahrscheinlichkeitsverteilung für die Kanalwahl, welche einen guten Nachrichtendurchsatz gewährleistet.
Dabei wird die gleiche Wahrscheinlichkeitsverteilung sowohl in der Sende- als auch in der
Empfangsphase genutzt.
Das Wichtige ist zum einen, dass nur ein Sender den Kanal gewählt hat. Versuchen mehr
als ein Sender in dem gleichen Frequenzbereich zu senden, treten Interferenzen auf. Auch
wenn ein Empfänger den gleichen Kanal gewählt hat, kann kein erfolgreicher Sendevorgang stattfinden. Damit soll in erster Linie die Wahrscheinlichkeit möglichst gering sein,
dass zwei Sender den gleichen Kanal wählen. Hingegen muss die Wahrscheinlichkeit, dass
ein Sender und ein Empfänger den gleichen Kanal wählen noch ausreichend groß sein.
Sender und Empfänger nutzen die gleiche Wahrscheinlichkeitsverteilung bei der Ka-
5 Frequenzwahl
84
nalwahl um den Durchsatz hoch zu halten. Schließlich kann eine Nachricht auch nicht
erfolgreich versendet werden, wenn kein Empfänger auf dem Kanal lauscht und ein
analoges Verhalten von Sendern und Empfängern ist empfehlenswert.
Bei der Suche nach einer geeigneten Wahrscheinlichkeitsverteilung kann kein dichtes Netzwerk vorausgesetzt werden. Das Finden eines Kommunikationspartners soll
auch in Extremsituationen eine akzeptable Wahrscheinlichkeit besitzen. Es ist schließlich
denkbar, dass viele Störungen auftreten oder nur noch wenige Knoten als Kommunikationspartner zur Verfügung stehen.
Im Folgenden wird zunächst die Gleichverteilung als geeignete Wahrscheinlichkeitsverteilung untersucht. Anschließend folgt eine Betrachtung der dazu im Gegensatz
stehenden geometrischen Verteilung. In den Abschnitten werden jeweils die Konstellationen zusammengefasst, bei welchen die Verteilungen gut oder schlecht einzusetzen sind.
Im Abschnitt 5.3 stelle ich eine Verbesserung der “reinen“ geometrischen Verteilung vor.
Abschließend erfolgt eine Beurteilung der Wahrscheinlichkeitsverteilungen im Einsatz für
die Kanalwahl.
5.1
Gleichverteilung
Liegt ein dichtes Kommunikationsnetzwerk vor, ist intuitiv die Gleichverteilung die beste
Wahrscheinlichkeitsverteilung für eine Kanalwahl. Schließlich wird jeder Kanal mit der
gleichen Wahrscheinlichkeit gewählt und die Sender verteilen sich ausgewogen über die
Kanäle (siehe 5.1).
Definition 5.1.1 Gleichverteilung
Es stehen n Sender, m Empfänger sowie C Kanäle zur Verfügung. Jeder Kanal wird mit
der Wahrscheinlichkeit
1
C
gewählt. Damit sind im Erwartungswert
n
C
Sender auf jedem
Kanal vertreten.
Die erwartete Anzahl von erfolgreich versendeten Nachrichten entspricht der Summe der
im Erwartungswert versendeten Nachrichten pro Kanal. Pro Kanal ist die Anzahl Null
oder Eins. Die Wahrscheinlichkeit für eine versendete Nachricht auf Kanal i, entspricht
der Wahrscheinlichkeit, dass genau einer der n Sender und mindestens einer der m
Empfänger den Kanal gewählt haben.
5 Frequenzwahl
85
Abbildung 5.1: Gleichverteilung für acht Kanäle
Damit ergibt sich:
E(erfolgreich versendeten Nachrichten auf Kanal i)
= 0 · P (keine Nachricht auf Kanal i erfolgreich) + 1 · P (eine Nachricht auf i erfolgreich)
P(eine Nachricht auf Kanal i erfolgreich)
= P (genau ein Sender auf i) · P (mind. ein Empfänger auf i)
(n−1) m 1
1
1
=n· · 1−
· 1− 1−
C
C
C
E(erfolgreiche Nachrichten insgesamt)
=
C
X
i=1
(n−1) m 1
1
1
n· · 1−
· 1− 1−
C
C
C
(n−1) m 1
1
1
· 1− 1−
=C ·n· · 1−
C
C
C
Am besten ist es, wenn genauso viele Kanäle wie Sender zur Verfügung stehen. Dann
befindet sich im Erwartungswert auf jedem Kanal ein Sender. Es wäre schlechter eine
höhere Anzahl von Kanälen zu wählen. Schließlich steigt dann die Wahrscheinlichkeit,
dass ein Empfänger einen Kanal wählt, auf dem sich kein Sender befindet. Daher kann
bei der Initialisierung der Knoten die Menge der zu nutzenden Kanäle gleich der Anzahl
der Knoten der gleichen physikalischen Regalreihe in Sendereichweite eingestellt werden.
5 Frequenzwahl
86
Schließlich ist gewiss, dass in der ersten Runde alle Sensorknoten in Reichweite senden
(entweder ein Beacon oder eine Nachricht).
5.1.1
Abschätzungen für den Erfolg der Gleichverteilung
Die Gleichverteilung ist bei einer hohen Anzahl von Sendern und Empfängern unschlagbar. Sie liefert gute Ergebnisse, wenn die Anzahl der Sender in etwa der der zur Verfügung
stehenden Kanäle entspricht. Dabei spielt es keine Rolle, wie viele Empfänger vorhanden
sind.
Es ist wichtig, den Erwartungswert der versendeten Nachrichten sowie sein Minimum
und Maximum für verschiedene Kombinationen von Sendern, Empfängern und Kanälen
einschätzen zu können. Daher folgen Abschätzungen nach oben und unten für den Erwartungswert der erfolgreichen Nachrichten mit n Sendern und m Empfängern und C
Kanälen.
Zuvor werden die wichtigsten Ungleichungen zusammengefasst, welche bei den
Abschätzungen genutzt werden. Für die im Lemma aufgeführten Gleichungen sowie deren
Beweise verweise ich auf [Sch 05].
Lemma 5.1.2
1. Für alle n ≥ 1:
1
1−
n
n
1
≤ ≤
e
1
1−
n
n−1
2. Für alle p ∈]0, 1]:
1
(1 − p) p ≤
1−p
1
1
≤ (1 − p) p −1 = (1 − p) p
e
3. Für alle x ∈ [0, 1]:
−x
1−e
1
≤1− 1−
e
x
4. Für alle p ∈]0, 1] und m ≥ 1:
1 − pm ≤ (1 − p)m ≤ 1
Für alle m ∈ N, p ∈ [0, 1] gilt:
1
min{1, pm} ≤ 1 − (1 − p)m ≤ min{1, pm}
1−
e
5 Frequenzwahl
87
Korollar 5.1.3
Aus der letzten Abschätzung 1 −
1
e
min{1, pm} ≤ 1−(1−p)m ≤ min{1, pm} des Lemmas
5.1.2 folgt [Sch 05]:
Falls pm ≥ 1 gilt:
Falls pm ≤ 1 gilt e−pm
1
1 − (1 − p)m ≥ 1 − e−pm ≥ 1 −
e
1
≤ 1 − 1 − e pm und es folgt die Ungleichung:
1
m
−pm
1 − (1 − p) ≥ 1 − e
≥ 1−
pm
e
1. Abschätzung nach oben
P (Erfolg auf Kanal i) = P (genau 1 Sender auf i) · P (mindestens 1 Empfänger auf i)
(n−1)
1
1
· (1 − P (kein Empfänger auf i))
=n· · 1−
C
C
C· n−1 m 1 ( C )
1
1
· 1− 1−
=n· · 1−
C
C
C
!
n−1
C·
C· m
C
1
1 ( C )
1
=n· · 1−
· 1− 1−
C
C
C
!
n−1
m
1
1 C
1 C
≤n· ·
· 1−
C
e
e
Insgesamt:
!
n−1
m
1 C
1 C
E (erfolgreiche Nachrichten) ≤
· 1−
e
e
i=1
!
n−1
m
C
1 X 1 C
1 C
≤n· ·
·
· 1−
C i=1
e
e
!
n−1
m
1
1 C
1 C
≤n· ·C ·
· 1−
C
e
e
!
n−1
m
1 C
1 C
≤n·
· 1−
e
e
C
X
1
n· ·
C
5 Frequenzwahl
88
1. Fall: n > C ⇒
n−1
C
≥1
Es gilt:
n−1
n−1
1 C
= e− C
e
a) m ≥ C ⇒
m
C
≥1
Folgende Ungleichung ist erfüllt:
m
1 C
1
1
= m ≤ ⇒
e
e
eC
!
m
1 C
1−
≤1
e
⇒ E (erfolgreiche Nachrichten) ≤ n · e−
b) m < C ⇒
m
C
n−1
C
· 1 ≤ n · e−
<1
Mit Lemma 5.1.2 kann gezeigt werden:
!
m
m
1 C
m
1 C
≤1⇒ 1−
−→ 0, für
→0
e
e
C
!
m
C−1
m
1
m
1−
= 1 − e− C−1 ≤
e
C −1
⇒ E (erfolgreiche Nachrichten) ≤ n · e−
2. Fall: n ≤ C ⇒
n−1
C
<1
Es gilt:
1
e
a) m ≥ C ⇒
m
C
n−1
C
≤1
≥1
Es folgt wie oben:
!
m
1 C
≤1
1−
e
n−1
C
·
m
C −1
n−1
C
5 Frequenzwahl
89
⇒ E (erfolgreiche Nachrichten) ≤ n · 1 · 1 ≤ n
b) m < C ⇒
m
C
<1
Analog zu Fall 1b) ist zu zeigen:
!
m
1 C
m
1−
≤
e
C −1
⇒ E (erfolgreiche Nachrichten) ≤ n · 1 ≤ n
2. Abschätzung nach unten
P (Erfolg auf Kanal i) = P (genau 1 Sender auf i) · P (mindestens 1 Empfänger auf i)
(n−1)
1
1
=n· · 1−
· (1 − P (kein Empfänger auf i))
C
C
C· n−1 m 1
1 ( C )
1
=n· · 1−
· 1− 1−
C
C
C
Insgesamt:
n−1 m C 1 X
1
1
E(erfolgreiche Nachrichten) = n ·
1−
· 1− 1−
C i=1
C
C
n−1 m 1
1
1
=n· ·C · 1−
· 1− 1−
C
C
C
n−1 m 1
1
=n· 1−
· 1− 1−
C
C
1.Fall: n > C
Es gilt:
1
1−
C
n−1
=
1
1−
C
n−1
(C−1)· C−1
n−1
≥ e− C−1
5 Frequenzwahl
90
a) m ≥ C
n−1
− C−1
⇒ E (erfolgreiche Nachrichten) ≥ n · e
1
· 1−
e
b) m < C
1
1− 1−
C
m −m
C
≥ 1−e
≥
1
1−
e
·
m
C
m
1
·
· 1−
C
e
n−1
− C−1
⇒ E (erfolgreiche Nachrichten) ≥ n · e
2.Fall: n ≤ C
1
1−
C
n−1
≥
1
1−
n
n−1
≥
1
e
a) m ≥ C
1
1− 1−
C
m ≥
1
1−
e
1
1
⇒ E (erfolgreiche Nachrichten) ≥ n · · 1 −
e
e
b) m < C
1
1− 1−
C
m ≥
1
1−
e
·
m
C
1
1
m
⇒ E (erfolgreiche Nachrichten) ≥ n · · 1 −
·
e
e
C
5 Frequenzwahl
91
Trägt man die Abschätzungen nach unten und oben zusammen, ergibt sich:
Falls n > C und m ≥ C
− n−1
C
n·e
n−1
− C−1
≥ E (erfolgreiche Nachrichten) ≥ n · e
1
· 1−
e
Falls n > C und m < C
− n−1
C
n·e
n−1
m
m
1
− C−1
·
≥ E (erfolgreiche Nachrichten) ≥ n · e
·
· 1−
C −1
C
e
Falls n ≤ C und m ≥ C
1
1
n ≥ E (erfolgreiche Nachrichten) ≥ n · · 1 −
e
e
Falls n ≤ C und m < C
1 m
1
m
≥ E (erfolgreiche Nachrichten) ≥ n · ·
· 1−
n·
C −1
e C
e
Theorem 5.1.4
Die Abschätzungen beweisen, dass die höchste Anzahl von erfolgreichen Nachrichten bei
n ≤ C und m ≥ C zu erwarten ist.
5.2
Geometrische Verteilung
Die geometrische Verteilung ist eine sehr gegensätzliche Wahrscheinlichkeitsverteilung gegenüber der Gleichverteilung.
Definition 5.2.1 Geometrische Verteilung
Stehen C Kanäle zur Verfügung, so gilt für die Wahl des Kanals t in der geometrischen
Verteilung folgende Wahrscheinlichkeit:
(
P (C = t) =
t < C,
t = C,
1
;
2t
1
.
2C−1
5 Frequenzwahl
92
Abbildung 5.2: Geometrische Verteilung für acht Kanäle
Der zweite Fall wird genutzt, damit die Summe aller Wahrscheinlichkeiten Eins ergibt.
Der Erwartungswert für die Anzahl der erfolgreichen Nachrichten wird analog zur
uniformen Verteilung berechnet. Es ergibt sich:
E(erfolgreich versendete Nachrichten auf Kanal i)
= 0·P (keine erfolgreiche Nachricht auf Kanal i)+1·P (eine erfolgreiche Nachricht auf i)
P(eine Nachricht auf Kanal i erfolgreich)
= P (genau ein Sender auf i) · P (mind. ein Empfänger auf i)
= n · P (C = i) · (P (C = i))(n−1) · (1 − (1 − P (C = i))m )
E(erfolgreiche Nachrichten insgesamt)
=
C
X
n · P (C = i) · (1 − P (C = i))(n−1) · (1 − (1 − P (C = i))m )
i=1
Eine weitere Vereinfachung der Summe ist hier nicht möglich, da die P (C = i) fast alle
unterschiedlich sind.
Die Nummerierung erfolgt hier aufsteigend. Eine Permutation der Kanalnummern
ist natürlich unabhängig vom Erwartungswert.
5 Frequenzwahl
93
Die geometrische Verteilung ist sehr ungünstig für viele Sender. Schließlich hat der erste Kanal die gleiche Wahrscheinlichkeit wie die Summe aller übrigen Kanäle. Sie liefert
gute Ergebnisse bei extremen Konstellationen. Hat man zum Beispiel nur einen Sender
und einen Empfänger, ist die Wahrscheinlichkeit gleich 1/2, dass beide den ersten Kanal
wählen. Hingegen ist bei der uniformen Verteilung die Wahrscheinlichkeit, dass beide den
gleichen Kanal wählen nur 1/C.
Abbildung 5.3: 1. Vergleichsdarstellung der geometrischen Verteilung und Gleichverteilung
In den Abbildungen 5.3 und 5.4 ist auf der y-Achse der Erwartungswert1 der erfolgreich
versendeten Nachrichten aufgetragen. Die x-Achse beschreibt die Anzahl der Kanäle.
In der ersten Abbildung wurden die Daten für eine Konstellation von fünf Empfängern
und zehn Sendern aufgetragen. Die Daten in der zweiten Abbildung sind die Werte von
zehn Empfängern und zehn Sendern. In blau ist die Gleichverteilung eingezeichnet, in
grün die geometrische Verteilung. Die rot gekennzeichneten Punkte sind jeweils das
Maximum des Erwartungswertes innerhalb des Darstellungsraumes.
Ist nur ein Kanal vorhanden, liegt der Erwartungswert bei Null, da keine Nachricht versendet werden kann, wenn alle Sender auf dem gleichen Kanal senden. Zudem
erkennt man in beiden Abbildungen, dass die geometrische Verteilung einen steilen Anstieg hat und dann nahezu konstant bleibt. Geringfügige Anstiege des Erwartungswertes
sind zwar noch zu verzeichnen, in der Zeichnung sind die Unterschiede aber bereits nicht
mehr sichtbar. Schließlich haben der neunzehnte und zwanzigste Kanal nur noch eine
Wahrscheinlichkeit von
1
1
219
≈ 1.9 · 10−6 .
in den Zeichnungen abgekürzt mit EW
5 Frequenzwahl
94
Abbildung 5.4: 2. Vergleichsdarstellung der geometrischen Verteilung und Gleichverteilung
Die Zeichnungen belegen, dass die geometrische Verteilung bis zu drei Kanälen besser
ist. Allerdings muss auch der Erwartungswert betrachtet werden: Dieser liegt deutlich
unter Eins und damit wird im Erwartungswert pro Runde keine Nachricht erfolgreich
versendet.
Es folgt ein Beispiel an dem deutlich wird, wie schlecht die uniforme und wie gut die
geometrische Verteilung in Extremsituationen ist.
Beispiel 5.2.2
Seien zwanzig Kanäle, ein Sender und ein Empfänger gegeben. Bei der Gleichverteilung
1
.
20
1
≈ 3.
ergibt sich ein Erwartungswert für erfolgreiche Nachrichten von
Die geometrische Ver-
teilung hat jedoch einen deutlich besseren Erwartungswert von
Die geometrische Ver-
teilung bleibt bei dieser Kanalanzahl und einem Empfänger einschließlich einer Senderzahl
von fünf im Erwartungswert besser als die Gleichverteilung.
Lemma 5.2.3
Problematisch bei der geometrischen Verteilung ist, dass der Erwartungswert nie über Eins
steigt. Bei der Gleichverteilung liegt hingegen der Erwartungswert in vielen Fällen über
Eins. Ungünstig ist sie jedoch bei vielen Kanälen und wenig Sendern und Empfängern.
5 Frequenzwahl
5.3
95
Faktorisierte geometrische Verteilung
Die geometrische Verteilung ist zwar in Extremsituationen gut, aber in den meisten Konstellationen schneidet sie schlecht ab. Daher habe ich die so genannte faktorisierte geometrische Verteilung entwickelt.
Definition 5.3.1 Faktorisierte geometrische Verteilung
Die “reine“ geometrische Verteilung (siehe 5.2) wird um einen Faktor gestreckt. Die
Streckung bedeutet, dass nicht nur ein Kanal mit der höchsten Wahrscheinlichkeit gewählt
wird. Einer dem Faktor entsprechenden Anzahl von Kanälen wird die gleiche hohe Wahrscheinlichkeit zugewiesen.
Die Wahrscheinlichkeit muss zur Erfüllung der totalen Wahrscheinlichkeit angepasst werden und kann nicht mehr den Wert 1/2 betragen. Sei s der Faktor, um welchen die reine
geometrische Verteilung gestreckt wird, dann gilt:
(
t mod s = 0 und t < C − s, s·21t/s ;
P (C = t) =
sonst,
P (C = t − 1);
Abbildung 5.5: Faktorisierte geometrischen Verteilung für acht Kanäle und Faktor zwei
Zur Vereinfachung der Darstellung nehme ich hier an, dass immer hintereinander folgende Kanalnummern die gleiche Wahrscheinlichkeit annehmen. Welche Kanalnummern
die gleiche Wahrscheinlichkeit besitzen, ist für den Erwartungswert unerheblich. Daher
ist jede beliebige Permutation der Nummern zulässig.
Der insgesamte Erwartungswert kann vereinfacht ausgedrückt werden, da mehrere Kanäle
5 Frequenzwahl
96
die gleiche Wahrscheinlichkeit besitzen. Hier gehe ich nur auf den gesamten Erwartungswert ein, da die anderen Daten den der geometrischen Verteilung mit entsprechenden
P (C = t) gleichen:
E(erfolgreiche Nachrichten insgesamt)
=
C
X
n · P (C = i) · (1 − P (C = i))n−1 · (1 − (1 − P (C = i))m )
i=1
=n·s·
C/s
X
i=1
n−1 m 1
1
1
· 1− 1−
· 1−
·
s · 2i
s · 2i
s · 2i
Abbildung 5.6: 2. Beispiel einer faktorisierten geometrischen Verteilung
Für die Wahl eines geeigneten Faktors s sollte bedacht werden, dass C mod s = 0 gilt.
Wird die Gleichung nicht erfüllt, ergibt die Summe aller Wahrscheinlichkeiten nicht Eins.
Die Abbildungen 5.5 sowie 5.6 visualisieren die Wahrscheinlichkeitsverteilung. Im ersten
Diagramm wird der Faktor zwei genutzt, im zweiten Diagramm der Faktor drei. Für
die Gültigkeit der totalen Wahrscheinlichkeit besitzt die doppelte Kanalanzahl des
Faktors die kleinste Wahrscheinlichkeit. Je größer der Faktor desto ähnlicher wird die
faktorisierte geometrische Verteilung der Gleichverteilung. Bei einem Faktor von
beide Verteilungen gleich. Daher schließe ich die Nutzung dieses Faktors aus.
C
2
sind
5 Frequenzwahl
5.3.1
97
Abschätzungen für den Erfolg der faktorisierten geometrischen Verteilung
In den Abschätzungen werden einige Ungleichungen eingesetzt, welche ich im folgenden
Lemma vorstelle. Die Ungleichungen sowie die Beweise sind in [Sch 05] zu finden.
Lemma 5.3.2
1. Für alle t > 1:
n
1
1 − t−1
e
≤
t
t
Das Maximum wird mit
n
e
1
1−
t
n
t
1 n
≤ e− t ,
t
erreicht für t = n.
2. Für t ≥ n:
Für
n
1
1
≤
et
t
n
1
1−
t
n
≤
1
,
t
≥ ln n:
1
t
Für 1 ≤
n
t
1
1−
t
1 n
1
≤ e− t ≤
t
tn
≤ ln n:
1
t
1
1−
t
n
≤
ln n
n
Es folgt eine Abschätzung des Erwartungswertes der erfolgreichen Nachrichten für n Sender, m Empfänger sowie C Kanälen. Sei b = d Cs − 1e.
E (erfolgreiche Nachrichten) = n·s·
b
X
i=1
n−1 m !
1
1
1
· 1−
· 1− 1−
s · 2i
s · 2i
s · 2i
n−1 m 1
1
1
· 1−
+
· 1− 1−
s · 2b
s · 2b
s · 2b
 C

dse
n−1 m X
1
1
1

· 1−
· 1− 1−
≈n·s·
i
i
i
s
·
2
s
·
2
s
·
2
i=1
Sei T (i, n, s, m) :=
1
s2i
1−
C
G(n, s, m) := n · s
dse
X
i=1
1 n−1
s2i
1− 1−
1 m
s2i
und
dC
e
n−1 m s
X
1
1
1
T (i, n, s, m) = n · s
1− i
1− 1− i
i
s2
s2
s2
i=1
5 Frequenzwahl
98
Lemma 5.3.3
Es gelte n0 = n − 1. Genutzt werden Ungleichungen aus Lemma 5.1.2.
1. Für s · 2i ≥ n0 :
n mo
n mo
1
1
1
1
min 1, i ≤ T (i, n, s, m) ≤
· · 1−
min 1, i
s · 2i e
e
s2
s · 2i
s2
2. Für s · 2i ≤
n0
:
ln n0
T (i, n, s, m) ≤
3. Für
n0
ln n0
n mo
1
min
1, i
n0 s · 2i
s2
≤ s2i ≤ n:
n mo
n mo
ln n0
1
≤
T
(i,
n,
s,
m)
≤
min
1,
min
1, i
n0 ln n0
s2i
n0
s2
Zum Finden von Schranken bedarf es erneut der Fallunterscheidung, ob mehr Sender
oder Empfänger vorhanden sind. Dabei wird die Abschätzung nach oben benutzt, da die
untere sich nur um einen Faktor unterscheidet.
Fall a) n > m
1. Für s · 2i ≥ n0 aus Lemma 5.3.3 ergibt sich:
C
dse
X
1 m
n·s
s2i s2i
i=1
C
dse
X
1 m
≤n·s
·
n n
i
s·2 >n
m
=θ s·
n
2. Für s · 2i ≤
n0
ln n0
gilt m ≥ s · 2i .
Damit kann T(i,n,s,m) abgeschätzt werden durch
3. Für
n0
ln n0
m
s2i
= θ(1)
≤ s2i ≤ n ergibt sich:
n · s · (log log n) ·
(ln n)2 m
·
n
n
m
=θ s·
· (log n)2 · (log log n)
n
m
θ̃ s ·
n
Der zweite Fall ist eher unwichtig, das diese Konstellation selten auftritt. Die insgesamte
5 Frequenzwahl
99
Abschätzung des Erwartungswertes kann daher durch θ̃ s ·
m
n
erfolgen. Da die untere
Schranke sich nur um einen Faktor unterscheidet, genügt diese Kalkülangabe.
Fall b) n < m
1. Für s2i ≥ n0 :
n·s·
m
X
s·2i ≥n
=n·s·(
1
·1
s · 2i
1
1
1
+
+
+ . . .) = θ(s)
n 2n 3n
Da der zweite Fall unwichtig für die Abschätzung ist, wird nur noch der dritte Fall aus
Lemma 5.3.3 überprüft:
3. Für
n0
ln n0
≤ s2i ≤ n gilt die Abschätzung:
θ s · (log n)2 · (log log n) = θ̃ (s)
Theorem 5.3.4
Der Erwartungswert für die erfolgreich versendeten Nachrichten unter der Nutzung der
faktorisierten geometrischen Verteilung ist abhängig vom Empfänger-Sender-Verhältnis.
Vorausgesetzt wird die Erfüllung von C ≥ s log ns sowie n ≥ s:
Falls n ≥ m dann gilt E(erfolgreiche Nachrichten) = θ̃ s · m
.
n
Sonst E(erfolgreiche Nachrichten) = θ̃ (s).
Die Voraussetzungen bezüglich C, n und s können ohne Einschränkung angenommen
werden. Schließlich muss C groß genug sein für den Streckungsfaktor s. Gelte n < s
so würden sich die n Sender sehr wahrscheinlich auf den s Kanälen mit höchster
Wahrscheinlichkeit verteilen. Dieser Fall entspricht dann fast der uniformen Verteilung
für s Kanäle.
5 Frequenzwahl
5.4
100
Beurteilung der einzusetzenden Wahrscheinlichkeitsverteilung
Vorgestellt habe ich zuvor die Gleichverteilung, die “reine“ sowie die faktorisierte
geometrische Verteilung für die Kanalwahl. Wie in Abschnitt 5.2 bereits gesehen, ist die
geometrische Verteilung nur in Extremsituationen gut. Daher ist es ungünstig, sie für die
Kanalwahl einzusetzten.
Des Weiteren ist bekannt, dass in bestimmten Runden2 alle Knoten eine Nachricht oder
ein Beacon senden (siehe 4.3). Die Gleichverteilung erzielt in diesen Runden stets die
besten Ergebnisse, wenn die Kanalanzahl der Knotenanzahl in Reichweite des gleichen
Regals entspricht. Für die Runden mit weniger Kommunikationsteilnehmern ist die
faktorisierte geometrische Verteilung gut nutzbar. Resultierend aus diesen Beobachtungen heraus wird im Folgenden geprüft, inwiefern eine Kombination der Verteilungen zu
nutzen ist:
Für die regalweise Synchronisation erfolgt ein Vergleich der Erwartungswerte beider
Verteilungen. Anschließend wird der optimalen Faktor für die faktorisierte geometrische
Verteilung gesucht. Mit einem gegebenen Faktor ist es möglich, Verläufe von Erwartungswerten unterschiedlicher Empfänger-Sender-Verhältnissen gegenüberzustellen (siehe
5.4.3). Anhand dieser Untersuchungen werden die Konstellationen deutlich, in welchen
die Gleichverteilung besser ist und in welchen nicht. Zum Abschluß erfolgt eine genaue
Beschreibung, wie die Gleichverteilung und die faktorisierte geometrische Verteilung zu
kombinieren sind.
5.4.1
Beispielrechnungen für die regalweise Synchronisation
Die regalweise Synchronisation wird genauer untersucht. Sie eignet sich zum einen besser
für die Illustration der zu nutzenden Kombination (siehe 5.4.4). Zum anderen ist sie dem
globalen Ansatz zu bevorzugen (siehe 4.3.3).
Es werden im Folgenden zwei Konstellationen für Supermärkte laut den expliziten
Voraussetzungen (vergleiche 2.2.2) untersucht.
2
in der ersten Runde bei der regalweisen Synchronisation oder in der zweiten und zehnten Runde des
globalen Ansatzes
5 Frequenzwahl
101
1. Szenario, 2, 10 m Durchgangsbreite
Mit einer durchschnittlichen Artikelbreite von acht Zentimetern, befinden sich 120
Knoten im Sendebereich des eigenen Regals (siehe 2.2.5). Die Empfängerzahl beruft sich
damit auf neunzig.
Diese Daten setze ich in die im Anhang A.1 vorgestellte regalweise Synchronisation ein.
In den ersten drei Runden der Sendephasen wird die Gleichverteilung für die Kanalwahl
genutzt. In den folgenden Runden kommt die faktorisierte geometrische Verteilung
zum Einsatz. Allgemein wird eine fremde Nachricht mit einer Wahrscheinlichkeit von
0, 75 weitergeleitet, wenn eigene neue Sensordaten vorhanden sind. Der Server simuliert
zunächst neunzig verschiedene Empfänger.
a) Liege die Wahrscheinlichkeit, dass bei einem Knoten eigene Sensordaten zum
Aufwachpunkt existieren, bei zehn Prozent. Die Ergebnisse der regalweisen Synchronisation nach drei Runden lauten:
Verbleibende Nachrichten:
Regal 1: 1
Regal 2: 21
Regal 3: 36
Regal 4: 43
Regal 5: 44
Angekommene Nachrichten: 25
damit ergibt sich für die vierte Runde:
für Regal 1: 1 Sender und 74 Empfänger
für Regal 2: 21 Sender und 63 Empfänger
für Regal 3: 36 Sender und 58 Empfänger
für Regal 4: 43 Sender und 57 Empfänger
für Regal 5: 44 Sender
Die Erwartungswerte für die Anzahl von erfolgreich versendeten Nachrichten in
der vierten Runde sind von der Gleichverteilung und der faktorisierten geometrischen
Verteilung zu vergleichen. Diese werden für die durchschnittliche Anzahl von verbleiben
Sendern, also 33 (Mittelwert der Regale 2, 3 und 4) und 120 Kanälen berechnet. Als
Anzahl der Empfänger wird ebenso der Mittelwert von 59 betrachtet.
Diese Empfängerzahl entsteht durch Zahl aller Empfänger in Sendereichweite,welches
−3/4· verbleibende Sender im folgenden Regal entspricht.
Das erste und das fünfte Regal werden bei der Mittelung der Werte außer Betracht
5 Frequenzwahl
102
gelassen, da für beide eine besondere Situation besteht: Im ersten Regal finden schließlich
keine Empfangsoperationen statt und das fünfte Regal kommuniziert direkt mit dem
Server.
Die Gleichverteilung hat für diese Konstellation einen Erwartungswert von etwa 9, 83.
Abbildung 5.7: Erwartungswert der faktorisierten Verteilungzu 1a)
In Abbildung 5.7 ist die Kurve des Erwartungswertes auf der y-Achse aufgetragen. Auf
der x-Achse werden unterschiedliche Faktoren zur Streckung getestet.
Die faktorisierte geometrische Verteilung erreicht einen besseren Erwartungswert von
etwa 10, 27 bei Faktor 28.
b) Die Wahrscheinlichkeit für eine eigene Nachricht liege nun bei ps= 0,05.
Verbleibende Nachrichten:
Regal 1: 0
Regal 2: 8
Regal 3: 13
Regal 4: 17
Regal 5: 19
Angekommene Nachrichten: 11
damit ergibt sich für die vierte Runde:
für Regal 1: 0 Sender und 84 Empfänger
für Regal 2: 8 Sender und 80 Empfänger
5 Frequenzwahl
103
für Regal 3: 13 Sender und 77 Empfänger
für Regal 4: 17 Sender und 77 Empfänger
für Regal 5: 19 Sender
Bei der Überprüfung für den Erwartungswert werden wiederum die Mittelwerte
von Sendern und Empfängern genommen: 13 Sender und 78 Empfänger.
Abbildung 5.8: Erwartungswert der faktorisierten Verteilung zu 1b)
Die Gleichverteilung hat einen Erwartungswert von 5, 63. Die Kurve des Erwartungswertes für unterschiedliche Faktoren der faktorisierten geometrischen Verteilung ist in
Abbildung 5.8 zu sehen. Der maximale Erwartungswert liegt bei 14 mit einem Wert von
6, 97. Dieser Erwartungswert ist deutlich höher als der Wert der Gleichverteilung!
Für die nächsten beiden Überprüfungen wird eine durchschnittliche Artikelbreite von
zehn Zentimetern betrachtet. Damit sind 96 Sender und 72 Empfänger in Reichweite.
Die Kanalanzahl entspricht weiterhin der Anzahl der Sender in Reichweite und wird
somit auf 96 gesenkt. Der Server simuliert nun fünfzig Empfänger.
c) ps = 0.1
Verbleibende Nachrichten:
Regal 1: 1
Regal 2: 16
Regal 3: 28
5 Frequenzwahl
104
Regal 4: 34
Regal 5: 39
Angekommene Nachrichten: 15
damit ergibt sich für die vierte Runde:
für Regal 1: 1 Sender und 78 Empfänger
für Regal 2: 16 Sender und 69 Empfänger
für Regal 3: 28 Sender und 65 Empfänger
für Regal 4: 34 Sender und 61 Empfänger
für Regal 5: 39 Sender
Es ergeben sich die Mittelwerte von 26 Sendern und 65 Empfängern zur Berechnung des Erwartungswertes.
Bei der Gleichverteilung beträgt der Erwartungswert 8, 85. Der maximale Erwartungswert
für die faktorisierte geometrische Verteilung ist 9, 62 (siehe Abbildung 5.9) bei einem
Faktor von 22.
Abbildung 5.9: Erwartungswert der faktorisierten Verteilungzu 1c)
d) ps = 0.05
Verbleibende Nachrichten:
5 Frequenzwahl
105
Regal 1: 0
Regal 2: 6
Regal 3: 10
Regal 4: 14
Regal 5: 18
Angekommene Nachrichten: 8
damit ergibt sich für die vierte Runde:
für Regal 1: 0 Sender und 86 Empfänger
für Regal 2: 6 Sender und 83 Empfänger
für Regal 3: 10 Sender und 80 Empfänger
für Regal 4: 14 Sender und 76 Empfänger
für Regal 5: 18 Sender
Abbildung 5.10: Erwartungswert der faktorisierten Verteilung zu 1d)
Als Mittelwerte werden zur Berechnung des Erwartungswertes 10 Sender und 80
Empfänger genutzt.
Das Maximum für die faktorisierte geometrische Verteilung beträgt 5, 91 für x = 12. Für
die Gleichverteilung ist der Erwartungswert 4, 53.
5 Frequenzwahl
106
2. Szenario, 1, 20 m Durchgangsbreite
Mit einer durchschnittlichen Artikelbreite von acht Zentimetern befinden sich 74 Knoten
im Sendebereich der eigenen Regalreihe (siehe Beispiel 2.2.5). Damit ergibt sich eine
Empfängerzahl von 55.
Der Server simuliert vierzig verschiedene Empfänger. Die weiteren Annahmen sind wie
oben gewählt.
a) Die Wahrscheinlichkeit für eigene Sensordaten zum Aufwachpunkt liegen bei
zehn Prozent. Ergebnisse der regalweisen Synchronisation nach drei Runden:
Verbleibende Nachrichten:
Regal 1: 1
Regal 2: 12
Regal 3: 21
Regal 4: 26
Regal 5: 30
Angekommene Nachrichten: 12
damit ergibt sich für die vierte Runde:
für Regal 1: 1 Sender und 46 Empfänger
für Regal 2: 12 Sender und 39 Empfänger
für Regal 3: 21 Sender und 36 Empfänger
für Regal 4: 26 Sender und 39 Empfänger
für Regal 5: 30 Sender
20 Sender und 37 Empfänger sind die resultierenden Durchschnittswerte.
Die Gleichverteilung hat für diese Konstellation einen Erwartungswert von etwa 6, 11.
In Abbildung 5.11 ist zu erkennen, dass die faktorisierte geometrische Verteilung einen
besseren Erwartungswert von etwa 6, 73 bei x = 30 erreicht.
b) Die Wahrscheinlichkeit für eine eigene Nachricht liege nun bei ps= 0,05.
Verbleibende Nachrichten:
Regal 1: 0
Regal 2: 5
Regal 3: 9
Regal 4: 11
5 Frequenzwahl
107
Abbildung 5.11: Erwartungswert der faktorisierten Verteilung zu 2a)
Regal 5: 13
Angekommene Nachrichten: 6
damit ergibt sich für die vierte Runde:
für Regal 1: 0 Sender und 51 Empfänger
für Regal 2: 5 Sender und 48 Empfänger
für Regal 3: 9 Sender und 47 Empfänger
für Regal 4: 11 Sender und 47 Empfänger
für Regal 5: 13 Sender
Zur Überprüfung des Erwartungswertes in der vierten Runde werden die Mittelwerte von acht Sendern und 47 Empfänger eingesetzt.
Die Kurve des Erwartungswertes zeigt Abbildung 5.12. Bei x = 8 wird das Maximum
von 4, 33 angenommen. Dieser Erwartungswert ist deutlich höher als der Wert der
Gleichverteilung, welcher nur einen Wert von 3, 44 erreicht.
Für die nächsten beiden Überprüfungen wird eine durchschnittliche Artikelbreite von
zehn Zentimetern betrachtet. Damit befinden sich 30 Sender und 23 Empfänger in
Reichweite. Die Kanalanzahl wird entsprechend der Senderzahl auf 30 gesenkt. Der
5 Frequenzwahl
108
Abbildung 5.12: Erwartungswert der faktorisierten Verteilung zu 2b)
Server simuliert nun zwanzig Empfänger.
c) ps = 0.1
Verbleibende Nachrichten:
Regal 1: 0
Regal 2: 5
Regal 3: 9
Regal 4: 11
Regal 5: 12
Angekommene Nachrichten: 7
damit ergibt sich für die vierte Runde:
für Regal 1: 0 Sender und 19 Empfänger
für Regal 2: 5 Sender und 16 Empfänger
für Regal 3: 9 Sender und 15 Empfänger
für Regal 4: 11 Sender und 14 Empfänger
für Regal 5: 12 Sender
Es ergeben sich die Mittelwerte von 8 Sendern und 15 Empfängern zur Berechnung des
Erwartungswertes.
5 Frequenzwahl
109
Abbildung 5.13: Erwartungswert der faktorisierten Verteilung zu 2c)
Für die Gleichverteilung beträgt der Erwartungswert 2, 52. Der maximale Wert für
die faktorisierte geometrische Verteilung nimmt 2, 66 (siehe Abbildung 5.13) bei einem
Faktor von sechs an.
d) ps = 0.05
Verbleibende Nachrichten:
Regal 1: 0
Regal 2: 2
Regal 3: 4
Regal 4: 4
Regal 5: 5
Angekommene Nachrichten: 3
damit ergibt sich für die vierte Runde:
für Regal 1: 0 Sender und 22 Empfänger
für Regal 2: 2 Sender und 20 Empfänger
für Regal 3: 4 Sender und 20 Empfänger
für Regal 4: 4 Sender und 19 Empfänger
für Regal 5: 5 Sender
5 Frequenzwahl
110
Abbildung 5.14: Erwartungswert der faktorisierten Verteilung zu 2d)
3 Sendern und 19 Empfängern sind die Durchschnittswerte für die Berechnung.
Das Optimum für die faktorisierte geometrische Verteilung ist 1, 75 für x = 4. Für die
Gleichverteilung beträgt der Erwartungswert 1, 33.
Beobachtung
Die faktorisierte geometrische Verteilung besitzt stets einen besseren Erwartungswert als
die Gleichverteilung, auch wenn die Unterschiede manchmal nur geringfügig sind.
Es gibt natürlich trotzdem eine Vielzahl von Konstellationen, für welche die Gleichverteilung bessere Ergebnisse liefert. Das Verhältnis der Erwartungswerte beider Verteilungen
wird in Abschnitt 5.4.3 noch einmal genauer untersucht. Für diese Untersuchungen muss
jedoch ein Faktor bekannt sein, mit welchem die faktorisierte geometrische Verteilung
stets gute Ergebnisse erzielt. Dies folgt im nächsten Abschnitt.
5.4.2
Einzusetzender Faktor in der faktorisierten geometrischen
Verteilung
Als zu nutzender Faktor zur Streckung der “reinen “ geometrischen Verteilung kann jede
beliebige Zahl zwischen 1 und C/2 eingesetzt werden. Beim Faktor Eins erhält man die
“reine “ geometrische Verteilung, bei C/2 die uniforme Verteilung.
5 Frequenzwahl
111
Abbildung 5.15: 1. Beispielverlauf für ansteigenden Streckungsfaktor
Daher ist nicht jeder Faktor für eine Nutzung gleich gut geeignet. Schließlich soll die faktorisierte geometrische Verteilung nicht polarisieren und in vielen Konstellationen Abhilfe
schaffen, in denen die Gleichverteilung keine so guten Werte liefert.
Zur Findung eines geeigneten Faktors wurden neben den bereits im vorherigen Abschnitt
gegebenen Kurven, weitere Graphen angefertigt. Dabei wird als Kanalanzahl der Wert
von 120 genutzt. Auf der y-Achse ist der Erwartungswert und auf der x-Achse wird der
Streckungsfaktor aufgetragen . In den Abbildungen 5.15 bis 5.18 sind stets 28 Sender vertreten, die Anzahl der Empfänger nimmt von Darstellung zu Darstellung kontinuierlich
ab.
In Abbildung 5.19 wurde für die Bestimmung des Erwartungswertes die Anzahl der Sender
auf fünfzig erhöht.
Die Graphen zeigen, dass gute Erwartungswerte für einen Faktor von etwa 12 oder 14
angenommen werden. Der maximal erreichte Erwartungswert wird zwar manchmal für
eine größere Streckung erreicht, allerdings ist dieser Wert nicht deutlich größer als der
Erwartungswert bei 12 oder 14. Um sicher zu gehen, dass ein solcher Faktor wirklich gut
ist, werden im Anschluss verschiedene Konstellationen miteinander verglichen.
5 Frequenzwahl
112
Abbildung 5.16: 2. Beispielverlauf für ansteigenden Streckungsfaktor
Erwartungswerte von unterschiedlichen Konstellationen können schlecht miteinander verglichen werden. Schließlich geht in den Erwartungswert stets die Anzahl der Sender, der
Empfänger und der Kanäle ein. Daher definiere ich eine Erfolgsquote.
Definition 5.4.1 Erfolgsquote
Sei n die Anzahl der Sender, m die Anzahl der Empfänger und C die Anzahl der
genutzten Kanäle.
Die Erfolgsquote EQ wird definiert als:
EQ(n, m, C) =
E(erfolgreiche Nachrichten)
n
m
C
Im Nenner der Erfolgsquote steht das Verhältnis von Empfängern zu Kanälen, im Zähler
das Verhältnis von erfolgreichen Nachrichten zu Sendern.
Diese Erfolgsquote kann sowohl für die uniforme Verteilung als auch für die faktorisierte
geometrische Verteilung mit entsprechenden Erwartungswerten berechnet werden.
Die
te
ter
Dateien
sind
den
zur
auf
der
Namen
Berechnung
beigefügten
und
CD
Visualierung
unter
der
Erfolgsquo-
Mupad Quellen
¯
“FaktorisiserteGeometrische Erfolgsquote.mnb“
¯
unsowie
5 Frequenzwahl
113
Abbildung 5.17: 3. Beispielverlauf für ansteigenden Streckungsfaktor
“Gleichverteilung Erfolgsquote.mnb“ zu finden.
¯
In den folgenden Abbildungen werden auf der y-Achse die Erfolgsquote (EQ) und auf der
x-Achse der Streckungsfaktor aufgetragen. Die Daten sind Mittelwerte der Erfolgsquote
von verschiedenen Empfänger-Sender-Verhältnissen. Für die erste Abbildung 5.20 bedeutet dieses, dass die Erfolgsquote für 5, 15, 25 und 35 Empfänger mit jeweils 10, 20, 30, 40,
50 und 60 Sender gemittelt wurde. Angemerkt sei, dass für die erste Mittelwertberechnung eine Kanalzahl von 120 genutzt wurde und die Gleichverteilung eine Erfolgsquote
von 0, 704 erreicht.
Für die Daten in Abbildung 5.21 werden für die Bestimmung der Mittelwerte 192 Kanäle
eingesetzt. Die Gleichverteilung liefert hier eine Erfolgsquote von 0, 677. Die faktorisierte
geometrische Verteilung hat ihr Maximum bei 1.55.
Die Kurve für 96 Kanäle ist in Abbildung 5.22 zu sehen. Die Gleichverteilung hat eine
Erfolgsquote von 0, 647, die faktorisierte geometrische Verteilung eine höhere Quote von
etwa 0, 8.
5 Frequenzwahl
114
Abbildung 5.18: 4. Beispielverlauf für ansteigenden Streckungsfaktor
Lemma 5.4.2
Insgesamt bestätigen die Kurvenverläufe der Erfolgsquote, dass für die meisten
Verhältnisse ein Faktor um 12-14 gut ist. Erfolgreich ist jedoch auch ein Faktor von
C
.
5
Dieses ist verständlich, da in diesem Fall nur vier unterschiedliche Wahrscheinlichkeiten
bei der Kanalwahl existieren. Damit gelangt man schon nahe an die Uniforme.
Zudem rechtfertigt die Erfolgsquote einen Einsatz zusätzlich zur Gleichverteilung, da in
den obigen Durchschnittswerten diese Wahrscheinlichkeitsverteilung besser als die Gleichverteilung ist.
5 Frequenzwahl
Abbildung 5.19: 5. Beispielverlauf für ansteigenden Streckungsfaktor
Abbildung 5.20: 1. Beispiel der Erfolgsquote für ansteigenden Streckungsfaktor
115
5 Frequenzwahl
Abbildung 5.21: 2. Beispiel der Erfolgsquote für ansteigenden Streckungsfaktor
Abbildung 5.22: 3. Beispiel der Erfolgsquote für ansteigenden Streckungsfaktor
116
5 Frequenzwahl
5.4.3
117
Vergleichsverläufe des Erwartungswertes
Zum besseren Vergleichen der beiden Verteilungen, sind in den folgenden Abbildungen
die Erwartungswerte (y-Achse) für eine ansteigende Anzahl von Sendern (x-Achse) dargestellt. Für alle Diagramme wurden 120 Kanäle, für die faktorisierte geometrische Verteilung ein Streckungsfaktor von zwölf und eine feste Anzahl von Empfängern vorausgesetzt.
Die blaue Kurve zeigt die Gleichverteilung, die faktorisierte geometrische Verteilung wird
in grün dargestellt.
Abbildung 5.23: 1. Vergleich der faktorisierten geom. Verteilung und der Gleichverteilung
In Abbildung 5.23 war die Empfängerzahl gleich zwanzig. Es ist deutlich zu erkennen,
dass bei wenigen Sendern die faktorisierte geometrische Verteilung einen besseren Erwartungswert als die Gleichverteilung aufweist. Die uniforme Verteilung wird mit zunehmender Anzahl von Sendern immer besser, schließlich sind im Erwartungswert immer mehr
Kanäle mit Sendern belegt. Bei n = 60 liegt damit auch das Maximum. Im Erwartungswert befindet sich dann auf jedem zweiten Kanal ein Sender.
Die Daten in Abbildung 5.24 sind für vierzig Empfänger berechnet worden. Mit einer
höheren Senderanzahl ist die faktorisierte geometrische Verteilung in der Anfangsphase
nicht mehr wesentlich besser.
Bei der faktorisierten geometrischen Verteilung finden sich wenige Sender auf den Kanälen
5 Frequenzwahl
118
Abbildung 5.24: 2. Vergleich der faktorisierten geom. Verteilung und der Gleichverteilung
ein, welche am wahrscheinlichsten auch ein Empfänger wählt. Da bei der Gleichverteilung
alle Kanäle die gleiche Wahrscheinlichkeit besitzen, gibt es keine Kanäle auf denen sich
Knoten eher begegnen als auf anderen.
Abbildung 5.25: 3. Vergleich der faktorisierten geom. Verteilung und der Gleichverteilung
Eine extreme Konstellation ist in Abbildung 5.25 zu sehen. Dort sind die Daten für 80
Empfänger dargestellt. Hier ist die faktorisierte geometrische Verteilung bis zu einer
Senderanzahl von 21 überlegen. Wichtig zu bemerken ist, dass bei vierzig Sendern die
Gleichverteilung schon ab einer Anzahl von 14 Sendern einen besseren Erwartungswert
5 Frequenzwahl
119
liefert. Jedoch ist die Differenz zwischen den Erwartungswerten in dieser Abbildung
deutlich größer.
Diese Darstellungen zeigen, dass ein zu früher Einsatz der faktorisierten geometrischen Verteilung nicht gut ist. Allgemein sind Abschätzungen der Verhältnisse von
sendenden Stationen und verfügbaren Empfängern schwer zu tätigen. Daher ist es
sinnvoll, ein ausgewogenes Verhältnis der genutzten Wahrscheinlichkeitsverteilungen zu
nutzen. Wird in der Hälfte der Runden die Gleichverteilung und in der andere Hälfte die
faktorisierte geometrische Verteilung eingesetzt, sind alle Konstellationen berücksichtigt.
5.4.4
Kombination für das optimierte 1 QK-Protokoll
In den vorherigen Abschnitten wurde gezeigt, dass sowohl der Einsatz der Gleichverteilung als auch der faktorisierten geometrischen Verteilung berechtigt ist.
Zunächst wird die einfache Variante der regalweisen Synchronisation betrachtet.
Dabei sind die Sendephasen der Regalreihen disjunkt (siehe 4.3.1). Aufgrund der
Ergebnisse darf die Gleichverteilung nicht zu früh für die Kanalwahl abgelöst werden.
Wenn k die Anzahl der Runden der Sendephase ist, empfiehlt sich eine Nutzung der
Gleichverteilung ungefähr für die ersten b k2 c Runden und anschließend der faktorisierte
geometrische Verteilung mit einem Faktor um 12 oder 14. Der wirklich eingesetzte
Faktor hängt natürlich von der Anzahl der Kanäle ab. Schließlich muss für die totale
Wahrscheinlichkeit bezüglich des Faktors s C mod s = 0 gelten.
Ist die Wahrscheinlichkeit für eigene Sensordaten nach dem Aufwachen höher als 0.15,
senden mehr Sender in Reichweite. Daher ist ein längerer Einsatz der Gleichverteilung
sinnvoll und es sollte erst nach b 32 · kc Runden ein Wechsel der genutzten Wahrscheinlichkeitsverteilung erfolgen.
Für die regalweise Synchronisation, in der sich die Sendephasen benachbarter Hopdistanzen sich überschneiden (siehe zur Verdeutlichung die Abbildung 5.26) ist die
faktorisierte geometrische Verteilung von besonders großem Nutzen.
Es werden Knoten der Distanz i betrachtet, welches Nachrichten zum Server sendet. Die
Sensorknoten des nächsten Hops befinden sich somit in Distanz i − 1. Zudem wird ohne
5 Frequenzwahl
120
Abbildung 5.26: Aufgabe der disjunkten Sendebereiche der einfachen Variante
Einschränkung der Allgemeinheit festgelegt, dass i gerade ist.
In der ersten Runde der Sendephase (blau) empfangen ausschließlich die Sensorknoten
in Regalreihe i + 1. Daher sollte auf jeden Fall die Gleichverteilung genutzt werden. Für
die zweite Runde setzte ich ebenfalls die Gleichverteilung an, da auch hier die meisten
Sensorknoten in i noch senden werden.
Ab der dritten oder vierten Runde werden wahrscheinlich viele Nachrichten bereits
verschickt worden sein. Dies führt dazu, dass die Anzahl der Sender in Regal i verringert
ist und die Anzahl der Sender in Regal i + 1 erhöht wurde.
Um nun einen guten Nachrichtendurchsatz zu erreichen, wird die faktorisierte geometrische Verteilung genutzt. Dabei besitzen die Knoten mit verschiedenen Hopdistanzen
jedoch für den Sendevorgang nicht die gleiche Wahrscheinlichkeitsverteilung:
Knoten mit gerader Hopdistanz nutzen für das Senden die faktorisierte geometrische
Verteilung so, dass die Kanäle 0 . . . s − 1 die höchste Wahrscheinlichkeit besitzen.
Sensorknoten ungerader Distanz setzen die umgekehrte Kanalnummerierung ein. Den
letzten s Kanälen wird somit die höchste Wahrscheinlichkeit zugesprochen. Für den
Empfangsvorgang nutzen die Knoten jeweils die umgekehrte Kanalnummerierung.
Falls die Sendereichweite in etwa so begrenzt ist, dass Sensorknoten aus i nur Knoten aus
den Regalen i − 1 und i + 1 erreichen, bedarf es nur der Unterscheidung für die Kanalnummerierung von zwei benachbarten Regalen. Umfaßt die Sendereichweite mehr virtuelle
Regalreihen, dessen Sender keine disjunkten Sendephasen haben (siehe Abbildung 5.27),
müssen mehr Variationen der Kanalnummerierung genutzt werden.
Setzt man die regalweise Synchronisation mit der von der Hopdistanz abhängigen faktorisierten geometrischen Verteilung ein, werden mit Sicherheit bessere Ergebnisse als mit
dem globalen Ansatz erreicht. Zudem ist das Verfahren besser als die Gleichverteilung:
Zwei Knoten benachbarter Regale senden bei der uniformen Verteilung mit der Wahr-
5 Frequenzwahl
121
Abbildung 5.27: Regalweise Synchronisation mit vielen Sendephasenüberschneidungen
scheinlichkeit von 1/C auf dem gleichen Kanal. Die Wahrscheinlichkeit unterscheidet sich
dabei nicht von der Wahrscheinlichkeit, dass zwei Knoten der gleichen Distanz auf dem
gleichen Kanal senden.
Bei dem obigen Ansatz mit den umgekehrten Kanalnummerierungen für die Wahrscheinlichkeiten senden Knoten mit gerader Hopdistanz mit der höchsten Wahrscheinlichkeit
auf den ersten s Kanälen. Die Knoten mit ungerader Distanz senden auf den gleichen
Kanälen nur mit der geringsten Wahrscheinlichkeit. Zur Verdeutlichung der Dimensionen
wird hier ein Beispiel gegeben:
Beispiel 5.4.3
Es seien 120 Kanäle gegeben und ein Faktor von 12 wird für die Streckung der faktorisierten geometrischen Verteilung genutzt. Knoten aus dem Regal i, mit i gerade, senden auf
den Kanälen 0 . . . 11 mit einer Wahrscheinlichkeit von
1
24
≈ 0, 0417. Knoten des Regals
i + 1 senden auf den gleichen Kanälen jedoch nur noch mit einer Wahrscheinlichkeit von
1
12·210
=
1
12288
≈ 8, 14 · 10−5 .
In der Gleichverteilung hat jeder Kanal die Wahrscheinlichkeit von
1
120
≈ 8, 33 · 10−3 .
Anhand des Beispiels ist erkennbar, dass Störungen ziemlich unwahrscheinlich sind,
die aufgrund von gleichzeitigen Sendern verschiedener Regale resultieren könnten. Da
durch eine deutliche Überschneidung der Sendephasen die Latenzzeit für die Nachrichtenübertragung zum Server drastisch reduziert wird, ist dieses Verfahren sehr gut geeignet.
Bemerkung 5.4.4
In Abschnitt 5.4.2 wurde festgestellt, dass ein Faktor zwischen 12 und 14 gute Ergebnisse
erzielt. Da die Hardware dreizehn Kanäle unterstützt, empfiehlt sich der Faktor dreizehn.
5 Frequenzwahl
122
So besitzt bei der Simulation mehrerer Kanäle jeder Kanal in der internen Runde die
gleiche Wahrscheinlichkeit.
Des Weiteren ist anzumerken, dass die faktorisierte geometrische Verteilung nahezu die
gleichen Ergebnisse erzielt, wenn statt C zum Beispiel 3/4 · C Kanäle genutzt werden.
Dies ist damit zu begründen, da die geringsten Wahrscheinlichkeiten sehr kleine Werte
sind.
Wenn für die Gleichverteilung C/13 interne Runden existieren, kann für die faktorisierte
geometrische Verteilung die Anzahl der internen Runden verringert werden. Dies führt
zu einen schnelleren Rundendurchlauf, sowie zur Einsparung von Energie.
Darüber hinaus ist beweisbar, dass keine andere Wahrscheinlichkeitsverteilung eine bessere absolute Anzahl von erfolgreichen Nachrichten in einer Runde aufweist.
Ausgenommen ist dabei die uniforme mit gleicher Anzahl von Sendern und Kanälen.
Beim globalen synchronen Aufwachpunkt ist die Anzahl der konkurrierenden Sender
deutlich höher als bei der regalweisen Synchronisation. Jedoch kann auch mit einer
versetzten Nutzung der faktorisierten geometrischen Verteilung die Zahl der Interferenzen
verringert werden.
5 Frequenzwahl
123
Kapitel 6
Fairness des Routings
Als zweiten Optimierungsansatz für das 1 QK-Protokoll habe ich die Nachrichtenweiterleitung gewählt. Zunächst folgt die Problemdarstellung sowie die Lösungsidee.
Problemdarstellung 6.0.5 Fairness
Im 1 QK-Protokoll werden die eigenen Nachrichten immer bevorzugt. Liegen eigene neue
Sensordaten vor, wird aus diesen Daten eine Nachricht erstellt, auch wenn eine fremde
Nachricht empfangen wird.
Dies kann zu einem Nachrichtenstau führen. Die Nachrichten von weiter entfernten Knoten werden benachteiligt. Damit existiert im Routing keine Fairness.
Zunächst möchte ich die Problematik eines aufkommenden Nachrichtenstaus verdeutlichen, anschließend gehe ich auf Wahrscheinlichkeitsfunktionen ein, welche
Entscheidungsfunktionen über eine Weiterleitung beinhalten.
In Abbildung 6.1 ist ein Sensornetz dargestellt. Die blauen Knoten leiten Nachrichten zum Server weiter. Ein magenta farbener Nachrichtenumschlag bedeutet,
dass eigene Sensordaten vorliegen. Ein später erscheinender grüner Nachrichtenumschlag zeigt an, dass eine fremde Nachricht bearbeitet wird. Anhand von schwarzen
Strichen werden Sendeversuche dargestellt. Dabei wird das 1 QK-Protokoll bereits mit
Synchronisierung eingesetzt. Die Kanalwahl ist hier nicht von Interesse. Als erfolgreiche
Übermittlung wird daher als Vereinfachung für dieses Kapitel definiert, wenn ein
Empfänger in Reichweite die Nachricht annehmen kann.
Die Sensorknoten haben eine Sendereichweite, so dass sie nur alle direkt benachbarten
Knoten erreichen können. Knoten sind nicht erreichbar für andere Sender, wenn sie
eigene Daten oder eine fremde Nachricht zum Aufwachzeitpunkt besitzen. Dies wird mit
6 Fairness des Routings
125
einem gelben Blitz symbolisiert. Knoten mit eigenen Daten lauschen zwar nach einer
Nachricht, aber es folgt definitiv keine Weiterleitung.
Abbildung 6.1: Visualisierung des Nachrichtenstaus - Ausgangsposition
Abbildung 6.2: Visualisierung des Nachrichtenstaus - Erste Sendephase
In der Ausgangsposition haben vereinzelte Knoten neue Sensordaten zum Weiterleiten.
Die Sendephase ist in Abbildung 6.2 visualisiert. Es waren nicht alle Sendeversuche in der
6 Fairness des Routings
126
ersten Sendephase erfolgreich und ein Knoten hat seine eigene Nachricht nicht versenden
können (vergleiche Abbildung 6.3).
Abbildung 6.3: Visualisierung des Nachrichtenstaus - Nach der ersten Sendephase
Vor der nächsten Wachphase wurden viele Warenbestände verändert und die meisten
Knoten im Netz besitzen versandbereite Daten (Abbildung 6.4).
Abbildung 6.4: Visualisierung des Nachrichtenstaus - Vor der zweiten Sendephase
6 Fairness des Routings
127
Dadurch verringert sich der Nachrichtendurchsatz innerhalb des Netzes deutlich, erkennbar in Abbildung 6.5.
Abbildung 6.5: Visualisierung des Nachrichtenstaus - Die zweite Sendephase
Die Abbildung 6.6 zeigt, dass nun auch die restlichen Knoten neue Sensordaten aufzuweisen haben. Das Netz ist ziemlich ausgelastet, und es existiert immer noch ein geringer
Nachrichtendurchsatz. Die Knoten in der ersten Reihe haben bei jedem Aufwachen die
Chance eigene Daten zum Server zu leiten. Knoten in den hinteren Reihen erreichen nicht
annähernd diese geringe Latenz.
Die Wahrscheinlichkeit im Release 2.1, dass eine fremde Nachricht nach dem Hören eines
Knotens weitergeleitet wird, beträgt (1 − p). Dabei entspricht p der Wahrscheinlichkeit,
dass der Knoten eigene neue Sensordaten vorliegen hat. Eine Nachricht wird somit mit
der Wahrscheinlichkeit von (1 − p)x hintereinander folgende x Hops befördert. Der Verlauf
der Wahrscheinlichkeit für p = 0.45 ist in Abbildung 6.7 zu sehen. Auf der y-Achse wird
die Wahrscheinlichkeit aufgetragen, dass die Nachricht durchgängig x Hops weitergeleitet
wird.
Wie intuitiv zu vermuten nimmt die Wahrscheinlichkeit für die Weiterleitung mehrerer
Hops mit sinkendem p zu (vergleiche 6.8).
6 Fairness des Routings
128
Abbildung 6.6: Visualisierung des Nachrichtenstaus - Nach der zweiten Sendephase
Bei der Realisierung der regalweisen Synchronisation (siehe A.1) wurde angenommen, dass
eine fremde Nachricht mit 75 Prozent weitergeleitet wird, wenn eigene Daten vorliegen.
Dies führt zu der Wahrscheinlichkeitsfunktion abgebildet in 6.9 und stellt schon eine
wesentliche Verbesserung dar.
Gesucht wird jedoch eine Wahrscheinlichkeitsfunktion, so dass der Wert für alle Hops nahezu gleich ist. Diese soll also möglichst konstant sein. Dazu müssen bei der Überprüfung,
ob die fremde Nachricht weitergeleitet werden kann, die bereits zurückgelegten Hops
einberechnet werden.
Die maximale Differenz der Funktionswerte liegt stets zwischen dem Wert für einen
Hop und der maximalen Hopanzahl (entspricht der Konstante ROUTELENGTH im 1
QK-Protokoll).
Ich gehe an dieser Stelle von einer maximalen Hopdistanz von 24 aus. ROUTELENGTH bekommt im 1 QK-Protokoll nur einen Wert von zehn zugewiesen. Wenn ich
aber die Fairness bis zu 24 Hops optimiere, ist die Funktion für Weiterentwicklungen
immer noch zulässig. Zudem differieren die Werte dann auch für höhere Hopanzahlen
wenig. Schließlich ist die gesuchte Wahrscheinlichkeitsfunktion nur gering fallend oder
sogar konstant.
6 Fairness des Routings
129
Abbildung 6.7: Verlauf der Wahrscheinlichkeitsfunktion für p=0.45
Entwickelt wurde zunächst folgende Funktion, welche die bereits zurückgelegte Hopanzahl
(x) für eine Weiterleitung betrachtet:
x
f 1(x) := f 1 (x − 1, p) · (1 − p) + p ·
x+1
mit f 1 (1) := (1 − p) + p · 0.5
Bei f1 wird eine fremde vor der eigenen Nachricht im Verhältnis “zurückgelegte
Hops : 1“ bevorzugt. Wie man in Abbildung 6.10 erkennen kann, ist die Kurve bereits
weniger steil abfallend als die Kurven der vorigen Darstellungen. Um mehr Ausgewogenheit zu erreichen, bedarf es jedoch einer weiteren Verbesserung. Daher muss bei der
Hilfsfunktion
x
x+1
Nenner und Zähler gegen Eins konvergieren. Abhilfe schafft der Einsatz
höherer Potenzen sowie der Exponentialfunktion.
1. f 2 (x) := f 2 (x − 1, p) · (1 − p) + p ·
x2 +x
x2 +x+1
2. f 3 (x) := f 3 (x − 1, p) · (1 − p) + p ·
2·x2
2·x2 +1
3. f 4 (x) := f 4 (x − 1, p) · (1 − p) + p ·
x4 +x
x4 +x+1
4. f 5 (x) := f 5 (x − 1, p) · (1 − p) + p · 1 −
1
mit f 5 (1) := (1 − p) + p · 1 − e2x
mit f 3 (1) := (1 − p) + p ·
1
e2x
mit f 2 (1) := (1 − p) + p ·
2·x2
2·x2 +1
mit f 4 (1) := (1 − p) + p ·
x2 +x
x2 +x+1
x4 +x
x4 +x+1
6 Fairness des Routings
130
Abbildung 6.8: Verlauf der Wahrscheinlichkeitsfunktion für p=0.25
Die Funktionen sind in der Abbildung 6.11 visualisiert. Diese Abbildung kann aufgrund
des geringen Darstellungsbereiches der y-Achse leicht falsch gedeutet werden. Daher ist
in Abbildung 6.12 die y-Achse im Bereich von 0 . . . 1 dargestellt.
F2 bis f5 sind jeweils für eine Wahrscheinlichkeit von p = 0.25 dargestellt. Je kleiner die
Wahrscheinlichkeit p wird, desto geringer ist der Kurvenabfall.
f 5(x) liefert sichtbar die besten Ergebnisse. Die maximale Differenz zwischen 1 und 24
Hops beträgt nur 0, 005. Damit ist eine gute Funktion zur Entscheidung über eine Weiterleitung einer fremden Nachricht gefunden (wenn der Knoten selbst neue Sensordaten
vorliegen hat).
Abbildung 6.13 zeigt den Funktionsgraphen für p = 0.5. Die maximale Differenz beträgt
nur 0, 0098. F5 ist auch für höhere Wahrscheinlichkeitswerte von p geeignet.
Theorem 6.0.6
F5 ist eine gut einzusetzende Fairnessfunktion, da sie gegen eine Konstante konvergiert:
∞
Y
(1 − p) + p 1 − e−2x
x=1
konvergiert, wenn folgende Summe konvergiert [Sch 05]:
∞
X
x=1
ln(1 − pe−2x )
6 Fairness des Routings
131
Abbildung 6.9: Weiterleitung mit Wahrscheinlichkeit von 75 Prozent der fremden Nachricht bei Vorliegen einer eigener Nachricht
Es gilt:
x
2
≤ ln(1 + x) ≤ x für x > 1 − 2e . Damit ergibt sich
∞
X
x=1
ln(1 − pe
−2x
) ≥ −p
∞
X
e−2x − e−4x
x=1
Da die Fairnessfunktion gegen eine Konstante konvergiert, ist die Differenz zwischen verschiedenen Hopdistanzen asymptotisch gleich Null.
Damit eigene Sensordaten nun nicht vernachlässigt werden, sollte bei der Bevorzugung
einer fremden Nachricht ein interner Hopzähler hochgezählt werden. Übertrifft dann der
1
) für die interne Hopzahl den Wert der fremden Nachricht, werden
Wert von h(x) = (1− e2x
die eigenen Daten versendet.
Die Funktionsauswertungen sind natürlich mit der gegebenen Hardware nicht trivial. Deswegen werden die ausgewerteten Werte von h(x) = (1 −
1
)
e2x
für x =
1 . . . 3ROU T ELEN GT H im FLASH-Speicher abgelegt. Des Weiteren müssen in den
uplink-Nachrichten die Anzahl der Hops überliefert werden.
6 Fairness des Routings
Abbildung 6.10: Darstellung der Wahrscheinlichkeitsfunktion f1(x)
Abbildung 6.11: f2(x), f3(x), f4(x) und f5(x) mit p=0,25
132
6 Fairness des Routings
133
Abbildung 6.12: f2(x), f3(x) f4(x) und f5(x) mit p=0,25 und y im Bereich von Null bis
Eins
Abbildung 6.13: Visualisierung von f5(x) mit p=0,5
Kapitel 7
Auswirkungen auf das
1 QK-Protokoll
Die in den Kapiteln 5 und 6 beschriebenen Optimierungen werden in diesem Kapitel in
das 1 QK-Protokoll integriert. Als Ausgangstand des 1 QK-Protokolls wird das Release
2.1 gesetzt [Sch 04-R02]. Die Synchronisierung ist nicht im neuen Protokoll enthalten.
Es kann der regalweise oder globale Ansatz realisiert sein. Beim globalen Ansatz wird
jedoch für die korrekte Nutzung der faktorisierte geometrische Verteilung die Existenz
der Hopdistanz vorausgesetzt. Da die Änderungen keinen Synchronisierungsansatz
voraussetzt, können uplink- und downlink-Nachrichten in jeder Sendephase verschickt
werden.
Die Variable Hopdistanz wird zum einen intern verwaltet, als auch in Beacons, uplinkNachrichten sowie deren Acknowledgements versendet. Die Expected Power Distance
fällt im Gegenzug aus dem Protokoll heraus.
Im Anschluss folgt eine Beschreibung der getätigten Änderungen. Im Abschnitt 7.2 wird
die Spezifikation zum Release 3.0 verändert.
7.1
Beschreibung der Modifikationen
Betrachtet wird zunächst die Modifikation für die Kanalwahl:
Bei der Konfiguration der Knoten bedarf es einer Anpassung der Konstanten T RECIEVE
¯
sowie POWER MSG SEND so, dass sie den Runden für den Empfangs- und Sende¯
¯
vorgang entsprechen. Bei jedem Sende- und Empfangsversuch wird dann ein Kanal
gemäß der zu nutzenden Wahrscheinlichkeitsverteilung ausgewählt. Dabei wird hier die
7 Auswirkungen auf das 1 QK-Protokoll
135
genutzte Kanalnummerierung der faktorisierten geometrischen Verteilung nach gerader
oder ungerader Hopdistanz unterschieden.
Bei der Initialisierung wird festgelegt, wie viele Runden die maximale Empfangsdauer
(Konstante count maxReceive) sowie die Wachphase (Konstante rounds wake) andauern
¯
¯
darf. Wird beim ersten Empfangsversuch eine uplink-Nachricht empfangen, wird diese
oder eine eigene Nachricht weiterversendet. Der Empfangsvorgang wird spätestens nach
count maxReceive Runden abgebrochen. Ist dann keine fremde oder eigene Nachricht
¯
zu versenden, sendet der Knoten ein Beacon und kann anschließend schlafen. Bei den
Rundenzahlen handelt es sich um Angaben für die Blockrunden, in welcher intern alle
Kanäle simuliert werden.
Da bei der regalweisen Synchronisation unterschiedliche Phasen für die downlink- und
uplink-Kommunikation existieren, können zur Synchronisation benötigten Nachrichten
in diesen Phasen versendet werden.
Zum Erreichen der Fairness, muss in den uplink-Nachrichten eine Variable integriert
werden, welche die Anzahl der bereits zurückgelegten Hops zählt (Variable counter hops).
¯
Werte für die Hilfsfunktion h(x) = (1 − e−2x ) der Fairnessfunktion mit exponentiellen
Ansatz (f5, siehe Kapitel 6) werden bei der Initialisierung in den FLASH-Speicher
abgelegt. Zur Betrachtung und Funktionsauswertung der Counter wird die Reihenfolge
verändert, in welcher eigene Daten in den Buffer gelegt werden. Ansonsten könnte nicht
unterschieden werden, ob eine bereits angenommene fremde Nachricht oder die eigenen
Daten im Buffer liegen.
Damit eigene Nachrichten nicht vernachlässigt werden, bedarf es für die eigenen Daten
der Zählung der bereits bevorzugten fremden Nachrichten (Variable counter rounds. Diese
¯
Anzahl wird mit der bereits zurückgelegten Hopanzahl fremder Nachrichten gleichgesetzt.
Die Counter werden bei jedem erfolglosen Sendeversuch inkrementiert. Aus diesem Grund
sind die Funktionswerte der Hilfsfunktion h(x) auch für x = 1 . . . 3 · ROU T ELEN GT H
in den FLASH-Speicher abgelegt.
Die neue Abarbeitung sieht wie folgt aus:
Nach dem Erhalt einer uplink-Nachricht wird zunächst überprüft, ob der Buffer mit
einer uplink-Nachricht gefüllt ist. Dies entspricht dem bisherigen Vorgehen. Liegt
keine uplink-Nachricht im Buffer, folgt ein Test ob neue Sensordaten zur Verfügung
stehen. Falls dieses nicht der Fall ist, wird ein Acknowledgement geschickt und die
Nachricht wie in der bisherigen Spezifikation zur Weiterleitung bearbeitet. Liegen
eigene Daten vor, werden die Funktionswerte aus dem FLASH-Speicher für die Counter
beider Nachrichten geholt und verglichen. Die Daten der Nachricht mit dem höheren
Funktionswert werden weiterverarbeitet. Dies impliziert die Sendung eines entsprechenden Acknowlegements, falls die empfangene Nachricht den höheren Funktionswert besitzt.
7 Auswirkungen auf das 1 QK-Protokoll
136
Für die korrekte Nutzung der Wahrscheinlichkeitsverteilungen bei der Kanalwahl
wird die Variable useEqual eingeführt. In useEqual wird die Rundennummer gespeichert,
bis welcher die Gleichverteilung genutzt wird. Als Hilfe für die Realisierung der Sendeund Empfangsphasen werden die Variablen actFrequency und actRound genutzt. Für die
Ermittlung der Funktionswerte einer fremden und einer eigenen Nachricht werden die
Variablen selfFairValue sowie foreignFairValue eingesetzt.
Die Konstanten haben einen unveränderlichen Wert. Den Variablen sind noch keine
Werte zugewiesen. Vor der Auslieferung der Knoten können Werte bei der Initialisierung festgelegt werden. Wird das Netz dann in Betrieb genommen, bedarf es einer
reset-Nachricht an alle Knoten vom Server. In dieser reset-Nachricht sind einige Werte
für den Sende- und Empfangsvorgang vorhanden. Im Release 3.0 werden nun auch
reset-Nachrichten weitergeleitet, die an keinen bestimmten Empfänger haben. Dabei
haben reset-Nachrichten die höchste Priorität bei der Versendung einer Nachricht.
Der Streckungsfaktor für die faktorisierte geometrische Verteilung wird auf dreizehn
gesetzt, da dies die hardwaremäßig unterstütze Anzahl ist.
7.2
Veränderte Spezifikation - Release 3.0
Zunächst gebe ich die neue Speicherorganisation inklusive aller Variablen an. In den
Buffer wurden zusätzlich wie zuvor beschrieben einige Variablen integriert. Des Weiteren
muss nur noch die Anzahl der Kanäle abgespeichert werden, da die Frequenzbereiche
im FLASH-Speicher gehalten werden. Das Array FREQUENCY OF CHANNEL entfällt
¯ ¯
damit.
Der Buffer benötigt folgenden Speicherplatz:
2 · long + 4 · bit + 2 · byte-Array der Länge 6 + 5 · byte + 1 · int-Array der Länge 10
1
= 2 · 4 + 4 · + 2 · 6 + 5 · 1 + 1 · 2 · 10 (alles in Byte)
8
= 8 + 0, 5 + 12 + 5 + 10 = 35, 5 Bytes
Der gesamte RAM-Speicher benötigt:
Buffer + Paket + Ack-Paket+1· real+3· bit+14· byte+1· long+2· int+1· int-Array der Länge 10
1
35, 5 + 36 + 6 + 1 · 2 + 3 · + 14 + 1 · 4 + 2 · 2 + 1 · 2 · 10 (in Byte)
8
7 Auswirkungen auf das 1 QK-Protokoll
137
= 122 Bytes
Mit Hilfe der Auslagerung einiger Daten in den FLASH-Speicher wird der genutzte
RAM durch die Protokolloptimierungen nicht deutlich vergrößert. Das 1 QK-Protokoll
im Release 2.1 benötigte 101 Bytes. Die Zählung erfolgt jeweils ohne Konstante. Der
Datentyp real wird mit Hilfe von 2 Bytes realisiert. Ein Byte für die Zahlen > 0 und ein
Byte für die Zahlen < 0.
Die genaue Beschreibung des genutzten Speichers sowie der Code des Release 3.0
ist im Anhang A.2 zu finden.
Kapitel 8
Zusammenfassung
Die Diplomarbeit realisiert zwei Optimierungen des 1 QK-Protokolls. Es wird vorausgesetzt, dass die Knoten synchronisiert werden. Daher war es unerlässlich, den Sendeund Empfangsvorgang zu modifizieren. Mit synchronisierten Knoten und gleichem
Sendeverhalten des 1 QK-Protokolls ist der Nachrichtendurchsatz gleich Null, wenn mehr
als ein Sender mit nicht disjunkten Sendereichweiten sendet. Daher wird im Release 3.0
eine Kombination von Wahrscheinlichkeitsverteilungen für die Kanalwahl eingesetzt. Das
Zusammenspiel der Gleichverteilung sowie der faktorisierten geometrischen Verteilung ist
besonders bei einer regalweisen Synchronisation gut einsetzbar.
Bei der faktorisierten geometrischen Verteilung haben einige Kanäle nur sehr geringe
Wahrscheinlichkeiten. Von der Distanz zum Server ist die Reihenfolge der zugeordneten
Wahrscheinlichkeiten zu den Kanalnummern abhängig. Damit sind Interferenzen aufgrund von Sendern in unterschiedlichen Regalen wesentlich unwahrscheinlicher als bei
gleicher Kanalreihenfolge oder der Gleichverteilung.
Die zweite Optimierung brachte Fairness in das Routingverhalten. In dem 1 QK-Protokoll
wurden stets eigene Nachrichten bevorzugt. War eine eigene Nachricht vorhanden, so
wurde diese stets weitergeleitet unabhängig davon, ob eine fremde Nachricht empfangen
wurde. Mit Hilfe der so genannten Fairnessfunktion werden die Ungleichheiten im
Routing verbessert. Die Fairnessfunktion konvergiert und damit haben alle Nachrichten
im Netz bis auf minimale Unterschiede die gleiche Wahrscheinlichkeit in einem Sendefluss zum Server zu gelangen. Dazu wurde in den Nachrichten die Anzahl der bereits
zurückgelegten Hops gezählt. Die Hopanzahl einer Nachricht wird auch inkrementiert,
wenn die Nachricht innerhalb einer Wachphase nicht versendet werden konnte. Damit
eigene Daten nicht vernachlässigt werden, existiert ein eigener Hopzähler für die internen
Daten. Liegen neue Sensordaten vor und eine fremde Nachricht wird weitergeleitet, wird
der Hopzähler für die internen Nachrichten erhöht.
8 Zusammenfassung
139
Die Optimierungen im Release 3.0 erzeugen einen besseren Nachrichtendurchsatz
und Fairness. Zudem kann eine Rekonfiguration für das gesamte Netz vom Server
durchgeführt werden. Diese Rekonfiguration ist möglich, da reset-Nachrichten ohne
bestimmten Adressaten durch das Netz weitergeleitet werden.
Durch Auslagerungen von Daten in den FLASH-Speicher benötigt das Protokoll trotz der
Optimierungen nur 122 Bytes. Damit sind die Ressourcenbeschränkungen eingehalten.
Zudem wird mit Hilfe der Synchronisation und besseren Nachrichtendurchsatz Energie
eingespart.
8.1
Ausblick
Es existieren noch einige Modifikationsmöglichkeiten zur Verbesserung des 1 QKProtokolls:
Eine Behandlung der Asymmetrie ist zum Beispiel als ein weiterer Ansatz zu nennen.
Methoden zur Vermeidung von Duplikate könnten darüber hinaus integriert werden. Zur
Energieeinsparung wäre es sinnvoll, wenn die Round-Time an Wochenenden, Feiertagen
und nach Ladenschluss anpaßt werden würde. Da nun die reset-Nachrichten durch das
Netz geleitet werden, kann die Round-Time auf Initiative des Servers bereits umgestellt
werden. Dies sollte aber durch einen Automatismus in den Knoten optimiert werden.
In der Diplomarbeit wurde an einer statische Kanalanzahl festgehalten und mit Hilfe der
faktorisierten geometrischen Verteilung wurde der Nachrichtendurchsatz über die RoundTime optimiert. Eine andere Optimierungsmöglichkeit zur Verbesserung des 2.0 Releases
des 1 QK-Protokolls ist es, die Anzahl der genutzten Kanäle dynamisch zu integrieren:
Erfährt ein Sender ein hohes Nachrichtenaufkommen durch viele Interferenzen, so kann er
die Kanalanzahl erhöhen. Treten keine Interferenzen auf und die Nachricht wird von keinem Empfänger entgegen genommen, wird die Kanalanzahl verringert. Die Veränderung
√
der Kanalanzahl C könnte zum Beispiel um C nach oben oder nach unten erfolgen. Eine
weitere Möglichkeit wäre es, eine statisch abnehmende Folge von Kanalanzahlen mit der
uniformen Verteilung zu nutzen.
Eine wichtige Erweiterung muss noch für die Knoten integriert werden, welche direkt mit
dem Server kommunizieren. Diese können ein anderes Sendeverhalten aufweisen, da der
Server immer empfangsbereit ist.
Anhang A
Quellcode
A.1
Dokumentation und Code zur regalweisen Synchronisation
Da ich den lokalen gegenüber dem globalen synchronisierten Aufwachpunkt bevorzuge,
möchte ich an dieser Stelle auf seine Implementierung genauer eingehen. Es wird
zunächst die Dokumentation des Quellcodes folgen, in welcher alle Variablen erklärt
werden. Anschließend folgt der Code.
Dokumentation und Erläuterungen
Die erste Runde ist unterschiedlich von den Folgenden: In der ersten Runde senden alle
Stationen, die keine “alte “ Nachricht bearbeiten, eine eigene oder einen Beacon. Bei
der Zählung der realen Empfänger muss unterschieden werden, welcher Nachrichtentyp
empfangen wurde. Schließlich benötigt ein Beacon nur eine Bearbeitungszeit von einer
Runde. Wurde jedoch eine uplink-Nachricht empfangen, bedarf es zunächst einer internen
Bearbeitungszeit von drei Runden sowie der Weiterleitung dieser Nachricht. Regal eins
ist dabei das Regal bei welchem der Sendefluss beginnt und steht damit am weitesten
vom Server entfernt.
Es folgt die Beschreibung der eingesetzten Variablen:
n = Anzahl der Sensorknoten in Reichweite im betrachteten Regal.
m = Anzahl der empfangsbereiten Knoten im Regal in Richtung Sendefluss. Knoten, die noch eine alte Nachricht bearbeiten, sind von der Zählung ausgenommen.
nhelp = Sensorknoten im betrachteten Regal, welche keine alte Nachricht bear-
A Quellcode
141
beiten
haveMsg = erwartete Anzahl von zuvor erreichbaren Empfängern, die nach der
aktuellen Runde eine Nachricht bearbeiten. Dabei leiten sie entweder ihre eigene (mit
Verhältnis der Variablen verhaeltnis) oder eine fremde weiter. Falls ein Empfänger keine
Nachricht hat und keine empfängt, ist er auch für eine kommende Runde empfangsbereit
und fließt nicht in haveMsg als Wert ein. HaveMsg ist die Summe der Hilfsvariablen
received, own1, own2, own3,erhieltBeacon.
received ist der Erwartungswert der Sensorknoten, die ab der nächsten Runde eine Nachricht bearbeiten. Dazu zählen neue sowie noch nicht erfolgreich weitergeleitete
Nachrichten. Zu den erfolglosen Sendeversuchen der aktuellen Runde zählen sowohl für
die Nachrichten, die mehrere oder ihren ersten erfolglosen Sendeversuch hatten.
own1 ist der Erwartungswert der Sensorknoten, die keine Nachricht empfangen
und eine eigene Nachricht besitzen.
own2 ist der Erwartungswert der Sensorknoten, die eine Nachricht empfangen,
aber ihre eigene Nachricht weiterleiten.
own3 ist der Erwartungswert der Sensorknoten, die ein Beacon empfangen haben
und eine eigene Nachricht haben.
erhieltBeacon = erwartete Anzahl der Empfänger, die nur ein Beacon enthielten
und keine eigene Nachricht haben. Diese Empfänger sind nach Bearbeitung des Beacons
(eine Runde) wieder empfangsbereit.
s = erwartete Anzahl der Sender, die eine eigene Nachricht erfolgreich in der betrachteten Runde versenden konnten.
erfolg = erwartete Anzahl der Sender, die eine bearbeitete oder noch nicht
weitergeleitete Nachricht erfolgreich versenden konnten.
sendWeiter speichert für jede Runde und jedes Regal die Sender, die in der folgenden Runde noch weiter senden. Das sind alle Sensorknoten im Regal außer denen, die
mit einer alten oder neuen erfolgreich versendeten Nachricht sowie die Knoten, die nur
einen Beacon gesendet hatten.
SendWeiter wird als Summe der Erwartungswerte dieser genannten Ereignisse berech-
A Quellcode
142
net. Abgezogen werden müssen jedoch die Sensorknoten, die gerade noch eine Nachricht
zum Versenden fertig stellen und diese erst in einer der kommenden Runden versenden.
bearbeitetNachricht = Erwartungswert der Sensorknoten, die eine fremde oder
eigene Nachricht zur Weiterleitung bearbeiten. (exklusive der Beacons in der ersten
Runde)
msg = Anzahl der Nachrichten, die zum Server übermittelt wurden
verhaeltnis entspricht der prozentualen Wahrscheinlichkeit, dass eine fremde Nachricht
weitergeleitet wird, auch wenn der Knoten eine eigene besitzt.
Quellcode angepaßt in eine lesbare Form
Der Quellcode wurde aus der Datei nicht eins zu eins übernommen, damit die mathematischen Formeln lesbarer sind.
Initialisierung
C:=10:verhaeltnis:=0.75:ps:=0.4:r:=1:msg:=0:s:=’ ’;
print(’Fremde Nachricht wird weitergeleitet mit ’. XXXXX
expr2text(verhaeltnis));
print(’Wahrscheinlichkeit für neue Sensordaten ps=’.expr2text(ps));
sender:= array(1..5, 1=10, 2=10, 3=10, 4=10, 5=10):
empfaenger:= array(1..6, 1=10, 2=10, 3=10, 4=10,5=10, 6=10):
sendWeiter:= array(1..4, 1..6,
XXXXXXXXXXXXXXX(1,1)=0, (2,1)=0, (3,1)=0, (4,1)=0,
XXXXXXXXXXXXXXX(1,2)=0, (2,2)=0, (3,2)=0, (4,2)=0,
XXXXXXXXXXXXXXX(1,3)=0, (2,3)=0, (3,3)=0, (4,3)=0,
XXXXXXXXXXXXXXX(1,4)=0, (2,4)=0, (3,4)=0, (4,4)=0,
XXXXXXXXXXXXXXX(1,5)=0, (2,5)=0, (3,5)=0, (4,5)=0,
XXXXXXXXXXXXXXX(1,6)=0, (2,6)=0, (3,6)=0, (4,6)=0):
bearbeitetNachricht:=array(1..4, 1..6,
XXXXXXXXXXXXXXX(1,1)=0, (2,1)=0, (3,1)=0, (4,1)=0,
XXXXXXXXXXXXXXX(1,2)=0, (2,2)=0, (3,2)=0, (4,2)=0,
XXXXXXXXXXXXXXX(1,3)=0, (2,3)=0, (3,3)=0, (4,3)=0,
XXXXXXXXXXXXXXX(1,4)=0, (2,4)=0, (3,4)=0, (4,4)=0,
XXXXXXXXXXXXXXX(1,5)=0, (2,5)=0, (3,5)=0, (4,5)=0,
A Quellcode
143
XXXXXXXXXXXXXXX(1,6)=0, (2,6)=0, (3,6)=0, (4,6)=0):
roundTime:=1:
Ablauf der Round-Time
while (roundTime<=10) do
i:=1:
print(’---------------------------------------------------------------’);
print(’Durchgang ’.expr2text(roundTime));
print(’---------------------------------------------------------------’);
while(i<=5) do
print(’Regal ’.expr2text(i));
XXXX print(’----------------------------’);
XXXX print(’Runde 1’);
XXXX n:=sender[i];
XXXX m:=empfaenger[i+1];
XXXX print(’Empfänger: ’.expr2text(m));
XXXX nhelp:= round(empfaenger[i]);
XXXX EmpfOhneNachricht:= round(min(m,m · (1 − ps)));
XXXX EmpfMitNachricht:= round(m − EmpfOhneNachricht);
XXXX erhieltBeacon:=
XXXXXXXXmax(0, round(C · C1 · (1 − C1 )n−1 · (nhelp · (1 − ps))
PEmpfOhneNachricht
XXXXXXXX · j=0
j · EmpfOhneNachricht
·
j
1 EmpfOhneNachricht−j
XXXXXXXX·(1 − )
));
1j
C
C
XXXX received:=
XXXXXXXXmax(0, C ·
1
C
· (1 − C1 )n−1 · (nhelp · ps
XXXXXXXX+bearbeitetNachricht[1,i]+ sendWeiter[4,i]) ·
XXXXXXXX·( C1 · ((1 − ps) + verhaeltnis · ps))j1
XXXXXXXX·(1 − ( C1 · ((1 − ps) + verhaeltnis · ps)))m−j1 );
XXXX print(’received =’. expr2text(received));
XXXX if i=5 then
XXXXXXXX own1:= 0;
XXXXXXXX own2:= 0;
XXXXXXXX own3:= 0;
XXXX else
Pm
j1=0 j1 ·
m
j1
A Quellcode
144
XXXXXXXXown1:=
XXXXXXXXXXXXC · (1 − ( C1 · (1 − C1 )n−1 ))
1
P
m
1
g
m−g
XXXXXXXXXXXX· m
;
g=0 g · g · ( C · ps) · (1 − ( C · ps))
XXXXXXXX own2:=
· (1 − C1 )n−1 · (nhelp · ps + bearbeitetNachricht[1,i]
Pm
m
XXXXXXXXXXXX+sendWeiter[4,i]) ·
· ( C1 · ps · (1 − verhaeltnis))g
g=0 g ·
g
XXXXXXXXXXXXC ·
1
C
XXXXXXXXXXXX·(1 − ( C1 · ps · (1 − verhaeltnis)))m−g ;
XXXXXXXX own3:=
XXXXXXXXXXXXC · C1 · (1 − C1 )n−1 · (nhelp · (1 − ps))
PEmpfMitNachricht
XXXXXXXXXXXX· g=0
g · EmpfMitNachricht
·
g
XXXXXXXXXXXX·(1 − 1 )EmpfMitNachricht−g ;
C
XXXX end:
XXXX haveMsg:= received+own1+own2+own3;
XXXX s:=C ·
1
C
· (1 − C1 )n−1 · (1 − ((1 − C1 ) +
1
C
XXXXXXXX·(1 − verhaeltnis) · ps)m ) · (nhelp · ps);
XXXX empf:= round(m-haveMsg);
1g
C
A Quellcode
145
XXXX erfolg:=
XXXXXXXXC · (n − nhelp) ·
XXXXXXXX·(1 − ((1 − C1 ) +
1
· (1 − C1 )n−1
C
1
· (1 − verhaeltnis)
C
· ps)m );
XXXX empfaenger[i+1]:=empf-erhieltBeacon;
XXXX print(’haveMsg,s,erfolg, schickte Beacon, eigene Nachricht’);
XXXX print(float(haveMsg),float(s),float(erfolg), float(nhelp· (1-ps)),
XXXXXXXX float(own1+own2+own3));
XXXX sendWeiter[1,i]:=
XXXXXXXXmax(0, nhelp · ps − s − erfolg+ bearbeitetNachricht[1,i]
XXXXXXXX+sendWeiter[4,i]);
XXXX if i<=4 then
XXXXXXXX bearbeitetNachricht[1,i+1]:= haveMsg;
XXXX else
XXXXXXXX msg:= msg+received;
XXXX end:
XXXX print(’Sender mit Nachricht für nächste Runde: ’
XXXXXXXXX.expr2text(round(sendWeiter[1,i])));
XXXX r:= 2:
XXXX while (r<=4) do
XXXXXXXX print(’Runde ’.expr2text(r));
XXXXXXXX n:=round(sendWeiter[r-1,i]+bearbeitetNachricht[r,i]);
XXXXXXXX m:=empfaenger[i+1];
XXXXXXXX if (r=3) then
XXXXXXXXXXXX m:= m+ erhieltBeacon;
XXXXXXXX end:
XXXXXXXX print(’Sender,Empfänger,sendWeiter[r-1,i],
XXXXXXXXXXXXX bearbeitetNachricht[r,i]’);
XXXXXXXX print(n,m, float(sendWeiter[r-1,i]),
XXXXXXXXXXXXXfloat(bearbeitetNachricht[r,i]));
XXXXXXXX received:=
XXXXXXXXXXXXmax(0, C · n · C1 · (1 − C1 )n−1 ·
1j
P
m
1 m−j
XXXXXXXXXXXX m
);
j=0 j · j · C · (1 − C )
XXXXXXXX s:=
XXXXXXXXXXXXmax(0, n · (1 − C1 )n−1 · (1 − (1 − C1 )m ));
A Quellcode
XXXXXXXX empf:= round(m-received);
XXXXXXXX empfaenger[i+1]:=empf;
XXXXXXXX print(float(received),float(s));
XXXXXXXX sendWeiter[r,i]:= max(0, (n − s));
XXXXXXXX if i<=4 then
XXXXXXXXXXXX bearbeitetNachricht[r,i+1]:= max(0, received);
XXXXXXXX else
XXXXXXXXXXXX msg:= msg+received;
XXXXXXXX end:
XXXXXXXX print(’Sender mit Nachricht für nächste Runde: ’
XXXXXXXXXXXXXXX.expr2text(round(sendWeiter[r,i])));
XXXXXXXX r:= r+1:
XXXXXXXX end while:
¯
XXXX empf2:= sender[i];
XXXX empf2:=
XXXXXXXXmax(0, round(empf2-sendWeiter[4,i]
XXXXXXXX-bearbeitetNachricht[1,i]-bearbeitetNachricht[2,i]
XXXXXXXX-bearbeitetNachricht[3,i] -bearbeitetNachricht[4,i]));
XXXX empfaenger[i]:= empf2;
XXXX i:=i+1:
XXXX end while:
¯
roundTime:= roundTime+1:
end while;
¯
print(’Verbleibende Nachrichten:’);
i:=1:
while(i<=5) do
XXXX print(’Regal ’.expr2text(i).’:
XXXXXXXXX verblieben ’.expr2text(sender[i]-empfaenger[i]));
XXXX i:= i+1;
end while:
¯
print(’Angekommene Nachrichten: ’.expr2text(round(msg)));
146
A Quellcode
147
A Quellcode
A.2
Release 3.0 des 1 QK-Protokolls
buffer: { record of
XX up GID : long;
¯
XX down GID : long;
¯
XX uplink buffer full: bit;
¯
¯
XX downlink buffer full: bit;
¯
¯
XX up application data : array [UP APPL LENGTH] of byte;
¯
¯
¯
¯
XX down application data : array [DOWN APPL LENGTH] of byte;
¯
¯
¯
¯
XX up packet id :byte;
¯
¯
XX down packet id :byte;
¯
¯
XX down new NetID :byte;
¯
¯
XX route : array [ROUTELENGTH] of int;
XX route is up :bit;
¯ ¯
XX route is down :bit;
¯ ¯
XX counter hops : byte;
¯
XX counter rounds :byte;
¯
end of record
---- Konstanten ---ROUTELENGTH : 10;
ADJ LENGTH : 10;
¯
UP APPL LENGTH : 6;
¯
¯
DOWN APPL LENGTH : 6;
¯
¯
NO NODE : 65535;
¯
T UPLINK WAIT : T/2;
¯
¯
T SEND : T;
¯
T INIT : 15000;
¯
T RECEIVE : 300;
¯
POWER MSG SEND : 100;
¯
¯
POWER MSG ACK : 120;
¯
¯
POWER MSG BEACON: 80;
¯
¯
---- Variablen ----
148
A Quellcode
B : buffer;
P : packet;
channels :byte;
count maxReceive : byte;
¯
T roundDuration : byte;
¯
Neighbor : array [ADJ LENGTH] of int;
¯
Ack P : ack packet;
¯
¯
NetID : int;
hop distance : real;
¯
T : int;
T SLEEP : int;
¯
P nr : byte;
¯
clear to send : bit;
¯ ¯
drop out of receive loop : bit
¯
¯ ¯
¯
useEqual:byte;
reset ID: byte;
¯
rounds wake;
¯
received reset: bit;
¯
selfFairValue : byte;
foreignFairValue :byte;
actFrequency:byte;
actRound :byte;
i : byte;
j : byte;
k : byte;
149
A Quellcode
150
Wie bereits zuvor erwähnt, wird nach dem Aufwachen direkt in den Zustand Listen gewechselt. Die Abarbeitung des Zustandes Check for new Sensor Data wird in
der neuen Funktion prepareOwnData ausgeführt:
prepareOwnData(){
XX B.uplink buffer full = 1;
¯
¯
XX up application data = get data from application();
¯
¯
¯
¯
¯
XX UP GID = GID;
¯
XX B.hop distance = round(hop distance);
¯
¯
XX B.counter hop= B.counter rounds;
¯
¯
XX if( B.route is down = 0) {
¯
XXXX B.route is up =1;
¯
XXXX B.route[0] = Net ID;
¯
XXXX for i = 1 to ROUTELENGTH {
XXXXXX B.route[i] = NO NODE;
¯
XXXX }
XX }
}
Zur Bearbeitung einer erhaltenen Hopdistanz wird die folgende Funktion genutzt:
checkHop distance(int packet distance){
¯
¯
XXif (P.hop distance < (round(hop distance)-1)){
¯
¯
XXXX hop distance = hop distance -1/3;
¯
¯
XX } else {
XXXX hop distance = (hop distance +P hop distance )/2;
¯
¯
¯
XX}
In der Unterprozedur getChannelNumber wurde die Kanalwahl realisisert. Dabei erfolgt die Wertrückgabe stets in der internen Runde, in welcher gesendet werden
soll. Übergeben wird dann eine Kanalzahl zwischen Null und Zwölf, schließlich werden
hardwaremäßig nur dreizehn Kanäle unterstützt. Bei der Wahl wird berücksichtigt, ob
der Knoten sich in einer geraden oder ungeraden Hopdistanz befindet. Zudem wird für
Empfangsoperationen die entgegengesetzte Kanalnummerierung bei der faktorisierten
geometrischen Verteilung realisiert.
byte getChannelNumber(int hop distance, int round, boolean sending) {
¯
A Quellcode
151
{
XX if ((round ≤ useEqual) OR (round > count maxReceive AND
¯
XXXXXX round ≤ (count maxReceive + useEqual)){
¯
---- Equal Distribution has to be used ---XXXX k= random(channels)/13;
XXXX wait((k · round duration)-1);
¯
XXXX return (k);
XX } else {
XXXX j= getChannelinterval(channels,13);
XXXX if (round(hop distance) mod 2 <> 0) then {
¯
XXXXXX if (send ==true) then {
XXXXXXXX j= (channels/13)-j+1;
XXXXXX }
XXXX } else if (send ==false){
XXXXXX j= (channels/13)-j+1;
XXXX }
XXXX k= random (12);
XXXX wait((j· round duration)-1);
¯
XXXX return (k);
XX }
}
Die Empfangsphase wurde auch verändert, da die Kanalwahl anders funktioniert
und nun die Sendevorgänge in Runden eingeteilt sind. Die Dauer einer Runde ist in
der Variablen roundDuration abgespeichert. Da eine interne Abarbeitungszeit variieren
kann, wird diese Bearbeitungszeit berechnet. Damit wird festgestellt, in welcher Runde
sich der Knoten befindet.
actRound=0;
drop out of receive loop = 0;
¯
¯ ¯
¯
---- receive -while starts ---while (actRound <= count maxReceive AND !drop out of receive loop) do
¯
¯
¯ ¯
¯
XX actFrequency = getFrequencyOfChannel(
A Quellcode
152
XXXXXXXXXXXXXXXXXgetChannelNumber(hop distance, actRound, false));
¯
XX P = listen(actFrequency,T RECEIVE);
¯
XX case P.type of
XXXX uplink:
XXXXXX if (B.uplink buffer full == 0) then {
¯
¯
XXXXXXXX if (round(hop distance) >= P.hop distance) AND (
¯
¯
XXXXXXXX (Ack P.type != waiting) OR
¯
XXXXXXXX (Ack P.sender id != P.sender id) OR
¯
¯
¯
XXXXXXXX (Ack P.received packet = P.packet id) OR
¯
¯
¯
XXXXXXXX (time since(t start) <= T UPLINK WAIT))then {
¯
¯
¯
¯
XXXXXXXXXX t start = now();
¯
XXXXXXXXXX Ack P.type = waiting;
¯
XXXXXXXXXX Ack P.sender id = P.sender id;
¯
¯
¯
XXXXXXXXXX Ack P.received packet = P.packet id;
¯
¯
¯
XXXXXXXXXX clear to send = 0;
¯ ¯
XXXXXXXXXX set sleep time = 1;
¯
¯
XXXXXXXX} else {
XXXXXXXXXX selfFairValue = getValueForFairness(B.counter rounds);
¯
XXXXXXXXXX foreignFairValue = getValueForFairness(P.counter hops);
¯
XXXXXXXXXX if (selfFairValue > foreignFairValue) then {
XXXXXXXXXXXX prepareOwnData();
XXXXXXXXXX } else {
XXXXXXXXXXXX B.counter rounds = B.counter rounds+1;
¯
¯
XXXXXXXXXXXX Ack P.type = ack;
¯
XXXXXXXXXXXX Ack P.received id = P.id;
¯
¯
XXXXXXXXXXXX Ack P.hop distance= round(hop distance);
¯
¯
¯
XXXXXXXXXXXX send(actFrequency,POWER MSG ACK,P);
¯
¯
XXXXXXXXXXXX B.uplink buffer full = 1 ;
¯
¯
XXXXXXXXXXXX B.up application data = P.application data;
¯
¯
¯
XXXXXXXXXXXX B.up ID = P.origin ID;
¯
¯
XXXXXXXXXXXX if (B.route is down == 0) then {
¯ ¯
XXXXXXXXXXXXXX B.route is up = 1;
¯ ¯
XXXXXXXXXXXXXX j = 0;
XXXXXXXXXXXXXX while ((j < ROUTELENGTH) AND (P.route[i] != NO NODE)) do {
¯
XXXXXXXXXXXXXXXX B.route[j] = P.route[j];
XXXXXXXXXXXXXXXX j = j+1;
XXXXXXXXXXXXXX }
XXXXXXXXXXXXXXXX if (j < ROUTELENGTH) then {
A Quellcode
XXXXXXXXXXXXXXXXXX B.route[i] = Net ID;
¯
XXXXXXXXXXXXXXXX }
XXXXXXXXXXXXXX}
XXXXXXXXXXXX }
XXXXXXXXXX }
XXXXXXXX }
XXXX downlink:
XXXXXX if (GID == P.target ID) then {
¯
XXXXXXXX NetID= P.new NetID;
¯
XXXXXXXX Ack P.type = ack;
¯
XXXXXXXX Ack P.sender id = Net ID;
¯
¯
¯
XXXXXXXX Ack P.received packet id = P.packet id;
¯
¯
¯
¯
XXXXXXXX Ack P.received id = P.id;
¯
¯
XXXXXXXX send(actFrequency,POWER MSG ACK,P);
¯
¯
XXXXXXXX deliver data to application(B.down application data);
¯
¯ ¯
¯
¯
XXXXXX } else if (B.downlink buffer full == 0) then {
¯
¯
XXXXXXXX i = 0;
XXXXXXXX k = 255;
XXXXXXXX B.route is down = 1;
¯ ¯
XXXXXXXX while ((i < ROUTELENGTH) AND (P.route[j] != NO NODE) AND
¯
XXXXXXXXXXXX (P.route[j] != Net ID) AND (k == 255)) do {
¯
XXXXXXXXXX k = find in neighborlist(B.route[j]);
¯ ¯
XXXXXXXXXX j = j+1;
XXXXXXXX }
XXXXXXXX j=j-1 ;
XXXXXXXX if (k != 255) AND (P.route[j] != Net ID) then {
¯
XXXXXXXXXX Ack P.type = ack;
¯
XXXXXXXXXX Ack P.sender id = Net ;
¯
¯
¯
XXXXXXXXXX Ack P.received packet id = P.packet id;
¯
¯
¯
¯
XXXXXXXXXX Ack P.received id = P.id;
¯
¯
XXXXXXXXXX send(actFrequency,POWER MSG ACK,P);
¯
¯
XXXXXXXXXX B.downlink buffer full = 1;
¯
¯
XXXXXXXXXX B.down application data = P.application data;
¯
¯
¯
XXXXXXXXXX k = 0;
XXXXXXXXXX while (k < j) do {
XXXXXXXXXXXX P.route[k]=P.route[k];
XXXXXXXXXXXX B.route[k]=P.route[k];
153
A Quellcode
XXXXXXXXXXXX k = k+1;
XXXXXXXXXX }
XXXXXXXXXX while (k < ROUTE LENGTH) do {
¯
XXXXXXXXXXXX B.route[k] = NO NODE;
¯
XXXXXXXXXXXX B.down GID = P.target GID;
¯
¯
XXXXXXXXXXXX P.route[k]= NO NODE;
¯
XXXXXXXXXXXX k = k+1;
XXXXXXXXXX}
XXXXXXXX}
XXXXXX}
XXXX ack:
XXXXXX clear to send = 0;
¯ ¯
XXXXXX drop out of receive loop = 0;
¯
¯ ¯
¯
XXXXXX if (type=uplink AND P.hop distance < (round(hop distance)-1)){
¯
¯
XXXXXXXX hop distance = hop distance -1/3;
¯
¯
XXXXXX }
XXXX beacon:
XXXXXX checkHop distance(P.hop distance);
¯
¯
XXXXXX T NEW = P.T;
¯
XXXXXX add to neighbor list(P.sender id);
¯ ¯
¯
¯
XXXX inquire:
XXXXXX if (P.GID = GID) then {
XXXXXXXX P.received sensor id = P.sensor id;
¯
¯
¯
XXXXXXXX P.type = dump;
XXXXXXXX P.ID = Net ID;
¯
XXXXXXXX P.GID = GID;
XXXXXXXX adjacency list = neighborlist;
¯
XXXXXXXX clear-to send = 1;
¯
XXXXXXXX drop out of receive loop = 1;
¯
¯ ¯
¯
XXXXXX } else { XXXXXXXX clear to send = 0;
¯ ¯
XXXXXX }
XXXX dump:
XXXXXX clear to send = 0;
¯ ¯
XXXXXX drop out of receive loop = 1;
¯
¯ ¯
¯
154
A Quellcode
XXXX reset:
XXXXXX if (((P.GID = GID) OR P.GID= NO NODE))
¯
XXXXXXXXXXXXAND P.reset ID > reset Id) then {
¯
¯
XXXXXXXX Net ID = P.NID;
¯
XXXXXXXX T = P.T;
XXXXXXXX B.uplink buffer full = 0;
¯
¯
XXXXXXXX B.downlink buffer full = 0;
¯
¯
XXXXXXXX B.route is up = 0;
¯ ¯
XXXXXXXX B.route is down = 0;
¯ ¯
XXXXXXXX clear-to send = 0;
¯
XXXXXXXX drop out of receive loop=0;
¯
¯ ¯
¯
XXXXXXXX channels := C;
XXXXXXXX count maxReceive:= maxReceive;
¯
XXXXXXXX hop distance := hop distance+1;
¯
¯
XXXXXXXX useEqual := useEqualProbability ;
XXXXXXXX rounds wake = P.rounds wake;
¯
¯
XXXXXXXX if (P.GID= NO NODE) then {
¯
XXXXXXXXXX received reset =1;
¯
XXXXXXXXXX clear-to send = 1;
¯
XXXXXXXX }
XXXXXX }
XXXX empty:
XXXXXX clear to send = 1;
¯ ¯
XX end of case
XX if (new sensor data available() AND (B.uplink buffer == 0)) then {
¯
¯
¯
¯
XXXX prepareOwnData();
XXXX B.counter rounds=0;
¯
XX }
XX if (uplink buffer full==1) OR (downlink buffer full ==1) then
¯
¯
¯
¯
XXXX drop out of receive loop = 1;
¯
¯ ¯
¯
XX wait(channels/13 · round duration -(now () - t start ) -1);
¯
¯
XX actualRound = (now () - t start) / roundDuration;
¯
}
---- receive -while ends ---Das Sendeverhalten musste natürlich auch bearbeitet werden:
155
A Quellcode
---- send-if-begin ---if (clear to send == 1) then {
¯ ¯
XX} if(received reset ==1) then {
¯
---- received a global reset, send it to others ---XXXX P.type = reset;
XXXX P.T = T;
XXXX P.C = channels;
XXXX P.maxReceive = count maxReceive;
¯
XXXX P.hop distance := round(hop distance);
¯
¯
XXXX P.useEqualProbability= useEqual;
XXXX P.rounds wake = rounds wake;
¯
¯
XXXX t start = now();
¯
---- send-reset-loop starts ------- reset has same power as Ack ---XXXX actFrequency = getFrequencyOfChannel(
XXXXXXXXXXXX getChannelNumber(hop distance, actRound, true));
¯
XXXX send(actFrequency, POWER MSG ACK, P);
¯
¯
XX else if (P.type = dump) then {
XXXX while (actualRound < rounds wake AND uplink buffer full == 1) do {
¯
¯
¯
XXXXXX actFrequency = getFrequencyOfChannel(
XXXXXXXXXXXXXXX getChannelNumber (hop distance, actRound, true));
¯
XXXXXX send(actFrequency, POWER MSG SEND, P);
¯
¯
XXXXXX ++ actualRound;
XXXX }
XX } else if (uplink buffer full == 1) then {
¯
¯
XXXX P.type = uplink;
XXXX P nr = P nr + 1;
¯
¯
XXXX P.packet id = B.up packet id ;
¯
¯
¯
XXXX P.origin GID = B.UP GID;
¯
¯
XXXX P.application data = B.up application data;
¯
¯
¯
XXXX P.counter hops = B.counter hops;
¯
¯
156
A Quellcode
157
---- send-uplink-loop starts ---XXXX t start = now();
¯
XXXX do {
XXXXXX while (actualRound < rounds wake AND uplink buffer full == 1) do {
¯
¯
¯
XXXXXXXX actFrequency = getFrequencyOfChannel(
XXXXXXXXXXXXXXXX getChannelNumber(hop distance, actRound, true));
¯
XXXXXXXX send(actFrequency, POWER MSG SEND, P);
¯
¯
XXXXXXXX ACK P = listen-for-ack(actFrequency);
¯
XXXXXXXX ++ actualRound;
XXXXXXXX if (ACK P.type == ack) AND (ACK P.received id == NetID) AND
¯
¯
¯
XXXXXXXXXXXX (ACK P.received packet id == P.packet id) then {
¯
¯
¯
¯
XXXXXXXXXX uplink buffer full == 0;
¯
¯
XXXXXXXX add neighbor to neighborlist(ACK P.sender id);
¯
¯ ¯
¯
¯
XXXXXXXX checkHop distance(P.hop distance);
¯
¯
XXXXXX }
XXXX }
XX }
XX while (uplink buffer full ==1 OR time since(t start) < T SEND)
¯
¯
¯
¯
¯
---- send-uplink-loop ends ---- if there is still a message in buffer, sending wasn’t sucessfull XXif(uplink buffer full==1) then {
¯
¯
XXXX B.counter hops ++
¯
XXXX hop distance ++;
¯
XX }
---- no dump, no uplink message, but perhaps a downlink message ---XX } else if (downlink buffer full == 1) then {
¯
¯
XXXX t start = now();
¯
XXXX ++ actualRound;
XXXX P.type = downlink;
XXXX P nr = P nr + 1;
¯
¯
XXXX P.packet id = B.down packet id;
¯
¯
¯
XXXX P.sender id = Net ID;
¯
¯
A Quellcode
158
XXXX P.target GID = B.downd GID;
¯
¯
XXXX P.application data = down application data;
¯
¯
¯
---- send-downlink-loop starts ---XXXX do {
XXXXXX while (actualRound < rounds wake AND uplink buffer full == 1) do {
¯
¯
¯
XXXXXXXX actFrequency = getFrequencyOfChannel(
XXXXXXXXXXXXXXXXXX getChannelNumber(hop distance, actRound, true));
¯
XXXXXXXX send(actFrequency, POWER MSG SEND, P);
¯
¯
XXXXXXXX ACK P = listen-for-ack(actFrequency);
¯
XXXXXXXX if (ACK P.type == ack) AND (ACK P.received id == NetID) AND
¯
¯
¯
XXXXXXXXXXXX (ACK P.received packet id == P.packet id) then {
¯
¯
¯
¯
XXXXXXXXXX downlink buffer full == 0; XXXXXXXXXX B.route is down = 0;
¯
¯
¯ ¯
XXXXXXXXXX add neighbor to neighborlist(ACK P.sender id);
¯
¯ ¯
¯
¯
XXXXXXXX }
XXXXXX }
XXXX }
XX }
XX while (downlink buffer full ==1 OR time since(t start) < T SEND)
¯
¯
¯
¯
¯
---- send-downlink-loop ends ---XXXX } else {
---- Nothing to send. So let’s send a beacon ---XXXX P.type = beacon;
XXXX P.T = T;
XXXX P.sender id = Net ID;
¯
¯
XXXX P.hop distance = round(hop distance);
¯
¯
XXXX t start = now();
¯
---- send-beacon-loop starts ---XXXX actFrequency = getFrequencyOfChannel(
XXXXXXXXXXXX getChannelNumber(hop distance, actRound, true));
¯
XXXX send(actFrequency, POWER MSG BEACON, P);
¯
¯
A Quellcode
XXXX }
XX }
---- send-if-end ---T SLEEP = GetSleepTime(now, hop distance);
¯
¯
---- outer-while-end ----
159
Anhang B
Verzeichnisse
B.1
Literaturverzeichnis
[Ab 70] N. Abramson
The Aloha System - Another Alternative for Computer Communications,
in Fall Joint Computer Conference, AFIPS Conference Proceedings, Vol. 37, pp. 281-285,
1970
[Ak,Su 02] Akyildiz, I. F., W. Su, Y. Sankarasubramaniam und E. Cayirci
Wireless Sensor Networks: A Survey,
in Computer Networks, 38(4):393-422, März 2002
[Aw,Ho 04] Baruch Awerbuch, David Holmer, Herbert Rubens und I.-J. Wang
(Johns Hopkins University), Kirk Chang (Applied Research Telcordia Technologies)
The Pulse Protocol: Sensor Network Routing and Power Saving, 2004
www.cnds.jhu.edu/research/networks/archipelago/publications/AwerbuchMilcom2004-SensorPulse.pdf
[Aw,Ru 04] Baruch Awerbuch, David Holmer und Herbert Rubens, Johns Hopkins University
The Pulse Protocol: Energy Efficient Infrastructure Access,
IEEE 2004
www.ieee-infocom.org/2004/Papers/31 5.PDF
¯
[Bü 93] Thomas Bürger, Technische Universität Clausthal
Network Time Protocol - Ein Zeitservice für Computernetze, Juli 1993
B Verzeichnisse
161
http://ftp.tu-clausthal.de/pub/EXPERT/docs/
DV-info/Network Time Protocol.pdf
¯
¯
[El, Gi 02] Jeremy Elson, Lewis Girod und Deborah Estrin, University of California, Los Angeles
Fine-Grained Network Time Synchronization using Reference Broadcasts,
in Proceedings of the Fifth Symposium on Operating Systems Design and Implementation
(OSDI 2002), Boston, MA, December 2002.
http://lecs.cs.ucla.edu/Publications/papers/broadcast-osdi.pdf
[Fr 03] Friedemann Mattern und Kay Römer, Institut für Pervasive Computing
ETH Zürich
Informatik Spektrum, Springer-Verlag Berlin Heidelberg, 2003
http://www.gi-ev.de/informatik/lexikon/inf-lex-drahtloses-sensornetze.shtml
[Ga,Ku 03] Saurabh Ganeriwal, Ram Kumar und Mani B. Srivastava, University
of California Los Angeles
Timing-sync Protocol for Sensor Networks,
ACM Conference on Embedded Networked Sensor Systems (SENSYS 2003)
http://www.ee.ucla.edu/ saurabh/publications/Sensyspaper03.pdf
[Go 05] Ines Bebea Gonzalez, Universität Paderborn
Topology Control for Mobile Ad Hoc Sensor Networks: Clustering, 7. März 2005
Projektgruppe Large Scale Ad Hoc Networks 2004/2005
[Hae 05] Thomas Haenselmann, Universität Mannheim,
Veranstaltungsseite zur Vorlesung ’Sensornetze’ im Wintersemester 2004/2005
http://www.informatik.uni-mannheim.de/pi4/lectures/ws0405/sensornetze/
[Ha,Gr 04] Matthias Handy, Frank Grassert, Dirk Timmermann, Universität Rostock
DCP: A New Data Collection Protocol for Bluetooth-Based Sensor Networks,
EUROMICRO Symposium on Digital System Design, S. 566-573, ISBN: 0-7695-2203-3,
Rennes, Frankreich, 2004
http://www-md.e-technik.uni-rostock.de/veroeff/handym dsd2004.pdf
¯
[He,Ba 00] Wendi Rabiner Heinzelman, Anantha Chandrakasan und Hari Bala-
B Verzeichnisse
162
krishnan, Massachusetts Institute of Technology, Cambridge
Energy-Efficient Communication Protocol for Wireless Microsensor Networks,
Hawaii International Conference on System Sciences, 4-7 Januar 2000
http://www-mtl.mit.edu/ wendi/papers/hicss00.ps
[He,Ch 00] Wendi Rabiner Heinzelman, Anantha Chandrakasan und Hari Balakrishnan, Massachusetts Institute of Technology, Cambridge
Energy-Efficient Communication Protocol for Wireless Microsensor Networks,
33. Hawaii International Conference on System Sciences 2000
hsnl.ee.tku.edu.tw/WLAN/Chuang/chuang–0227.ppt
[Ho 04] Prof. Dr. Dieter Hogrefe, Georg-August-Universität Göttingen
Mobile Ad Hoc Netze
in der Veranstaltung Mobilkommunikation 2 im Wintersemester 2004/2005
http://user.informatik.uni-goettingen.de/ elanmk/mk2 ws0405/pdf/MobileAdHoc.pdf
¯
[In,Go
00]
Chalermek
Intanagonwiwat,
Ramesh
Govindan,
Deborah
Estrin,
USC/Information Sciences Institute
Directed diffusion: A scalable and robust communication paradigm for sensor networks,
in Proceedings of the Sixth Annual International Conference on Mobile Computing and Networking (MobiCOM 2000), August 2000, Boston, Massachussetts.
http://lecs.cs.ucla.edu/ estrin/papers/diffusion.ps
[Jo, Ma] David B. Johnson David A. Maltz, Carnegie Mellon University
Dynamic Source Routing in Ad Hoc Wireless Networks
www.ics.uci.edu/ atm/adhoc/paper-collection/johnson-dsr.pdf
[Ka 90] P. Karn,
’MACA- a New Channel Access Method for Packet Radio’,
in ARRL/CRRL Amateur Radio 9th Computer Networking Conference,1990
[Ka 05] Universität Karlsruhe
Veranstaltungsseite zum Seminar ’Algorithmen für Sensornetze’ im Wintersemester
2004/2005
http://i11www.informatik.uni-karlsruhe.de/teaching/WS 0405/sensornetze/
¯
[Kr 03] Tobias Krauer,
Zeitsynchronisation in Sensornetzen
B Verzeichnisse
163
in Seminar Verteilte Systeme: Sensornetze, Sommersemester 2003
http://www.vs.inf.ethz.ch/edu/SS2003/DS/reports/05 time report.pdf
¯
¯
[Lu,Ko 03] Andreas Lundin, Jon Kolstad, National University of Singapore
Ad
Hoc
Routing,
13.April
2003
www.comp.nus.edu.sg/˜cs4274/termpapers/0203-
II/group24/paper.pdf
[Ma,Fr 02] S. R. Madden, M. J. Franklin, J. M. Hellerstein und W. Hong
’TAG: A Tiny AGgregation Service for Ad-hoc Sensor Networks’, OSDI Conference, 2002.
[Ma 02] Magistratsabteilung 36, Feuerpolizei und Veranstaltungswesen Wien
Verkaufsstätten-Richtlinie der MA 36, 01.03.2002
www.wien.gv.at/ma36/pdf/verkaufsstaettenrichtlinie.pdf
[Mu 04] Daniel Mutschler, Fachhochschule Gießen
Seminararbeit Ubiquitous Computing - Drahtlose Sensornetze, März 2004
homepages.fh-giessen.de/˜hg51/Seminar-0304/mutschler-seminar.pdf
[Pe, Bh] Charles E. Perkins (IBM, Watson Research Center ), Pravin Bhagwat
(Computer Science Department)
Highly Dynamic Destination Sequenced Distance Vector Routing (DSDV) for Mobile
Computers
www.cs.umass.edu/ mcorner/courses/691M/papers/perkins.pdf
[Pe, Ro 00] Charles E. Perkins (Sun Microsystems Laboratories), Elizabeth M.
Royer (University of California, Santa Barbara)
Ad hoc On-Demand Distance Vector Routing,
in Ad hoc Networking, Addison- Wesley, 2000
www.cs.brown.edu/courses/cs295-1/aodv.pdf
[Ra, Mi] Srajan Raghuwanshi, Amitabh Mishra, Bradley Department of Electircal
and Computer Engineering, Virginia - USA
An Approach Towards Improved Energy-efficiency in Wireless Sensor Nets
filebox.vt.edu/users/sraghuwa/srajan RAWCON 2003.pdf
¯
¯
[Ro 75] L. G. Robert,
ALOHA packet system with and without slots and capture
in Computer Communication Rev., vol.5, no.2, April 1975
B Verzeichnisse
164
[Rö 01] Kay Römer, ETH Zürich
Time Synchronization in Ad Hoc Networks,
in Proceedings of MobiHoc 2001, ACM, October 2001
www.vs.inf.ethz.ch/publ/papers/mobihoc01-time-sync.pdf
[Rö 04] Kay Römer, ETH Zürich
Zeitsynchronisation in Sensornetzen, 3. Summer School - Schloss Dagstuhl, 12-15.
September 2004
http://www.ibr.cs.tu-bs.de/events/summerschool2004/roemer-time.pdf
[Rö, Bl 05] Kay Römer, Philipp Blum und Lennart Meier, ETH Zürich
Time Synchronization and Calibration in Wireless Sensor Networks,
in Ivan Stojmenovic (Ed.): Wireless Sensor Networks, John Wiley and Sons, 2005
www.vs.inf.ethz.ch/publ/papers/wsn-time-book.pdf
[Sa 04] Christopher M. Sadler, Pei Zhang, Stephen Lyon, Margaret Martonosi,
Princeton University
Hardware Design Experiences in ZebraNet, SenSys 2004, Baltimore, MD, 5 November
2004
http://www.princeton.edu/ csadler/ZNet HW Sensys04.ppt
¯
¯
[Sch 04] Christian Schindelhauer, Ulrich Hilleringmann, Universität Paderborn
Entwicklung
eines
drahtlosen
energieeffizienten
Sensornetzwerkes
zur
Füllstandbestimmung am Beispiel eines Regalsystems im Einzelhandel, Paderborn
2004
Dateiname: Sch 04 Hardware.pdf
¯ ¯
[Sch 03/04] Christian Schindelhauer, Michelle Jing Liu, Stefan Rührup, Klaus
Volbert, Universität Paderborn
Sensor Networks using Sleeping Routers, Paderborn März 2004
Dateiname: Sch 0304 VortragÜberblick.pdf
¯
¯
[Sch 04/04] Christian Schindelhauer, Universität Paderborn
1QK - Sensor Network Protocol - Version 2.3, Paderborn 21.04.04
Dateiname:Sch 0404 Main-spec-sensor.pdf
¯
¯
[Sch 04-R02] Christian Schindelhauer, Universität Paderborn
B Verzeichnisse
165
Specification Document Network Layer - Sensor Part of the 1 QK-Protocol, Release 2.0,
Paderborn 21.03.2004
Dateiname: Sch 04-R02 SENSOR-SPEC.rtf
¯
¯
[Sch 05] Christian Schindelhauer, Universität Paderborn
Abschätzungen zu Wahrscheinlichkeitsverteilungen, Paderborn 28.03.2005
Dateiname: Sch 05 Abschaetztungen.pdf
¯ ¯
[Sen 05] Senets Project, Universität Rostock
Vorstellungsseite des Projektes, 2005
http://rtl.e-technik.uni-rostock.de/˜bj/software/senets/index.php?id=routing
[Si,Ra 99] Suresh Singh (Oregon State University), C.S. Raghavendra (Aerospace
Corporation)
PAMAS - Power Aware Multi-Access protocol with Signalling for Ad Hoc Networks, 1999
http://citeseer.ist.psu.edu/157040.html
[Ti 04] TinyOS, UC Berkeley
Mission Statement, 2004
http://www.tinyos.net/special/mission
[Va, Ch] Prof. Pravin Varaiya, Dr. Chin-Woo Tan, UC Berkeley
TinyOS sensor network for detecting vehicles
http://path.berkeley.edu/˜singyiu/singyiu/resume/projects/tinyos.htm
[Wa 01] Warneke, B., M. Last, B. Leibowitz und K. S. J. Pister
Smart Dust: Communicating with a Cubic-Millimeter Computer,
in IEEE Computer Magazine, 34(1):44-51, Januar 2001
[We 04] Aline Wetjen, Brandenburgische Technische Universität Cottbus
Dynamic Source Routing, im Wintersemester 2004/2005
www.ihp-ffo.de/systems/lv/ws0405/AW Text.pdf
¯
[Wi 04] Simon Wilkinson
Routing in Mobile Ad Hoc Networks, Frühling 2004
www.site.uottawa.ca/ kuruvila/Site 09/Presentations/Final 5 Routing.ppt
¯
¯¯
[Wo 04] Prof. Dr. rer. nat. Bernd E. Wolfinger, Universität Hamburg
B Verzeichnisse
166
Veranstaltung “Datenkommunikation und Rechnernetze“ im Wintersemester 2004/2005
www.informatik.uni-hamburg.de/TKRN/world/abro/DKR/DKR1.pdf
[Ya 05] Yuhan Yan, Universität Paderborn
Time synchronization in sensor network, März 2005
Projektgruppe Large Scale Ad Hoc Networks 2004/2005
[Yu 05] Jianchi Yu, Universität Paderborn
Routing Protocols for Wireless Sensor Networks, 28.02.2005,
Projektgruppe Large Scale Ad Hoc Networks 2004/2005
[Zh, Sa 04] Pei Zhang, Christopher M. Sadler, Stephen A. Lyon und Margaret
Martonosi, Princeton University
Hardware Design Experiences in ZebraNet, Proceedings of SenSys 2004, November 2004
http://www.princeton.edu/ csadler/sensys04.pdf
B.2
Glossar
FSK (Frequency Shift Keying)
FSK ist eine beliebte Methode zur drahtlosen Übermittlung digitaler Signale. Es wird
vor allem im Betrieb von Funkfernschreibern eingesetzt(RTTY). Die meisten Transceiver
unterstützen einen FSK Regler, um ein klares und stabiles RTTY Signal zu erzeugen.
Manchester Codierung
Serielle Übertragungsmethode für Bits, die dem Empfänger die Synchronisation mit dem
Sender ohne externes Taktsignal ermöglicht.
Die einfachste Methode, Bits zu signalisieren, besteht darin, für ein 1-Bit eine bestimmte
Periode lang ein High-Signal (z.B. hohe Spannung) und für ein 0-Bit ein Low-Signal (z.B.
niedrige Spannung) zu verwenden. Wenn jedoch mehrere gleiche Bits hintereinander
verschickt werden, hat der Empfänger keine Möglichkeit, Anfang und Ende der einzelnen
Bits zu erkennen.
Die Manchester Kodierung teilt daher jede Bitperiode in zwei Hälften und stellt
sicher, daß immer ein Wechsel des Signals in der Mitte der Bitperiode stattfindet. So
ist der Empfänger in der Lage, sich mit dem Sender zu synchronisieren. Siehe dazu
http://www.it-administrator.de/lexikon/manchester kodierung.html
¯
B Verzeichnisse
167
Flash-Speicher
Flash-Speicher sind digitale Speicher(-Chips). Die Bytes können dabei einzeln adressiert
und gelesen werden. Bytes können einzeln geschrieben werden. Das Löschen einzelner
Bytes ist jedoch nicht möglich. Will man Speicherwerte löschen, muss ein ganzer
Sektor (meistens ein Viertel, Achtel, Sechzehntel usw. der Gesamtspeicherkapazität)
gelöscht werden. Zum Schreiben auf den Flash-Speicher, Löschen einzelner Sektoren
bzw. Löschen des gesamten Speichers müssen spezielle Kommandos (z.B. eine so genannte Unlock-Sequenz) an den Flash-Speicher geschrieben werden. Das verhindert das
unbeabsichtigte, ßufällige”Beschreiben oder Löschen des Speichers. Im Gegensatz dazu
kann bei EEPROMs jedes Byte auch einzeln gelöscht werden. Flash-Speicher haben eine
begrenzte Lebensdauer die in einer maximalen Anzahl an Lösch-Zyklen angegeben wird
(ca. 100.000 Zyklen).
Schlafphase
Die Stationen sind im Standby-Betrieb. Es erfolgt keine Aktionen bis der Timer einen
gewissen Zeitpunkt erreicht hat. Durch ein Interrupt wird dann die Station wieder in
Betrieb genommen und nimmt Aktionen vor.
Kanal
Frequenzbereich zum Senden oder Empfangen von Signalen
B Verzeichnisse
168
Abbildungsverzeichnis
1.1
Beispiel eines Sensorknotens, Quelle: [Va, Ch] . . . . . . . . . . . . . . . .
3
1.2
Kommunikation im ZebraNet, Quelle: [Sa 04, S.2] . . . . . . . . . . . . . .
7
1.3
Zebra mit Halsmanschette, Quelle: [Zh, Sa 04, S.9] . . . . . . . . . . . . . .
8
1.4
Sensorknoten der Artikelgruppe ’Cigaret’, In Anlehnung an [Sch 03/04, S.2]
9
2.1
Sensorknoten zur Erfassung des Warenbestandes, Quelle: [Sch 04, S.2] . . . 13
2.2
Kommunikation über Regale im Supermarkt, Quelle: [Sch 03/04, S.4] . . . 15
2.3
Virtuelle Regale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4
Visualisierung der Regalbegriffe . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5
Senkrechte Anordnung der Regale zum Server . . . . . . . . . . . . . . . . 20
2.6
Querstehende Regale zum Server . . . . . . . . . . . . . . . . . . . . . . . 20
2.7
Überschneidungen vom Sendebereich . . . . . . . . . . . . . . . . . . . . . 21
2.8
Visualisierung der Dreiecksberechnung . . . . . . . . . . . . . . . . . . . . 22
2.9
Streckenverhältnisse der senkrechten Regalanordnung . . . . . . . . . . . . 24
2.10 Regalproportionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1
Verhalten in der Round-Time, Quelle:[Sch 03/04, S.12] . . . . . . . . . . . 31
3.2
Zustandsübergänge, Quelle:[Sch 04/04, S.6] . . . . . . . . . . . . . . . . . . 32
3.3
Aktivitätendiagramm zu Process Packet, Quelle:[Sch 03/04, S.10] . . . . . 33
3.4
Das hidden terminal problem, Quelle:[Si,Ra 99, S.2] . . . . . . . . . . . . . 34
3.5
Verlauf von Hilfsvariablen M und der EPD, Quelle:[Sch 03/04, S.17] . . . . 36
3.6
Prepare Uplink Packet From Buffer, Quelle:[Sch 03/04, S.19] . . . . . . . . 39
3.7
Das OSI Referenzmodell, in Anlehnung an Quelle:[CR 00, S.9] . . . . . . . 44
ABBILDUNGSVERZEICHNIS
170
3.8
Schnittstellen der Ebenen, Quelle:[Sch 03/04, S.2] . . . . . . . . . . . . . . 46
3.9
Beispiel AODV, in Anlehnung an Quelle:[Ho, S.8f] . . . . . . . . . . . . . . 54
3.10 Attribut-Wert-Paare, Quelle:[In,Go 00, S.3] . . . . . . . . . . . . . . . . . . 58
3.11 Periodische interest-Nachricht eines sinks, Quelle:[In,Go 00, S.4] . . . . . . 59
3.12 Ablauf von Direct-Diffusion, Quelle:[In,Go 00, S.4] . . . . . . . . . . . . . . 60
4.1
Präzisionsverbesserung der Group Dispersion, Quelle:[El, Gi 02, S.8] . . . . 66
4.2
MultiHop-Synchronisation, Quelle:[El, Gi 02, S.12] . . . . . . . . . . . . . . 67
4.3
Allgemeines
Modell
für
die
MultiHop-Synchronisation,
Quelle:[El, Gi 02, S.14] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4
Paarweise Synchronisation, Quelle: [Ga,Ku 03, S.4] . . . . . . . . . . . . . 70
4.5
Sende-und Empfangsphasen in der regalweisen Synchronisation . . . . . . . 72
4.6
Verhältnis uplink- und downlink- Treppen . . . . . . . . . . . . . . . . . . 73
4.7
Regalweise Synchronisation mit deutlicherer Überschneidung . . . . . . . . 74
5.1
Gleichverteilung für acht Kanäle . . . . . . . . . . . . . . . . . . . . . . . . 85
5.2
Geometrische Verteilung für acht Kanäle . . . . . . . . . . . . . . . . . . . 92
5.3
1. Vergleichsdarstellung der geometrischen Verteilung und Gleichverteilung
93
5.4
2. Vergleichsdarstellung der geometrischen Verteilung und Gleichverteilung
94
5.5
Faktorisierte geometrischen Verteilung für acht Kanäle und Faktor zwei . . 95
5.6
2. Beispiel einer faktorisierten geometrischen Verteilung . . . . . . . . . . . 96
5.7
Erwartungswert der faktorisierten Verteilungzu 1a) . . . . . . . . . . . . . 102
5.8
Erwartungswert der faktorisierten Verteilung zu 1b) . . . . . . . . . . . . . 103
5.9
Erwartungswert der faktorisierten Verteilungzu 1c) . . . . . . . . . . . . . 104
5.10 Erwartungswert der faktorisierten Verteilung zu 1d) . . . . . . . . . . . . . 105
5.11 Erwartungswert der faktorisierten Verteilung zu 2a) . . . . . . . . . . . . . 107
5.12 Erwartungswert der faktorisierten Verteilung zu 2b) . . . . . . . . . . . . . 108
5.13 Erwartungswert der faktorisierten Verteilung zu 2c) . . . . . . . . . . . . . 109
5.14 Erwartungswert der faktorisierten Verteilung zu 2d) . . . . . . . . . . . . . 110
5.15 1. Beispielverlauf für ansteigenden Streckungsfaktor . . . . . . . . . . . . . 111
ABBILDUNGSVERZEICHNIS
171
5.16 2. Beispielverlauf für ansteigenden Streckungsfaktor . . . . . . . . . . . . . 112
5.17 3. Beispielverlauf für ansteigenden Streckungsfaktor . . . . . . . . . . . . . 113
5.18 4. Beispielverlauf für ansteigenden Streckungsfaktor . . . . . . . . . . . . . 114
5.19 5. Beispielverlauf für ansteigenden Streckungsfaktor . . . . . . . . . . . . . 115
5.20 1. Beispiel der Erfolgsquote für ansteigenden Streckungsfaktor . . . . . . . 115
5.21 2. Beispiel der Erfolgsquote für ansteigenden Streckungsfaktor . . . . . . . 116
5.22 3. Beispiel der Erfolgsquote für ansteigenden Streckungsfaktor . . . . . . . 116
5.23 1. Vergleich der faktorisierten geom. Verteilung und der Gleichverteilung . 117
5.24 2. Vergleich der faktorisierten geom. Verteilung und der Gleichverteilung . 118
5.25 3. Vergleich der faktorisierten geom. Verteilung und der Gleichverteilung . 118
5.26 Aufgabe der disjunkten Sendebereiche der einfachen Variante . . . . . . . . 120
5.27 Regalweise Synchronisation mit vielen Sendephasenüberschneidungen . . . 121
6.1
Visualisierung des Nachrichtenstaus - Ausgangsposition . . . . . . . . . . . 125
6.2
Visualisierung des Nachrichtenstaus - Erste Sendephase . . . . . . . . . . . 125
6.3
Visualisierung des Nachrichtenstaus - Nach der ersten Sendephase . . . . . 126
6.4
Visualisierung des Nachrichtenstaus - Vor der zweiten Sendephase . . . . . 126
6.5
Visualisierung des Nachrichtenstaus - Die zweite Sendephase . . . . . . . . 127
6.6
Visualisierung des Nachrichtenstaus - Nach der zweiten Sendephase . . . . 128
6.7
Verlauf der Wahrscheinlichkeitsfunktion für p=0.45 . . . . . . . . . . . . . 129
6.8
Verlauf der Wahrscheinlichkeitsfunktion für p=0.25 . . . . . . . . . . . . . 130
6.9
Weiterleitung mit Wahrscheinlichkeit von 75 Prozent der fremden Nachricht bei Vorliegen einer eigener Nachricht . . . . . . . . . . . . . . . . . . 131
6.10 Darstellung der Wahrscheinlichkeitsfunktion f1(x) . . . . . . . . . . . . . . 132
6.11 f2(x), f3(x), f4(x) und f5(x) mit p=0,25 . . . . . . . . . . . . . . . . . . . . 132
6.12 f2(x), f3(x) f4(x) und f5(x) mit p=0,25 und y im Bereich von Null bis Eins 133
6.13 Visualisierung von f5(x) mit p=0,5 . . . . . . . . . . . . . . . . . . . . . . 133

Documentos relacionados