10.07.2015 Aufrufe

ti5.tu-harburg.de - Institut für Telematik - TUHH

ti5.tu-harburg.de - Institut für Telematik - TUHH

ti5.tu-harburg.de - Institut für Telematik - TUHH

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

StudienarbeitLokale Datenaggregation <strong>für</strong>mehrere Senken in SensornetzenvonBernd-Christian RennerMatrikel-Nummer: 30539April 2007ReferentProf. Dr. Volker Turau<strong>Institut</strong> <strong>für</strong> <strong>Telematik</strong>Technische Universität Hamburg-Harburg, DeutschlandKorreferentDr. Kay Römer<strong>Institut</strong> <strong>für</strong> Pervasive ComputingEidgenössische Technische Hochschule Zürich, Schweiz<strong>Institut</strong> <strong>für</strong> <strong>Telematik</strong><strong>TUHH</strong>Technische Universität Hamburg-Harburg


DanksagungBeson<strong>de</strong>ren Dank möchte ich meinem Betreuer Christoph Weyer <strong>für</strong> die zahlreichen Besprechungen,Diskussionen, Anregungen und konstruktive Kritik aussprechen. Ein weiteresDankeschön gilt meinen Eltern, die trotz <strong>de</strong>r unvertrauten Materie die Lektüre <strong>de</strong>rfolgen<strong>de</strong>n Seiten nicht gescheut haben, um mich beim Fin<strong>de</strong>n und Beseitigen von Fehlernwährend <strong>de</strong>r Erstellung dieser Arbeit tatkräftig zu unterstützen.


Ei<strong>de</strong>sstattliche ErklärungIch, BERND-CHRISTIAN RENNER (Stu<strong>de</strong>nt <strong>de</strong>s Informatik-Ingenieurwesens an <strong>de</strong>r TechnischenUniversität Hamburg-Harburg, Matrikelnummer 30539), versichere an Ei<strong>de</strong>s statt,dass ich die vorliegen<strong>de</strong> Studienarbeit selbstständig verfasst und keine an<strong>de</strong>ren als die angegebenenHilfsmittel verwen<strong>de</strong>t habe. Die Arbeit wur<strong>de</strong> in dieser o<strong>de</strong>r ähnlicher Formnoch keiner Prüfungskommission vorgelegt.Hamburg, <strong>de</strong>n 13. April 2007Bernd-Christian Renner


AbstractIn <strong>de</strong>r jüngeren Vergangenheit hat sich eine neue Anwendungsklasse in drahtlosen Sensornetzenentwickelt: Mehrere Senken sammeln Daten von Knoten, die sich in einer lokalenUmgebung befin<strong>de</strong>n, ein und verarbeiten sie. Eine spezielle Anwendung dieser Klasse istdas Generieren häufig auftreten<strong>de</strong>r verteilter räumlicher Ereignismuster in drahtlosen Sensornetzen.Die vorliegen<strong>de</strong> Studienarbeit entwickelt zwei unterschiedliche, <strong>für</strong> diese Anwendungoptimierte Routing-Verfahren zum Einsammeln <strong>de</strong>r Daten von Knoten in einerlokalen Umgebung. Hierbei han<strong>de</strong>lt es sich um Fluten und Spannbaum-Routing. Die entstehen<strong>de</strong>nAlgorithmen wer<strong>de</strong>n als TinyOS-Applikationen implementiert, die zur Durchführungverschie<strong>de</strong>ner Simulationen verwen<strong>de</strong>t wer<strong>de</strong>n, aber auch <strong>für</strong> <strong>de</strong>n Einsatz in realenSensornetzen konzipiert sind. Auf Basis <strong>de</strong>r Simulationsergebnisse erfolgt ein Vergleichbei<strong>de</strong>r Verfahren miteinan<strong>de</strong>r sowie eine Bewertung ihrer tatsächlichen Eignung <strong>für</strong> dieApplikation. Hierbei lässt sich feststellen, dass Fluten in Netzen mit hoher Senkendichteeine höhere Erfolgsquote verspricht. Spannbaum-Routing hingegen eignet sich bei geringererDichte <strong>de</strong>r Senken: Es bietet Erfolgsquoten von 70 bis 80 Prozent und erreicht einehöhere Energieeffizienz. Allerdings ergeben sich bisher ungelöste Probleme beim Einsatzin dichten Sensornetzen: Fluten erzeugt viele Paketkollisionen; <strong>de</strong>m Spannbaum-Routingstehen nur kleine Bäume zur Verfügung. Bei<strong>de</strong> Verfahren erzielen somit nur niedrige Erfolgsquoten.Aus diesen Erkenntnissen ergeben sich interessante Forschungsrichtungen:Die Entwicklung neuer Nachbarschaftsprotokolle, die auch in Sensornetzen hoher Dichtezuverlässig die Nachbarn eines Knoten i<strong>de</strong>ntifizieren, verspricht eine erhebliche Verbesserung<strong>de</strong>r Erfolgsquote beim Spannbaum-Routing. Ein weitere, vielversprechen<strong>de</strong> Richtungwäre die Entwicklung eines adaptiven Verfahrens auf Grundlage <strong>de</strong>s Spannbaum-Routingszur Steigerung <strong>de</strong>r Effizienz und Erfolgsquote.


Inhaltsverzeichnis1 Einleitung 12 Problemstellung 32.1 Die Applikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.1 Anfor<strong>de</strong>rungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.2 Messdaten und Ereignisse . . . . . . . . . . . . . . . . . . . . . 52.1.3 Partitionierungen . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Einsammeln <strong>de</strong>r Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.1 Funkverkehr in Sensornetzen . . . . . . . . . . . . . . . . . . . . 72.2.2 Datenaggregation . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.3 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Grundlegen<strong>de</strong> und verwandte Arbeiten 133.1 Allgemeine Anwendungen drahtloser Sensornetze . . . . . . . . . . . . . 133.2 Kommunikation in drahtlosen Sensornetzen . . . . . . . . . . . . . . . . 143.3 Datenaggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.1 Intelligentes Routing . . . . . . . . . . . . . . . . . . . . . . . . 163.3.2 Programmierabstraktionen <strong>für</strong> Nachbarschaften . . . . . . . . . . 174 Protokoll-Design 214.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.1.1 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . 214.1.2 Pseudoco<strong>de</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Fluten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.3 Spannbaum-Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3.1 Nachbarschaften und Link-Qualitäten . . . . . . . . . . . . . . . 244.3.2 Initialisierungsphase . . . . . . . . . . . . . . . . . . . . . . . . 264.3.3 Applikationsphase . . . . . . . . . . . . . . . . . . . . . . . . . 304.3.4 Datenaggregation . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Implementierung 355.1 Schnittstellen und Module . . . . . . . . . . . . . . . . . . . . . . . . . 355.1.1 Warteschlange und Multiplexer . . . . . . . . . . . . . . . . . . 365.1.2 Knotenpositionen . . . . . . . . . . . . . . . . . . . . . . . . . . 385.1.3 Historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.1.4 Nachbarschaft und Link-Qualitäten . . . . . . . . . . . . . . . . 385.1.5 Spannbaum-Aufbau . . . . . . . . . . . . . . . . . . . . . . . . 39ix


INHALTSVERZEICHNIS5.1.6 Einsammeln <strong>de</strong>r Daten . . . . . . . . . . . . . . . . . . . . . . . 405.1.7 Steuerung <strong>de</strong>r Applikationen . . . . . . . . . . . . . . . . . . . . 425.2 Vergleich <strong>de</strong>r Applikationen . . . . . . . . . . . . . . . . . . . . . . . . 426 Auswertung 456.1 Simulationsablauf und -parameter . . . . . . . . . . . . . . . . . . . . . 456.1.1 Wertebereiche <strong>de</strong>r Parameter . . . . . . . . . . . . . . . . . . . . 456.1.2 Konfiguration <strong>de</strong>r Module . . . . . . . . . . . . . . . . . . . . . 466.1.3 Simulationsablauf . . . . . . . . . . . . . . . . . . . . . . . . . 476.2 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.2.1 Erfolgsquote . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.2.2 Spannbaumgrößen . . . . . . . . . . . . . . . . . . . . . . . . . 506.2.3 Datenverkehr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.2.4 Fazit und Konsequenzen . . . . . . . . . . . . . . . . . . . . . . 526.3 Anmerkungen und Einschränkungen . . . . . . . . . . . . . . . . . . . . 537 Zusammenfassung 59Literaturverzeichnis 63A Verwen<strong>de</strong>te Werkzeuge 67A.1 nesC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68A.2 TinyOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69A.3 TOSSIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72A.4 TinyViz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73A.5 Empirisches Funkmo<strong>de</strong>ll . . . . . . . . . . . . . . . . . . . . . . . . . . 74x


Liste verwen<strong>de</strong>ter ZeichenKkSN kDie Menge <strong>de</strong>r Sensorknoten, die zu einem Sensornetz gehörenEin einzelner Sensorknoten aus einem Sensornetz: k ∈ KDie Menge <strong>de</strong>r Senken eines Sensornetzes: S ⊆ K1-Hop Nachbarschaft <strong>de</strong>s Knoten k; k kann mit allen seinen Nachbarn˜k ∈ N k direkt kommunizierenQ k←˜kQualität <strong>de</strong>s Links von einem Knoten ˜k zum Knoten k. Wertebereich [0, 1]BτHEE LE RposdatenPχmit <strong>de</strong>m Maximum 1Menge <strong>de</strong>r Wurzeln verschie<strong>de</strong>ner Spannbäume, zu <strong>de</strong>nen ein Knoten gehörtEine <strong>für</strong> alle Knoten gleiche, diskrete Einteilung <strong>de</strong>r Zeit (Epoche)Die Menge <strong>de</strong>rjenigen Knoten, von <strong>de</strong>nen bereits Pakete in einer Epocheempfangen bzw. weitergeleitet wur<strong>de</strong>n (Historie)Die Menge aller Ereignisse, die von <strong>de</strong>n Knoten eines Sensornetzes beobachtetwer<strong>de</strong>nLinksseitige Ereignisse: Eine Teilmenge E L ⊆ E, die bei <strong>de</strong>r Formulierungvon Ereignismustern verwen<strong>de</strong>t wirdRechtsseitige Ereignisse: Eine Teilmenge E R ⊆ E, die bei <strong>de</strong>r Formulierungvon Ereignismustern verwen<strong>de</strong>t wirdPosition eines Sensorknotens k, z.B. seine x, y-KoordinatenAbkürzung <strong>für</strong> die auf einem Knoten über mehrere Epochen hinweg zusammengefasstenInformationen bzgl. <strong>de</strong>s Auftretens von EreignissenEin Puffer zum Zusammenfassen mehrerer Funkpakete, die als ein einzelnesMeta-Paket verschickt wer<strong>de</strong>nTimer: Löst nach Ablauf eines zugewiesenen Zeitintervalls z.B. ein Ereignisaus (∅, wenn inaktiv)xi


INHALTSVERZEICHNISxii


Kapitel 1EinleitungDrahtlose Sensornetze [RM03] haben in <strong>de</strong>r näheren Vergangenheit große Aufmerksamkeitund einen gesteigerten Stellenwert bei <strong>de</strong>r Datenerhebung und -gewinnung in zahlreichenSzenarien gewonnen. Hierbei han<strong>de</strong>lt es sich um hochintegrierte, batteriebetriebeneKleinstrechner – sog. Sensorknoten o<strong>de</strong>r Knoten –, die im Wesentlichen mit verschie<strong>de</strong>nenSensoren – hierunter fallen z.B. Temperatur-, Licht- o<strong>de</strong>r Feuchtigkeitssensoren – un<strong>de</strong>inem Funkmodul ausgestattet sind. Technischer Fortschritt und wachsen<strong>de</strong>s ForschungssowieIndustrieinteresse haben die Produktion solcher Geräte ansteigen lassen und dadurchverbilligt. Aufgrund <strong>de</strong>ssen wer<strong>de</strong>n neue Anwendungsgebiete erschlossen und Szenarienmit einer Vielzahl von Knoten finanzier- und realisierbar.Es han<strong>de</strong>lt sich noch immer um ein recht junges Gebiet, in <strong>de</strong>m viele Aspekte nur wenigo<strong>de</strong>r gar nicht erforscht sind. Mit je<strong>de</strong>r neuen Anwendung wer<strong>de</strong>n neue Erkenntnisse gewonnen,wobei diese selbstverständlich auch neue Fragestellungen aufwerfen. Eines dieserneueren Gebiete stellt die Motivation <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit dar. So lassen sich Sensornetzebeispielsweise hervorragend zur Beobachtung von Umwelteinflüssen und an<strong>de</strong>renphysikalischen Ereignissen einsetzen. Dabei ist es oft sehr aufwändig und umständlich,die Flut an gewonnenen Daten aus <strong>de</strong>m Netz herauszutransportieren und dann offline zuanalysieren. In vielen Fällen bietet es sich daher an, die Berechnung bzw. Verarbeitung<strong>de</strong>r Daten innerhalb <strong>de</strong>s Netzes durchzuführen. Dies ist insbeson<strong>de</strong>re dann <strong>de</strong>r Fall, wennein Knoten hierzu nur Daten aus einer lokalen Umgebung verwen<strong>de</strong>t. So wird einerseits<strong>de</strong>r Aufwand <strong>de</strong>s Datenversands reduziert und an<strong>de</strong>rerseits ermöglicht, die Resultate dieserBerechnungen unmittelbar im Netz zu verwen<strong>de</strong>n. Hierbei kann es sich zum Beispiel umdas Ableiten statistischer Aussagen und Mo<strong>de</strong>lle han<strong>de</strong>ln. Ein solcher Ansatz wird <strong>de</strong>rzeitan <strong>de</strong>r ETH Zürich verfolgt und in [Röm06a] dokumentiert.Im Rahmen einer solchen Anwendung ist es erfor<strong>de</strong>rlich, die auf <strong>de</strong>n Knoten gewonnenenDaten an spezielle Knoten weiterzuleiten, die dann die Berechnung <strong>de</strong>r statistischenMo<strong>de</strong>lle übernehmen. Hierbei wer<strong>de</strong>n die Daten in <strong>de</strong>r Regel nicht direkt an <strong>de</strong>n Emp-1


1 EINLEITUNGfänger versandt, son<strong>de</strong>rn gelangen über mehrere Hops hinweg dorthin. Begrün<strong>de</strong>t ist dieseinerseits in <strong>de</strong>r beschränkten Funkreichweite von Sensorknoten und an<strong>de</strong>rerseits im Energieverbrauch,<strong>de</strong>r mit <strong>de</strong>r Erhöhung <strong>de</strong>r Reichweite ansteigt. Der Versand in Form vonWeiterleitung über mehrere Knoten hinweg erfor<strong>de</strong>rt auf <strong>de</strong>r einen Seite <strong>de</strong>n Einsatz vonRouting-Algorithmen und bringt damit eine erhöhte Komplexität mit sich. Auf <strong>de</strong>r an<strong>de</strong>renSeite lässt sich durch geeignete Algorithmen und Datenaggregation Energie sparen,in<strong>de</strong>m die Anzahl tatsächlich verschickter Datenpakete im Vergleich zu einfachem Routing,das diese Aspekte ignoriert, verringert wird. Genau dies ist <strong>de</strong>r Ansatzpunkt <strong>de</strong>r vorliegen<strong>de</strong>nArbeit. Die Applikation in [Röm06a] bietet ausgezeichnete Möglichkeiten zurDatenaggregation, weswegen ein Routing-Verfahren eingesetzt wer<strong>de</strong>n sollte, das diesenUmstand ausnutzt und damit ein ressourcenschonen<strong>de</strong>s Einsammeln <strong>de</strong>r Daten ermöglicht.Es existieren bereits viele Algorithmen zum Routing – auch solche, die Datenaggregationunterstützen. Diese sind jedoch auf spezifische Problemstellungen restriktiert o<strong>de</strong>r berücksichtigendie durch die vorliegen<strong>de</strong> Anwendung gestellten Anfor<strong>de</strong>rungen nicht o<strong>de</strong>r nichtausreichend. Daher ist eine weitere, grundlegen<strong>de</strong> Untersuchung von Routing-Verfahrenim Kontext <strong>de</strong>r betrachteten Anwendung erfor<strong>de</strong>rlich. Dabei sollen verschie<strong>de</strong>ne Algorithmenimplementiert, getestet und ihre Leistungsfähigkeit unter <strong>de</strong>n speziellen Bedingungenund Anfor<strong>de</strong>rungen <strong>de</strong>r Anwendung bewertet und verglichen wer<strong>de</strong>n.Bei <strong>de</strong>r in dieser Arbeit angestrebten Analyse von Routing-Algorithmen sollen zwei vomPrinzip her gegensätzliche Ansätze implementiert, auf die Bedürfnisse <strong>de</strong>r Rahmenanwendungangepasst und schließlich verglichen wer<strong>de</strong>n. Bei <strong>de</strong>n Vergleichskriterien han<strong>de</strong>ltes sich einerseits um <strong>de</strong>n durch die Algorithmen produzierten Datenverkehr. An<strong>de</strong>rerseitsstellt die Anzahl <strong>de</strong>r erhaltenen Daten an <strong>de</strong>n Auswertungsknoten – <strong>de</strong>n sog. Senken –ein wesentliches Indiz zur Beurteilung <strong>de</strong>r Leistungsfähigkeit <strong>de</strong>r betrachteten Verfahrendar. Bei diesen han<strong>de</strong>lt es sich um das vergleichsweise naive Fluten einerseits und dasSpannbaum-Routing an<strong>de</strong>rerseits. Vor <strong>de</strong>r Implementierung dieser Verfahren sollen weitere,aktuelle Ansätze einbezogen und diskutiert wer<strong>de</strong>n. Als Resultat <strong>de</strong>r Arbeit lässt sicheine Aussage darüber erwarten, welches <strong>de</strong>r prinzipiell gegensätzlichen Verfahren unterwelchen Umstän<strong>de</strong>n die beste Performance bietet und wie Optimierungen und Anpassungenaussehen können, um die Leistungsfähigkeit zu steigern.Der Rest <strong>de</strong>r Arbeit ist wie folgt aufgebaut: Kapitel 2 beschreibt die angesprochene Anwendungund das in dieser Arbeit behan<strong>de</strong>lte Einsammeln <strong>de</strong>r Daten in Form speziellerRouting-Mechanismen. Allgemeine und hierzu verwandte Arbeiten wer<strong>de</strong>n in Kapitel 3vorgestellt. Kapitel 4 liefert das Design <strong>de</strong>r Algorithmen zum Einsammeln <strong>de</strong>r Daten, Kapitel5 <strong>de</strong>ren konkrete Implementierung. Die Analyse sowie Simulationsergebnisse stellen<strong>de</strong>n Inhalt von Kapitel 6 dar. Kapitel 7 liefert abschließend eine Zusammenfassung.2


Kapitel 2ProblemstellungIn diesem Kapitel sollen zwei Aspekte fokussiert wer<strong>de</strong>n: Zum einen wird die in [Röm06a]ausführlich dokumentierte Applikation vorgestellt und zum an<strong>de</strong>ren <strong>de</strong>r Kern <strong>de</strong>r vorliegen<strong>de</strong>nArbeit hiervon abgeleitet: Das Einsammeln <strong>de</strong>r Daten von Knoten durch speziellzur Verarbeitung vorgesehene Knoten.2.1 Die ApplikationDie Rahmenanwendung, die <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit als Motivation dient, befasst sich mit<strong>de</strong>m „Generieren häufig auftreten<strong>de</strong>r verteilter räumlicher Ereignismuster in drahtlosenSensornetzen“ – o<strong>de</strong>r im englischen Originaltitel: Distributed Mining of Spatio-TemporalEvent Patterns in Wireless Sensor Networks. Hiermit stehen gleich verschie<strong>de</strong>ne Aspekteim Vor<strong>de</strong>rgrund, die im Anschluss an ein Beispiel zunächst kurz erläutert wer<strong>de</strong>n sollen. Abbildung 2.1: Brutstätte in <strong>de</strong>r Höhle (schraffiert) und Umgebung. Am Eingang (unterbrochenerUmrandungsteil) befin<strong>de</strong>t sich ein Sensor (dunkel) zur Beobachtung <strong>de</strong>s Ereignisses„Vogel verlässt Nest“, die an<strong>de</strong>ren Sensoren (hell) beobachten die Ereignisse„Erschütterung liegt vor“.3


2.1 DIE APPLIKATIONerfassung, -sammlung und -verarbeitung besteht, innerhalb <strong>de</strong>s Netzes ausgeführt. Damitstehen <strong>de</strong>m Netz diese Resultate unmittelbar zur Verfügung – und zwar bereits im laufen<strong>de</strong>nBetrieb. Hierdurch wird z.B. eine direkte Reaktion auf Ereignisse im Netz mittelssogenannter Aktuatoren (wie in [CMP06] beschrieben) ermöglicht.Damit eine Senke überhaupt die Daten an<strong>de</strong>rer Knoten zur Analyse und Berechnung verwen<strong>de</strong>nkann, muss sie diese Daten einsammeln. In einem großen Sensornetz mit vielenSenken sind die einzelnen Senken in <strong>de</strong>r Regel nur an Messdaten aus einem kleinen Umkreisinteressiert. Nur aus dieser Teilmenge <strong>de</strong>s Datengesamtvolumens <strong>de</strong>s Netzes sollenEreignismuster und Zusammenhänge abgeleitet wer<strong>de</strong>n. Im eingangs verwen<strong>de</strong>ten Beispielsollte eine am Eingang <strong>de</strong>r Höhle positionierte Senke nur Daten von Knoten innerhalb einervorher (manuell) festgelegten Entfernung einsammeln und zur Verarbeitung verwen<strong>de</strong>n, daErschütterungen in hoher Entfernung sicherlich keinen Einfluss auf das Verhalten <strong>de</strong>s Vogelsin <strong>de</strong>r Höhle haben. Eine lokale Begrenzung ist auch dann notwendig, wenn vieledicht beeinan<strong>de</strong>r liegen<strong>de</strong> Höhlen gleichzeitig überwacht wer<strong>de</strong>n sollen. Die Sensorknoten<strong>de</strong>r einzelnen Überwachungsgebiete wür<strong>de</strong>n dann ein einziges Netz formen, in <strong>de</strong>m dieSenken jedoch nur an <strong>de</strong>n Informationen von Knoten in ihrer lokalen Umgebung Interessehätten. Dabei können einige Knoten mehreren Senken als Datenlieferanten dienen. Durchdie Festlegung eines maximalen Einzugsgebietes wird bestimmt, welche Knoten dies sindbzw. welche Knoten welchen Senken als Datenlieferanten dienen können.2.1.2 Messdaten und EreignisseZur Gewinnung <strong>de</strong>r gewünschten statistischen Aussagen und Mo<strong>de</strong>llierung wer<strong>de</strong>n dieDaten zunächst klassifiziert. Anstatt die absoluten Messwerte <strong>de</strong>r einzelnen Sensoren zubetrachten, wer<strong>de</strong>n einzelne Ereignisse <strong>de</strong>finiert: E = {e 1 , e 2 , . . . , e n }. Dabei han<strong>de</strong>lt essich beispielsweise um das Überschreiten bestimmter Schwellwerte: Eine Erschütterungliegt in obigem Seevogelexperiment z.B. nur dann vor, wenn <strong>de</strong>r entsprechen<strong>de</strong> Sensoreines Knotens einen festgelegten Minimalwert überschreitet. Hieran schließt sich unmittelbardie Fragestellung an, in welchen Abstän<strong>de</strong>n es sinnvoll ist, ein Ereignis auszulösen.So ist man beispielsweise lediglich daran interessiert, ob innerhalb einer gewissen Zeiteinheit,z.B. einer Minute, eine Erschütterung beobachtet wur<strong>de</strong> o<strong>de</strong>r nicht. Dabei ist diejeweilige Diskretisierungseinheit, eine sog. Epoche, so zu wählen, dass <strong>für</strong> die Analyse <strong>de</strong>sbetrachteten Ereignismusters keine Beeinflussung zu erwarten ist – sie ist also abhängigvom jeweiligen Experiment. Eine formale Beschreibung <strong>de</strong>r Ereignisse in einer Epochekann wie folgt beschrieben wer<strong>de</strong>n:5


2 PROBLEMSTELLUNGGegeben sei eine Ereignismenge E = {e 1 , e 2 , . . . , e n } sowie zeitlich diskrete Epochenτ 1 , τ 2 , . . .. Je<strong>de</strong>r Epoche τ i wird ein Vektor v i ∈ {0, 1} |E| zugeordnet mit⎧⎨1 falls das Ereignis evj i j in <strong>de</strong>r Epoche τ i aufgetreten ist=(2.1)⎩0 sonstFür je<strong>de</strong>n Sensorknoten eines zusammenhängen<strong>de</strong>n Netzes wer<strong>de</strong>n die Ereignisse separaterfasst. Dabei soll davon ausgegangen wer<strong>de</strong>n, dass die Menge <strong>de</strong>r Knoten mit Ausnahme<strong>de</strong>r zusätzlichen Fähigkeiten <strong>de</strong>r Senken homogen ist bzgl. <strong>de</strong>r Fähigkeiten un<strong>de</strong>rfassbaren Ereignisse. Ein solcher Vektor v i existiert dann <strong>für</strong> je<strong>de</strong>n Knoten k ∈ K und<strong>für</strong> je<strong>de</strong> Epoche τ i .Die Verwendung <strong>de</strong>r Ereignisse in <strong>de</strong>n Ereignismustern erfolgt als linksseitige undrechtsseitige Ereignisse. Das linksseitige wird hierbei gewöhnlich durch ein „wenn“ eingeleitetund steht im vor<strong>de</strong>ren (linken) Teil <strong>de</strong>r Beziehung, die ein Ereignismuster ausdrückt.Ein Ereignismuster hat <strong>de</strong>mnach <strong>für</strong> gewöhnlich die Gestalt „Wenn L, dann R“. Diese Formulierungerinnert formal an eine mathematische Implikation.2.1.3 PartitionierungenGemäß Aufgabenstellung sammelt eine Senke Daten von an<strong>de</strong>ren Knoten ein, um statistischeAussagen über die zu betrachten<strong>de</strong>n Ereignismuster treffen bzw. die dahinterliegen<strong>de</strong>nmathematischen Berechnungen durchführen zu können. Dazu wird eine MengeE L ⊆ E linksseitiger sowie eine Menge E R ⊆ E rechtsseitiger Ereignisse <strong>de</strong>finiert. UnterVerwendung statistischer Analyseverfahren kann nun die Korrelation zwischen <strong>de</strong>n einzelnenEreignissen in E L und <strong>de</strong>nen in E R berechnet wer<strong>de</strong>n.Beobachtet die Senke also ein bestimmtes Ereignis in einer beliebigen Epoche, verwen<strong>de</strong>tsie die Ereignisvektoren v aus einer festgelegten Umgebung zur Bewertung <strong>de</strong>r zuobservieren<strong>de</strong>n Zusammenhänge. Zur Minimierung <strong>de</strong>s Aufwan<strong>de</strong>s in Form von Rechenzeitund Komplexität wer<strong>de</strong>n hierbei weitere Vereinfachungen angenommen. Die Mengealler Knoten wird – von <strong>de</strong>r Senke aus betrachtet – in verschie<strong>de</strong>ne Partitionen bzgl. ihrerDistanz unterteilt. Ein Beispiel hier<strong>für</strong> ist die Verwendung <strong>de</strong>r bei<strong>de</strong>n Partitionen nah undfern mit <strong>de</strong>n entsprechen<strong>de</strong>n Definitionen nah (0m, 10m], fern (10m, 20m]. Nur dieEreignisvektoren <strong>de</strong>r Knoten mit Distanz zur Senke aus diesen bei<strong>de</strong>n Partitionen wer<strong>de</strong>nzur Berechnung <strong>de</strong>r Korrelationen berücksichtigt. Die Einteilung in diese zwei Partitionenermöglicht es, die Korrelationen in Abhängigkeit <strong>de</strong>r Entfernung bzw. <strong>de</strong>r Distanz-Partitionen zu bestimmen.6


2.2 EINSAMMELN DER DATENBezüglich <strong>de</strong>r Zeit wird analog verfahren. Tritt ein Ereignis an einer Senke auf, verwen<strong>de</strong>tdie Senke nicht nur die aktuellen Ereignisvektoren entfernter Knoten, son<strong>de</strong>rn diejenigen<strong>de</strong>r festgelegten Zeitpartitionen. Dies könnten beispielsweise jetzt, kürzlich und altsein. Eine Zeitpartition umfasst dabei mehrere Epochen. Wie<strong>de</strong>rum wer<strong>de</strong>n hier<strong>für</strong> Intervalle<strong>de</strong>finiert, z.B. jetzt {τ i }, kürzlich {τ i−2 , τ i−1 }, alt {τ i−7 , . . . , τ i−3 }. Der In<strong>de</strong>x ibezeichnet dabei die Epoche, in <strong>de</strong>r das Ereignis von <strong>de</strong>r Senke beobachtet wur<strong>de</strong>.Die dritte Einteilung dieser Art betrifft die Häufigkeit <strong>de</strong>s Auftretens von Ereignissen.Hier heißen die Partitionen z.B. keine und einige und sind trivialerweise <strong>de</strong>finiert als keine{0}, einige {1, . . . , ∞}. Die Zahlen in <strong>de</strong>n Mengen geben hier die absolute Auftrittshäufigkeitan.Der Sinn <strong>de</strong>r Partitionierungen ist es nun, die Ereignismuster im Kontext bestimmterRandbedingungen zu evaluieren. Bei <strong>de</strong>n Randbedingungen han<strong>de</strong>lt es sich um die verschie<strong>de</strong>nenPartitionierungen. Das einfache Muster „Wenn eine Erschütterung vorliegt,verlässt <strong>de</strong>r Vogel die Höhle“ kann somit differenzierter betrachtet wer<strong>de</strong>n. Es könnte z.B.<strong>de</strong>r Einfluss <strong>de</strong>r Entfernung analysiert wer<strong>de</strong>n, in<strong>de</strong>m man das Muster einmal nur unterBerücksichtigung <strong>de</strong>r Distanzpartition nah auswertet und einmal unter <strong>de</strong>r Partition fern.Die hier vorgestellten Partitionierungen sind lediglich beispielhaft und können fast beliebiggewählt wer<strong>de</strong>n, was allerdings in vielerlei Hinsicht zu erhöhter Komplexität führt.So wer<strong>de</strong>n die Rechnungen aufwändiger, die Aussagen feiner aber ggf. auch unübersichtlichero<strong>de</strong>r verlieren gar die statistische Relevanz, wenn durch die feine Granularität nichtgenügend Messdaten pro Partition vorhan<strong>de</strong>n sind.2.2 Einsammeln <strong>de</strong>r DatenNach <strong>de</strong>r Einführung in die zugrun<strong>de</strong> liegen<strong>de</strong> Anwendung und <strong>de</strong>ren Einsatzgebiet folgtnun die hiermit zusammenhängen<strong>de</strong> Darstellung <strong>de</strong>s Themas dieser Arbeit. Während[Röm06a] das Generieren von Ereignismustern beschreibt, beschäftigt sich diese Studienarbeitmit <strong>de</strong>m Einsammeln <strong>de</strong>r Daten durch die Senken. Die genaue Beschreibung <strong>de</strong>runtersuchten Verfahren zur Datensammlung erfolgt in Kapitel 4. An dieser Stelle wer<strong>de</strong>nhingegen allgemeine Beobachtungen und Notwendigkeiten in diesem Zusammenhang beschrieben.2.2.1 Funkverkehr in SensornetzenDamit eine Senke Berechnungen zu vorgegebenen Ereignismustern durchführen kann,muss sie zunächst die auf an<strong>de</strong>ren Knoten gewonnenen Daten per Funk einsammeln. Bei7


2 PROBLEMSTELLUNGdiesen einzusammeln<strong>de</strong>n Daten han<strong>de</strong>lt es sich um die Vektoren aus Gleichung 2.1. Bei<strong>de</strong>r Realisierung von Verfahren zum Einsammeln sind jedoch die im Folgen<strong>de</strong>n genanntenEigenschaften zu beachten.Die Knoten eines Sensornetzes unterliegen begrenzten Ressourcen. Hierbei han<strong>de</strong>lt essich in erster Linie um die limitierte Energie, die von Batterien zur Verfügung gestellt wird.Um eine hohe Laufzeit <strong>de</strong>r einzelnen Knoten zu gewährleisten, sollte so wenig Funkverkehrwie nötig stattfin<strong>de</strong>n, da das Funkmodul <strong>de</strong>n wohl größten Verbraucher eines Sensorknotensdarstellt. Daher empfiehlt es sich überdies, die Funkstrecken so kurz wie möglichzu wählen, weil längere Funkstrecken eine höhere Sen<strong>de</strong>leistung erfor<strong>de</strong>rn.Ein weiteres Problem in Sensornetzen stellen Paketkollisionen dar, die durch das Empfangenüberlagerter Pakete von verschie<strong>de</strong>nen Sen<strong>de</strong>rn beim Empfänger auftreten. ZurUmgehung dieser Problematik sollte erstens vermie<strong>de</strong>n wer<strong>de</strong>n, dass Knoten, die sich imEinzugsbereich eines gemeinsamen Empfängers befin<strong>de</strong>n, gleichzeitig sen<strong>de</strong>n. Zweitensbietet es sich an, die Funkreichweiten <strong>de</strong>r Knoten zu begrenzen.Die Beschränkung <strong>de</strong>r Funkreichweite verspricht also, die o.g. Probleme zu min<strong>de</strong>rn.Hierdurch ergeben sich jedoch neue Unwägbarkeiten, die gelöst wer<strong>de</strong>n müssen. Damiteine Senke auch Daten von Knoten einsammeln kann, die außerhalb ihrer Funkreichweiteliegen, müssen die Daten über zwischen <strong>de</strong>r Senke und diesen Knoten liegen<strong>de</strong> Knotenweitergeleitet wer<strong>de</strong>n. Dieses Verfahren wird im Allgemeinen als Multi-Hop Routing bezeichnet.Je<strong>de</strong>r Knoten muss damit über die Fähigkeit verfügen, Daten an<strong>de</strong>ren Knoten ingeeigneter Weise in Richtung einer o<strong>de</strong>r mehrerer Senken weiterzuleiten. Zwar existierenbereits zahlreiche Routing-Verfahren <strong>für</strong> Multi-Hop Sensornetze, doch bieten sich diesenicht unmittelbar zum Einsatz in <strong>de</strong>r vorliegen<strong>de</strong>n Anwendung an. Der wesentliche Grundhier<strong>für</strong> sind die im nächsten Unterabschnitt behan<strong>de</strong>lten Aggregationsmöglichkeiten bzgl.<strong>de</strong>r versandten Daten. Ein Vergleich mit aktuellen, ähnlichen Verfahren fin<strong>de</strong>t sich in Kapitel3.Neben <strong>de</strong>r Notwendigkeit <strong>de</strong>s Einsatzes von Multi-Hop Routing muss sich das <strong>für</strong> dasEinsammeln <strong>de</strong>r Daten genutzte Verfahren mit <strong>de</strong>r Problematik <strong>de</strong>r Paketverluste befassen.Neben <strong>de</strong>n Kollisionen können Pakete bei <strong>de</strong>r Übertragung mittels Funk korrumpiert wer<strong>de</strong>n,so dass <strong>de</strong>r Empfänger diese nicht verwerten kann. Diesem Problem kann mit zweiAnsätzen begegnet wer<strong>de</strong>n. Zum einen können kaputte Pakete einfach verworfen wer<strong>de</strong>n,zum an<strong>de</strong>ren können Sie erneut vom Sen<strong>de</strong>r angefor<strong>de</strong>rt wer<strong>de</strong>n. Der zweite Ansatz führtzu erhöhtem Funkverkehr, was einerseits die Batterien <strong>de</strong>r Knoten stärker belastet und an<strong>de</strong>rerseitsdie Wahrscheinlichkeit von Kollisionen erhöhen kann, wenn viele Knoten mitüberlappen<strong>de</strong>m Funkbereich ihre Daten mehrfach übertragen (müssen). Daher ist abzuwägen,wie oft und in welcher Weise erneute Übertragungen wünschenswert und nutzbrin-8


2.2 EINSAMMELN DER DATENgend sind. Auf <strong>de</strong>r an<strong>de</strong>ren Seite kann es sich nämlich als problematisch erweisen, dieDaten korrumpierter Pakete einfach zu verwerfen, wenn hierdurch die von einer Senkeerhaltene gegenüber <strong>de</strong>r möglichen Datenmenge klein wird.2.2.2 DatenaggregationVerschickte Datenpakete besitzen neben <strong>de</strong>n eigentlichen Nutzdaten <strong>de</strong>r Applikation zusätzlicheInformationen. Hierbei han<strong>de</strong>lt es sich zum Beispiel um Adressierungsinformationenund Prüfsummen zur Fehlererkennung und -korrektur. Die tatsächliche Menge anübertragenen Daten ist damit größer als die zu sen<strong>de</strong>n<strong>de</strong>n Nutzdaten. Insbeson<strong>de</strong>re in Sensornetzenfällt dies ins Gewicht, da Datenpakete üblicherweise nur wenige Bytes groß sind.Folglich kann durch Datenaggregation das Funkdaten-Gesamtvolumen verringert wer<strong>de</strong>n,weil diese zusätzlichen Informationen dann nur einmal <strong>für</strong> mehrere Datensätze mitgeschicktwer<strong>de</strong>n müssen. In <strong>de</strong>r vorliegen<strong>de</strong>n Applikation bietet sich eine zweischichtigeAggregation an.d 2d 2d 3k 1k 2k 3k 2k 3d 2k 3d 2,3k 2d 3d 2k 1k 1 Abbildung 2.2: Direkte Kommunikation (links), einfaches Multi-Hop Routing (Mitte)und Multi-Hop Routing mit Aggregation (rechts). Die Kanten zeigen <strong>de</strong>n Versand von(ggf. aggregierten) Daten d an.Der erste Teil <strong>de</strong>r Aggregation entsteht aus <strong>de</strong>r Tatsache, dass eine Senke nicht an punktuellenDaten interessiert ist, son<strong>de</strong>rn an Informationen über mehrere Epochen hinweg. EinKnoten kann damit die Ereignisvektoren mehrerer Epochen in einem einzigen Datenpaketzur Senke schicken. Die einzelnen Vektoren verschie<strong>de</strong>ner Epochen dürfen dabei jedochnicht zusammengefasst wer<strong>de</strong>n, weil die Epochen bei <strong>de</strong>r Partitionierung <strong>de</strong>r zeitlichenVerläufe von Interesse sind.Der zweite Teil <strong>de</strong>r Aggregation basiert auf <strong>de</strong>m eingesetzten Multi-Hop Routing. Leitetein Knoten Daten von einem an<strong>de</strong>ren Knoten in Richtung <strong>de</strong>rselben Senke weiter, musser seine Daten nicht separat verschicken, son<strong>de</strong>rn kann auf das Eintreffen <strong>de</strong>r weiterzuleiten<strong>de</strong>nDaten warten. Diese fasst er dann geeignet mit <strong>de</strong>n eigenen Daten zusammenund verschickt das Aggregat (siehe Abb. 2.2). Im einfachsten Fall wer<strong>de</strong>n die empfange-9


2 PROBLEMSTELLUNGnen und eigenen Daten als ein einziges Datenpaket weitergeleitet. Bei <strong>de</strong>r Verwendungeines Spannbaumes kann jedoch auch eine kompaktere Aggregations erreicht wer<strong>de</strong>n: EinKnoten addiert die empfangenen und lokalen Ereignisvektoren (pro Epoche und Distanz-Partition) und schickt die Zähler an seinen Vater im Baum weiter.2.2.3 AufgabenstellungDie in diesem Kapitel zusammengetragenen Informationen und Rahmenbedingungen ergebensich nun zur konkreten Aufgabenstellung, verschie<strong>de</strong>ne Ansätze zum Einsammeln<strong>de</strong>r Daten auszuwählen, zu implementieren und auf ihre Eignung und Leistungsfähigkeithin zu evaluieren. Die Implementierung glie<strong>de</strong>rt sich dabei in <strong>de</strong>n allgemeinen, algorithmischenLösungsansatz bzgl. <strong>de</strong>r einzelnen Verfahren und die konkrete Programmierung<strong>für</strong> ein Sensornetz mittels einer geeigneten Programmiersprache. Im Rahmen <strong>de</strong>r Evaluierungwer<strong>de</strong>n die Verfahren anhand von Simulationsergebnissen verglichen sowie Stärkenund Schwächen herausgearbeitet und Verbesserungsi<strong>de</strong>en entwickelt. Insbeson<strong>de</strong>re ergebensich die folgen<strong>de</strong>n Aufgabenstellungen, die einer eingehen<strong>de</strong>n Untersuchung bedürfen:Es sollten verschie<strong>de</strong>ne grundlegen<strong>de</strong> Verfahren betrachtet wer<strong>de</strong>n, die ein Einsammeln<strong>de</strong>r Daten ermöglichen. Hierzu gehören insbeson<strong>de</strong>re das vergleichsweise naive Fluten sowiedas in <strong>de</strong>r Literatur als energieeffizient beschriebene Routing mittels Spannbäumen.Während das Fluten auf <strong>de</strong>n ersten Blick wenige Aggregationsmöglichkeiten anzubietenscheint und hierdurch einen höheren Funkverkehr nach sich ziehen könnte, bietet es an<strong>de</strong>rerseitseine gewisse Redundanz, weil Pakete über verschie<strong>de</strong>ne Pfa<strong>de</strong> zu einer Senkegelangen können. Das Routing mittels Spannbaum hingegen verspricht gute Aggregationsmöglichkeitenund geringen Funkverkehr beim Einsammeln <strong>de</strong>r Daten, erfor<strong>de</strong>rt jedochzusätzlichen Aufwand zum Generieren <strong>de</strong>r Bäume. Eine Analyse auf diesem Gebieterscheint hiermit sinnvoll.In diesem Kontext spielen auch die maximalen Distanzen eine Rolle, aus <strong>de</strong>r die Senkenihre Daten beziehen dürfen sowie die hier<strong>für</strong> zur Verfügung stehen<strong>de</strong> maximale Hop-Anzahl. Ein weiteres Kriterium wird durch die Dichte <strong>de</strong>s Netzes und die Anzahl <strong>de</strong>r Senken<strong>de</strong>finiert. Zu vergleichen sind ebenfalls <strong>de</strong>r Aufwand bei <strong>de</strong>r Umsetzung <strong>de</strong>r Verfahrenhinsichtlich <strong>de</strong>r Programmierung sowie die Speicherkomplexität. Schließlich besitzenSensorknoten vergleichsweise kleine Hauptspeicher, die sich <strong>de</strong>rzeit im Bereich wenigerKilobyte bewegen.Ein weiterer interessanter Aspekt ist die Frage, ob die Daten aktiv von <strong>de</strong>n Senken eingesammelto<strong>de</strong>r periodisch von <strong>de</strong>n Knoten in Richtung <strong>de</strong>r Senken geschickt wer<strong>de</strong>n sollen.Schließlich muss eine Senke nur dann Informationen einsammeln, wenn tatsächlich10


2.2 EINSAMMELN DER DATENein rechtsseitiges Ereignis beobachtet wur<strong>de</strong>. Passiert dies nur selten, lässt sich durch dasgezielte Abfragen von Informationen unnötiger Funkverkehr von vornherein unterbin<strong>de</strong>n.Auf <strong>de</strong>r an<strong>de</strong>ren Seite verursacht die aktive Anfrage selbst Datenverkehr, so dass durch entsprechen<strong>de</strong>Versuche eine Erkenntnis abgeleitet wer<strong>de</strong>n kann, wann sich welcher Ansatzlohnt.Neben <strong>de</strong>r reinen Analyse sollen die entwickelten Verfahren letztlich auch in <strong>de</strong>r Praxiseinsetzbar sein. Neben schlankem und ressourcensparen<strong>de</strong>m Design bzgl. <strong>de</strong>r Länge<strong>de</strong>s Co<strong>de</strong>s, <strong>de</strong>s Funktionsumfanges und <strong>de</strong>r Wartbarkeit bedingt dies auch eine gewisseModularität, um einzelne Komponenten einfach anpassen zu können. Daher ist es wünschenswert,<strong>für</strong> die Implementierung zu Simulationszwecken eine Plattform zu wählen,die es erlaubt, <strong>de</strong>nselben o<strong>de</strong>r leicht modifizierten Co<strong>de</strong> auch in realen Sensornetzen zumEinsatz zu bringen.11


2 PROBLEMSTELLUNG12


Kapitel 3Grundlegen<strong>de</strong> und verwandteArbeitenDas Einsammeln und Verteilen von Daten ist ein zentraler Aspekt in drahtlosen Sensornetzen.Seit einigen Jahren beschäftigt sich die Forschung mit diesem relativ jungen Gebiet, sodass bereits einige Experimente und Erfahrungen vorliegen. Als Einstieg in diese Thematikwer<strong>de</strong>n in diesem Kapitel zunächst einfache Anwendungen drahtloser Sensornetze zurgenerellen Orientierung über <strong>de</strong>ren Einsatzgebiete vorgestellt. Hierauf folgt ein Überblickzu Arbeiten bzgl. <strong>de</strong>r Unwägbarkeiten beim Übertragen von Daten per Funk. Schließlichwer<strong>de</strong>n einige spezielle Verfahren eingehend betrachtet, die eine hohe Relevanz und thematischeNähe zur konkreten Aufgabenstellung <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit besitzen.3.1 Allgemeine Anwendungen drahtloser SensornetzeEine Vielzahl von Experimenten und Forschungen in drahtlosen Sensornetzen widmet sich<strong>de</strong>m Messen von Umwelteinflüssen o<strong>de</strong>r Beobachten von Naturphänomenen. Die Eignungdrahtloser Sensornetze hierzu liegt begrün<strong>de</strong>t in <strong>de</strong>r geringen Beeinflussung <strong>de</strong>r Messungendurch ihre kompakte Größe und <strong>de</strong>n Umstand, dass die Knoten – einmal platziert –unbeaufsichtigt betrieben wer<strong>de</strong>n können und prinzipiell wartungsfrei sind. Um ein Experimentmit drahtlosen Sensornetzen durchzuführen, wer<strong>de</strong>n mit passen<strong>de</strong>n Sensoren ausgestatteteKnoten an (<strong>für</strong> das jeweilige Experiment) interessanten Lokalitäten positioniert.Die einzelnen Knoten dienen dann primär <strong>de</strong>r Gewinnung von Messdaten, sekundär leitensie Daten an<strong>de</strong>rer Knoten weiter.Um bereits während <strong>de</strong>s Experiments – und ohne physikalischen Zugriff auf je<strong>de</strong>n einzelnenKnoten – mit <strong>de</strong>n erhobenen Daten arbeiten zu können, müssen diese per Funkausgelesen wer<strong>de</strong>n. Dies geschieht entwe<strong>de</strong>r, in<strong>de</strong>m die einzelnen Knoten ihre Daten z.B.periodisch an eine zentrale Stelle schicken, o<strong>de</strong>r alternativ durch das gezielte Abfragen13


3 GRUNDLEGENDE UND VERWANDTE ARBEITEN<strong>de</strong>r Informationen von an<strong>de</strong>ren Knoten. Gemäß Kapitel 2 han<strong>de</strong>lt es sich bei <strong>de</strong>n abfragen<strong>de</strong>nKnoten um die sog. Senken. Je nach Experiment verarbeitet eine Senke die Datenautonom o<strong>de</strong>r leitet diese, z.B. per serieller Schnittstelle, an einen PC weiter. Die in diesemAbschnitt angesprochenen Experimente nutzen die Senken lediglich zum Übertragen<strong>de</strong>r Daten an einen PC, <strong>de</strong>r diese dann speichert o<strong>de</strong>r bereits während <strong>de</strong>s Experimentsverarbeitet.Beispiele <strong>für</strong> Anwendungen drahtloser Sensornetze gibt es viele. Eine kleine Auswahlhieraus stellen die folgen<strong>de</strong>n Experimente dar: In [MPS + 02] wer<strong>de</strong>n Sensorknoten eingesetzt,um das Brutverhalten von Vögeln zu observieren. Die in [HHSH06] vorgestellteAnwendung realisiert die Analyse und Beobachtung <strong>de</strong>r Wetterverhältnisse zur Erkennungund Bekämpfung von Wald- und Flächenbrän<strong>de</strong>n.Diese Anwendungen widmen sich ausschließlich <strong>de</strong>r Beobachtung von Naturereignissenbzw. <strong>de</strong>m Verhalten von Tieren. Die Daten wer<strong>de</strong>n erhoben und an Senken weitergeleitet.Die Auswertung fin<strong>de</strong>t weitgehend manuell am PC statt. Die Zielsetzung unterschei<strong>de</strong>t sichdamit von <strong>de</strong>m in Kapitel 2 vorgestellten Verfahren.3.2 Kommunikation in drahtlosen SensornetzenZum zuverlässigen Einsatz drahtloser Sensornetze ist ein grundlegen<strong>de</strong>s Verständnis ihrerFunktionsweise erfor<strong>de</strong>rlich. Von beson<strong>de</strong>rem Interesse gestaltet sich hierbei die Analyse<strong>de</strong>r Kommunikation per Funk. Im Gegensatz zu drahtgebun<strong>de</strong>nen treten in drahtlosenNetzen u.a. die in Kapitel 2.2.1 genannten Phänomene auf, die beispielsweise in[TWW06, TRV + 05], [WTC03] und [SPMC04] näher untersucht wer<strong>de</strong>n.Ein wesentlicher Aspekt <strong>de</strong>r drahtlosen Kommunikation ist die Funkreichweite, die überdie Sen<strong>de</strong>leistung gesteuert wird. Wie in Kapitel 2 erläutert, bietet sich zur Reduzierung <strong>de</strong>rSen<strong>de</strong>leistung und damit einhergehen<strong>de</strong>n Einschränkung <strong>de</strong>r Funkreichweite das Multi-Hop Routing an, um trotz<strong>de</strong>m über größere Entfernungen hinweg kommunizieren o<strong>de</strong>rDaten versen<strong>de</strong>n zu können.Eine mögliche Implementierung dieser Art von Routing kann über die Verwendung vonSpannbäumen realisiert wer<strong>de</strong>n. Diesen Ansatz verfolgt [TRV + 05]. Zum Aufbau <strong>de</strong>r Bäumestellen alle Knoten zunächst fest, mit welchen an<strong>de</strong>ren Knoten eine Kommunikation inbei<strong>de</strong> Richtungen möglich ist, die auch als bidirektionaler Link bezeichnet wird. Zu diesemZweck kommt hier das in [OTL04] beschriebene Verfahren zum Einsatz, das auchin <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit Verwendung fin<strong>de</strong>t und in Kapitel 4 kurz erläutert wird. DieÜbermittlung <strong>de</strong>r Daten von je<strong>de</strong>m Knoten zur Senke erfolgt periodisch. Dabei leitet einVaterknoten die Daten seiner Söhne einfach <strong>de</strong>n Baum hinauf, bis die Daten schließlich an14


3.3 DATENAGGREGATION<strong>de</strong>r Senke ankommen. Eine Aggregation <strong>de</strong>r Daten zur Einsparung von Funkverkehr fin<strong>de</strong>tnicht statt.Bei <strong>de</strong>r Auswertung in [TWW06, TRV + 05] wer<strong>de</strong>n ähnliche Probleme i<strong>de</strong>ntifiziert,wie sie auch in [WTC03] sowie [SPMC04] beschrieben sind. Durch Paketverluste und -kollisionen treten Störungen im Betrieb <strong>de</strong>s Netzes auf. Stabile, bidirektionale Links sindzeitlichen Schwankungen unterlegen, so dass <strong>de</strong>r Funkverkehr über die durch die Bäumefestgelegten Pfa<strong>de</strong> im Laufe <strong>de</strong>s Experiments fehlschlägt. Es zeigt sich unter an<strong>de</strong>rem,dass die bidirektionalen Links <strong>de</strong>r Knoten zu verschie<strong>de</strong>nen Zeitpunkten <strong>de</strong>s Experimentsunterschiedlich sind.Eine weitere Erkenntnis besteht darin, dass die Qualität einer Funkverbindung zwischenzwei Knoten nicht als einfache Funktion <strong>de</strong>r Entfernung bei<strong>de</strong>r Knoten voneinan<strong>de</strong>r dargestelltwer<strong>de</strong>n kann. So kommt es vor, dass in bestimmten Distanzen <strong>de</strong>r Funkverkehr plötzlichspürbar beeinträchtigt wird. Ferner wur<strong>de</strong> in [TRV + 05] festgestellt, dass die Qualität<strong>de</strong>r Funkverbindung oft nicht symmetrisch ist. Viele Links sind nur unidirektional.Paketkollisionen und -fehler stellen zwei weitere Problem dar, die empfangene Datenunbrauchbar machen. Dabei lässt sich feststellen, dass eine Vergrößerung <strong>de</strong>s Funkverkehrsund <strong>de</strong>r Knotendichte zu einer erhöhten Kollisionswahrscheinlichkeit führen. Diesist nachvollziehbar, da es sich bei <strong>de</strong>n Kollisionen um Überlagerungen von Funksignalenhan<strong>de</strong>lt, die zur Störung beim Empfang führen. Einfache Paketfehler können verschie<strong>de</strong>neUrsachen haben, z.B. schwache Funksignale o<strong>de</strong>r Reflektionen.Je nach Applikation erweist es sich aufgrund dieser Schwierigkeiten bereits als notwendig,sich mit <strong>de</strong>r Zuverlässigkeit <strong>de</strong>s Funkverkehrs zu beschäftigen. So können fehlerhaftePakete durch <strong>de</strong>n Empfänger erneut vom Sen<strong>de</strong>r angefor<strong>de</strong>rt wer<strong>de</strong>n. Durch geeigneteVerfahren kann außer<strong>de</strong>m versucht wer<strong>de</strong>n, zur Kommunikation in Multi-Hop Netzen diejeweils besten Routen auszuwählen. Dies erhöht jedoch die Anwendungskomplexität undggf. auch <strong>de</strong>n Funkverkehr. Dies wie<strong>de</strong>rum wirkt sich negativ auf <strong>de</strong>n Energieverbrauchund die damit verbun<strong>de</strong>ne Lebenszeit <strong>de</strong>r einzelnen Knoten aus. Es bedarf folglich aucheiner Abwägung, wie wichtig <strong>de</strong>r Empfang bestimmter Daten ist o<strong>de</strong>r wie hoch die Ratekorrekt empfangener im Verhältnis zur möglichen Datenmenge sein muss, um das Netzordnungsgemäß arbeiten zu lassen. Diese Punkte spielen auch beim Design <strong>de</strong>r Verfahrenin Kapitel 4 eine wichtige Rolle und wer<strong>de</strong>n in Kapitel 6 bei <strong>de</strong>r Auswertung aufgegriffen.3.3 DatenaggregationIm letzten Abschnitt dieses Kapitels soll nun speziell auf diejenigen Anwendungen eingegangenwer<strong>de</strong>n, die in konkretem Zusammenhang mit <strong>de</strong>m in dieser Arbeit behan<strong>de</strong>lten15


3 GRUNDLEGENDE UND VERWANDTE ARBEITENThema stehen. Hierbei han<strong>de</strong>lt es sich um Verfahren, die eine lokale Datenaggregationumsetzen: Einzelne Knoten teilen innerhalb räumlicher o<strong>de</strong>r logischer Grenzen ihre Datenmit an<strong>de</strong>ren Knoten. Dies kann z.B. durch einfaches Versen<strong>de</strong>n <strong>de</strong>r eigenen Daten anan<strong>de</strong>re Knoten geschehen – entwe<strong>de</strong>r auf Anfrage o<strong>de</strong>r automatisch. Die grundlegen<strong>de</strong>Anwendung ähnelt damit <strong>de</strong>m gewünschten Mechanismus zum Einsammeln von Datenin [Röm06a], trotz<strong>de</strong>m existieren Unterschie<strong>de</strong> o<strong>de</strong>r Unzulänglichkeiten, die eine einfacheAdaption <strong>de</strong>r Verfahren <strong>für</strong> das hier gewünschte Routing verhin<strong>de</strong>rn.3.3.1 Intelligentes RoutingDas in [TGS06] beschriebene Verfahren widmet sich <strong>de</strong>r Optimierung von Sensordaten-Abfragen einzelner Knoten eines Netzes. Hierbei wer<strong>de</strong>n zwei Optimierungen verwen<strong>de</strong>t:Einerseits wer<strong>de</strong>n die Abfragen <strong>de</strong>rart aggregiert, dass die Antworten <strong>de</strong>r Knoten minimiertwer<strong>de</strong>n (hinsichtlich Größe und Anzahl). An<strong>de</strong>rerseits wird das Routing <strong>de</strong>r Daten zu <strong>de</strong>nSenken mittels Spannbäumen so gewählt, dass <strong>de</strong>r Funkverkehr reduziert wird. Die dazuverwen<strong>de</strong>ten Spannbäume wer<strong>de</strong>n durch Fluten <strong>de</strong>s Netzes generiert, wobei je<strong>de</strong>r Knotenseinen Vater so wählt, dass eine minimale Anzahl von Links verwen<strong>de</strong>t wird, um eineAnfrage an eine Teilmenge <strong>de</strong>r Knoten <strong>de</strong>s Netzes zu beantworten.d 8,9d 9k 7 k 8 k 9d 7 d 8 d 9d 7,8,9k 7 k 8 k 9k 4 k 5 k 6d 7 d 8 d 9d 7,8,9k 4 k 5 k 6d 8,9 d 9k 1 k 2 k 3k 1 k 2 k 3 Abbildung 3.1: Multi-Hop Spannbaum-Routing ohne Baum-Optimierung (links) und mitBaum-Optimierung (rechts). Die Kanten zeigen <strong>de</strong>n Versand ggf. aggregierter Datenpaketed an.Ein Beispiel <strong>für</strong> eine <strong>de</strong>rartige Optimierung kann Abbildung 3.1 entnommen wer<strong>de</strong>n.Die Senke k 1 for<strong>de</strong>rt Daten von <strong>de</strong>n Knoten k 7 , k 8 und k 9 an, wobei je<strong>de</strong>r Knoten ausschließlichmit <strong>de</strong>n jeweils nächstliegen<strong>de</strong>n Knoten in horizontaler bzw. vertikaler Richtungkommunizieren kann. Die Pfeile zeigen an, wie die Daten (unter Berücksichtigungmöglicher Aggregationen) verschickt wer<strong>de</strong>n. Das Routing im linken Fall stellt eine mögliche,aber nicht optimale Lösung dar (8 Datenpakete), die Daten zur anfragen<strong>de</strong>n Senke16


3.3 DATENAGGREGATIONzu transportieren. Der rechte Fall hingegen ist im Sinne <strong>de</strong>r Aufgabenstellung aus [TGS06]optimal (4 Datenpakete).Die zweite Art <strong>de</strong>r Optimierung betrifft die Ausführungsreihenfolge <strong>de</strong>r Anfragen, diean dieser Stelle nicht näher erläutert wer<strong>de</strong>n soll, da sie <strong>für</strong> die vorliegen<strong>de</strong> Arbeit nichtrelevant ist. Während <strong>de</strong>r vorgeschlagene Spannbaum-Ansatz zum optimierten Routingdurchaus von Interesse <strong>für</strong> die Lösung <strong>de</strong>s Routing-Problems aus Abschnitt 2.2.2 ist, fin<strong>de</strong>tdie Aggregation <strong>de</strong>r Anfragen hier keinerlei Verwendung, da sie die umliegen<strong>de</strong>n Knotenlediglich informieren, dass eine Senke Daten benötigt. Weitere Informationen beinhaltetdie Anfrage jedoch nicht.3.3.2 Programmierabstraktionen <strong>für</strong> NachbarschaftenEine eigene Klasse zum Datenaustausch in drahtlosen Sensornetzen stellen sog. Programmierabstraktionen<strong>für</strong> Nachbarschaften dar. Unter Nachbarschaften ist in diesem Kontexteine Teilmenge <strong>de</strong>r Knoten eines Netzes zu verstehen, die bestimmte Kriterien erfülleno<strong>de</strong>r gemeinsam haben. Ein einfaches Beispiel <strong>für</strong> ein solches Kriterium ist die maximaleDistanz zu einem festgelegten Punkt o<strong>de</strong>r Knoten.Derart <strong>de</strong>finierte Nachbarschaften wer<strong>de</strong>n verwen<strong>de</strong>t, um Daten o<strong>de</strong>r Zustän<strong>de</strong> zwischen<strong>de</strong>n zugehörigen Knoten auszutauschen bzw. zu teilen. Weil dieses Verhalten in vielen Applikationen<strong>für</strong> drathlose Sensornetze eingesetzt wird, existieren verschie<strong>de</strong>ne Ansätze zurUmsetzung solcher Programmierabstraktionen. Sie sollen die Anwendungsentwicklung indrahtlosen Sensornetzen vereinfachen.Ein Vertreter dieser Klasse ist „Hood“ [WSBC04]. Eine Programmierabstraktion übernimmthier die Bildung <strong>de</strong>r Nachbarschaften und <strong>de</strong>n Austausch <strong>de</strong>r Daten im laufen<strong>de</strong>nBetrieb. Der Entwickler legt nur fest, welche Kriterien <strong>für</strong> eine Nachbarschaft gelten undwelche Variablen geteilt wer<strong>de</strong>n sollen. Zu<strong>de</strong>m bietet „Hood“ verschie<strong>de</strong>ne Schnittstellenan, um <strong>de</strong>n Datenaustausch auch manuell anzustoßen sowie eingehen<strong>de</strong> Daten zu filtern.Eine Beson<strong>de</strong>rheit von „Hood“ ist <strong>de</strong>r Umstand, dass eine Nachbarschaft nicht als Gruppevon Knoten zu verstehen ist, son<strong>de</strong>rn je<strong>de</strong>m Knoten <strong>de</strong>s Netzes an<strong>de</strong>re Knoten als Nachbarnzugeordnet wer<strong>de</strong>n.Der eigentliche Versand <strong>de</strong>r Daten bleibt vor <strong>de</strong>r Applikation verborgen. „Hood“ realisiertdiesen durch einfache Broadcasts und ohne Verwendung von Routing-Mechanismen,d.h. ohne Weiterleitung von Daten über an<strong>de</strong>re Knoten. Die Knoten einer Nachbarschaftmüssen damit innerhalb einer gemeinsamen Funkreichweite sein. Dies jedoch wi<strong>de</strong>rspricht<strong>de</strong>r Problemstellung in Abschnitt 2.2, so dass „Hood“ keine Lösung <strong>für</strong> die dort geschil<strong>de</strong>rteProblematik darstellen kann.17


3 GRUNDLEGENDE UND VERWANDTE ARBEITENEin weiteres Verfahren zum Datenaustausch innerhalb von Nachbarschaften bieten „AbstractRegions“ [WM04]. Die prinzipielle Funktionsweise ähnelt <strong>de</strong>rjenigen von „Hood“,das verwen<strong>de</strong>te Routing ist jedoch nicht auf einen Hop beschränkt. Als Routing-Metho<strong>de</strong>kann zum Beispiel ein Spannbaum zum Einsatz kommen, <strong>de</strong>ssen Größe durch einen maximalenAbstand zur Wurzel begrenzt wird. Das Abstandsmaß wird in diesem Zusammenhangals eine Distanz in Metern o<strong>de</strong>r als maximale Hop-Zahl angegeben – auch eineKombination ist möglich.Trotz<strong>de</strong>m eignet sich das Konzept <strong>de</strong>r „Abstract Regions“ nicht <strong>für</strong> <strong>de</strong>n unmittelbarenEinsatz <strong>de</strong>r Datensammlung wie in Kapitel 2 gefor<strong>de</strong>rt. Die verfügbaren Aggregationsmöglichkeitenkönnen durch die „Abstract Regions“ nicht direkt umgesetzt wer<strong>de</strong>n undbedürften einer grundlegen<strong>de</strong>n Anpassung <strong>de</strong>r Metho<strong>de</strong>, was einen erheblichen Aufwanddarstellt. Außer<strong>de</strong>m besitzen die „Abstract Regions“ einen hohen Grad an Komplexität,weil je<strong>de</strong>r Knoten diverse Nachbarschaften mit verschie<strong>de</strong>nen Kriterien besitzen kann. ImRahmen <strong>de</strong>s nur kleinen Anteils genutzter Funktionalität erweist sich dies damit als wenigeffizient hinsichtlich <strong>de</strong>r resultieren<strong>de</strong>n Programmgröße.„Logical Neighborhoods“ [MP06, CMP06] stellen eine etwas an<strong>de</strong>re Möglichkeit dar,Sensorknoten zu Nachbarschaften zusammenzufassen. Zusätzlich zur Lokalität von Knotenentschei<strong>de</strong>n hier zur Laufzeit verän<strong>de</strong>rliche Kriterien, ob ein Knoten zu einer bestimmtenNachbarschaft gehört o<strong>de</strong>r nicht. Dies wird u.a. durch Schwellwerte bewirkt: Ein Knotengehört zu einer Nachbarschaft, wenn ein bestimmter Sensor Messdaten liefert, die übero<strong>de</strong>r unter einem <strong>de</strong>finierten Schwellwert liegen.Dieses Konzept stellt sich <strong>für</strong> das in Kapitel 2 beschriebene Einsammeln als unbrauchbardar, weil hierdurch in je<strong>de</strong>r Epoche überprüft wer<strong>de</strong>n müsste, welche Knoten zur Nachbarschafteiner Senke gehören. Damit können die Möglichkeiten <strong>de</strong>r (zeitlichen) Aggregationnicht voll ausgeschöpft wer<strong>de</strong>n.Zu <strong>de</strong>n „Logical Neighborhoods“ existiert ein <strong>de</strong>diziertes Routing-Verfahren [CMP07],um <strong>de</strong>n speziellen Ansprüchen dieser Programmierabstraktion gerecht zu wer<strong>de</strong>n. Hierbeiwird insbeson<strong>de</strong>re <strong>de</strong>m Umstand Rechnung getragen, dass Daten im Netz nicht nur aneine zentrale, son<strong>de</strong>rn an viele verschie<strong>de</strong>ne Stellen bzw. Senken transportiert wer<strong>de</strong>n, welchedie Daten schließlich verarbeiten. Durch geschickte Wahl <strong>de</strong>r Routen durch das Netzkönnen damit Pakete gespart wer<strong>de</strong>n. Die Problemstellung ergibt sich als die Optimierungeines linearen Programms (ILP): Grob gesprochen ist die Anzahl <strong>de</strong>r zum Routing ausgewählenKanten in einem zusammenhängen<strong>de</strong>n Netz bzw. Graphen zu minimieren, wobeiein Pfad von je<strong>de</strong>r Senke zu <strong>de</strong>njenigen Knoten existieren muss, von <strong>de</strong>nen sie Daten einsammelnwill. Eine <strong>de</strong>rartige Baumoptimierung mit mehreren Senken ist in Abbildung 3.2dargestellt. Die bei<strong>de</strong>n Senken k 1 und k 4 sammeln Daten vom Knoten k 6 ein. Die Kanten18


3.3 DATENAGGREGATIONstehen <strong>für</strong> das Versen<strong>de</strong>n von (ggf. aggregierten) Daten. Der linke Fall zeigt eine mögliche,aber nicht optimale Lösung (5 Pakete), <strong>de</strong>r rechte eine optimale Lösung (3 Pakete).d 6d 6d 6 d 6k 4 k 5 k 6d 6d 6k 4 k 5 k 6d 6 d 6k 1 k 2 k 3k 1 k 2 k 3 Abbildung 3.2: Multi-Hop Spannbaum-Routing zu zwei Senken ohne Optimierung (links)und mit Optimierung (rechts). Die Kanten zeigen <strong>de</strong>n Versand ggf. aggregierter Datenpaketed an.Weil die Lösung <strong>de</strong>s o.g. ILP globales Wissen über <strong>de</strong>n Graphen bzw. die Links im Sensornetzbenötigt, wird in [CMP07] eine Näherungslösung <strong>für</strong> <strong>de</strong>n verteilten Fall vorgestellt.Hierbei han<strong>de</strong>lt es sich um ein adaptives Verfahren, das nur lokal verfügbare Informationenbenötigt und verwen<strong>de</strong>t. Dieser Ansatz stellt sich – auch aufgrund <strong>de</strong>r im Papier vorgestelltenErgebnisse aus Experimenten – als prinzipiell vielversprechen<strong>de</strong>r Optimierungsansatzdar, sofern sich viele Pfa<strong>de</strong> von Knoten zu Senken (teilweise) zusammenfassen lassen (vgl.Abbildungen 3.1 und 3.2). Dies ist insbeson<strong>de</strong>re dann <strong>de</strong>r Fall, wenn globales Routingüber viele Hops hinweg zu einer größeren Menge Senken stattfin<strong>de</strong>t. Im Verfahren gemäß[Röm06a] ist <strong>de</strong>r Einzugsbereich <strong>de</strong>r Senken allerdings als eher klein gegenüber <strong>de</strong>rNetzgröße einzuschätzen und erstreckt sich nur über wenige Hops. Auch ist die Mengebzw. Dichte <strong>de</strong>r Senken in vielen Fällen nicht sehr hoch. Diese bei<strong>de</strong>n Umstän<strong>de</strong> schränkendamit die Optimierungsmöglichkeiten, die <strong>de</strong>r adaptive Ansatz verspricht, ein. Es lässtsich somit erwarten, dass <strong>de</strong>r Nutzen <strong>de</strong>s Verfahrens in vielen Fällen durch die zusätzlichenVerwaltungsinformationen in <strong>de</strong>n Nutzdaten-Paketen min<strong>de</strong>stens aufgewogen wird. Daherwird von einem Einsatz dieses adaptiven Verfahrens abgesehen.Obwohl die im letzten Abschnitt vorgestellten Verfahren interessante Ansätze undAspekte beinhalten, die <strong>für</strong> die Lösung <strong>de</strong>r Problematik aus Kapitel 2 relevant sind, bietetkeines dieser Verfahren eine umfassen<strong>de</strong> Lösung hier<strong>für</strong>. Damit erweist es sich alsnotwendig, ein eigenes Verfahren zu entwickeln. Wegen <strong>de</strong>r verschie<strong>de</strong>nen Ansätze mitunterschiedlichen Vor- und Nachteilen erscheint es sinnvoll, mehr als eine Herangehensweisezu verfolgen. Dies bietet einerseits weitreichen<strong>de</strong>re Analysemöglichkeiten als dieBeschränkung auf nur eine Lösungsmetho<strong>de</strong> und überhaupt erst Vergleichsmöglichkeiten.An<strong>de</strong>rerseits lässt sich hierdurch feststellen, ob immer dasselbe Verfahren eine optimaleLösung darstellt o<strong>de</strong>r eine Abhängigkeit von <strong>de</strong>n Randbedingungen <strong>de</strong>r Anwendung ab-19


3 GRUNDLEGENDE UND VERWANDTE ARBEITENhängt. Randbedingungen könnten beispielsweise die Anzahl <strong>de</strong>r Senken, die Dichte <strong>de</strong>sNetzes o<strong>de</strong>r die gewünschte Datenmenge in Bezug auf die maximal mögliche sein.20


Kapitel 4Protokoll-DesignNach <strong>de</strong>r Erläuterung <strong>de</strong>r Problemstellung in Kapitel 2 und <strong>de</strong>m Vorstellen verwandter Arbeitenin Kapitel 3 folgt nun das Design <strong>de</strong>r Algorithmen, die zum Einsammeln <strong>de</strong>r Datendurch die Senken verwen<strong>de</strong>t wer<strong>de</strong>n. Es han<strong>de</strong>lt sich hierbei um zwei verschie<strong>de</strong>ne Ansätze.Das erste Verfahren nutzt vergleichsweise einfaches Fluten, wohingegen das zweitedie Daten auf zuvor erstellten Spannbäumen in Richtung <strong>de</strong>r Senken transportiert. Die Lösungenwer<strong>de</strong>n in <strong>de</strong>n Abschnitten 4.2 bzw. 4.3 ausführlich beschrieben. Zuvor wer<strong>de</strong>n inAbschnitt 4.1 einige Grundlagen diskutiert.4.1 GrundlagenBevor die einzelnen Verfahren ausführlich vorgestellt wer<strong>de</strong>n können, bedarf es zunächst<strong>de</strong>r Klärung einiger Voraussetzungen. Zu<strong>de</strong>m sollen spezielle Notationen <strong>de</strong>s verwen<strong>de</strong>tenPseudoco<strong>de</strong>s kurz erklärt wer<strong>de</strong>n.4.1.1 VoraussetzungenDie Algorithmen <strong>de</strong>r Abschnitte 4.2 und 4.3 dieses Kapitels beschreiben ausschließlichdas <strong>für</strong> das Einsammeln <strong>de</strong>r Applikationsdaten erfor<strong>de</strong>rliche Verhalten. Dabei wird davonausgegangen, dass alle Knoten eine einheitliche Epochenlänge verwen<strong>de</strong>n und dieselbenEreignisse beobachten. Die verwen<strong>de</strong>ten Partitionen sind ebenfalls einheitlich und auf allenKnoten bekannt. Dies gilt auch <strong>für</strong> alle verwen<strong>de</strong>ten Konstanten. Der Einfachheit halberwird zu<strong>de</strong>m festgelegt, dass die beobachteten Ereignisse nur gemeinsam eingesammeltwer<strong>de</strong>n. Neben diesen Annahmen bzgl. <strong>de</strong>r Applikation aus Abschnitt 2.1 wer<strong>de</strong>n die imFolgen<strong>de</strong>n beschriebenen Rahmenbedingungen vorausgesetzt.Je<strong>de</strong>r Knoten k ∈ K besitzt eine ein<strong>de</strong>utige Kennung innerhalb <strong>de</strong>s Netzes. Diese Kennungwird im Folgen<strong>de</strong>n synonym mit <strong>de</strong>m Knoten k selbst verwen<strong>de</strong>t. Zu<strong>de</strong>m hat je<strong>de</strong>r21


4 PROTOKOLL-DESIGNKnoten Kenntnis über seine Position pos. Die zu versen<strong>de</strong>n<strong>de</strong>n Ereignisvektoren wer<strong>de</strong>ndurch eine geeignete Datenstruktur daten repräsentiert.Es existiert eine globale Zeit, die je<strong>de</strong>m Knoten bekannt ist. Dies kann zum Beispielbe<strong>de</strong>uten, dass je<strong>de</strong>r Knoten eine Uhr besitzt und die einzelnen Uhren stets synchronisiertsind. Zu<strong>de</strong>m verfügen die Knoten über Timer, die eine verzögerte Ausführung einzelnerAktionen ermöglichen. Diese wer<strong>de</strong>n im Folgen<strong>de</strong>n durch einfaches Zuweisen ganzerZahlen t ≥ 0 gesetzt und durch Zuweisung von ∅ wie<strong>de</strong>r gelöscht. Die Zahlen können als(irgen<strong>de</strong>ine) feste Zeiteinheit aufgefasst wer<strong>de</strong>n, z.B. Millisekun<strong>de</strong>n.Es existieren geeignete Funktionen zum Sen<strong>de</strong>n <strong>de</strong>r Daten via Funk – die versen<strong>de</strong>tenDaten wer<strong>de</strong>n als Paket o<strong>de</strong>r Nachricht bezeichnet. Hierzu gehören insbeson<strong>de</strong>re die Versandmetho<strong>de</strong>nUnicast und Broadcast. Unicast be<strong>de</strong>utet, dass die Daten gezielt an eineneinzelnen Knoten versen<strong>de</strong>t bzw. adressiert wer<strong>de</strong>n. Ein Knoten verarbeitet ein Paket nurdann, wenn es an ihn adressiert ist. Der Versand eines Pakets als Broadcast be<strong>de</strong>utet, dassalle Knoten, die das Paket empfangen, dieses auch verarbeiten dürfen. Die Zuverlässigkeit<strong>de</strong>s Funks ist nicht notwendig – es können also Pakete verloren gehen.Der Verzicht auf zuverlässige Funkübertragung be<strong>de</strong>utet lediglich, dass die vorgestelltenVerfahren hierauf prinzipiell nicht angewiesen sind. In <strong>de</strong>r rein algorithmischen Beschreibungwer<strong>de</strong>n keine beson<strong>de</strong>ren Vorkehrungen gegen Paketverluste und -kollisionen getroffen.Die Metho<strong>de</strong>n verfahren nach <strong>de</strong>m Prinzip <strong>de</strong>r „größten Mühe“ (engl. best effort).Zuverlässigkeit wird <strong>de</strong>mnach entwe<strong>de</strong>r von Seiten <strong>de</strong>r Knoten (in Form <strong>de</strong>s Betriebssystems)o<strong>de</strong>r <strong>de</strong>r Implementierung gewährleistet, falls erfor<strong>de</strong>rlich (vgl. Kapitel 5).4.1.2 Pseudoco<strong>de</strong>Je<strong>de</strong>r Co<strong>de</strong>block wird durch ein geschweiftes Klammerpaar eingeleitet, <strong>de</strong>ssen Inhalt einEreignis beschreibt – die Ereignis<strong>de</strong>finition. Nur bei Auftreten dieses Ereignisses wird <strong>de</strong>rfolgen<strong>de</strong> Co<strong>de</strong> ausgeführt. Der Übersichtlichkeit halber wird pro Listing nur ein solcherAbschnitt aus Ereignis und zugehörigem Co<strong>de</strong>block <strong>de</strong>finiert. Ferner beziehen sich Ereignisseund Co<strong>de</strong> auf je<strong>de</strong>n einzelnen Knoten – die Algorithmen sind also verteilt.Pakete sind durch ein spitzes Klammerpaar gekennzeichnet und können mehrere Datenfel<strong>de</strong>rbzw. Variablen enthalten, die durch Kommata voneinan<strong>de</strong>r getrennt sind. Ein Paketerhält außer<strong>de</strong>m einen Namen, <strong>de</strong>r als Subskript an die schließen<strong>de</strong> spitze Klammer angehängtwird, sofern das Paket in <strong>de</strong>r Ereignis<strong>de</strong>finition steht. Der Zugriff auf die Variableneines Pakets erfolgt in <strong>de</strong>r Punktnotation: Die Paketvariable wird an <strong>de</strong>n Paketnamen angehängtund mit einem Punkt von diesem getrennt. Dieselbe Punktnotation wird auch dann22


4.2 FLUTENverwen<strong>de</strong>t, wenn auf die einzelnen Komponenten eines Tupels einer Menge zugegriffenwird.4.2 FlutenDas hier verwen<strong>de</strong>te Fluten stellte eine Erweiterung <strong>de</strong>s herkömmlichen Flutens dar, in <strong>de</strong>rdie Eigenheiten <strong>de</strong>r Applikation aus Abschnitt 2.1 berücksichtigt wer<strong>de</strong>n. Zunächst wirdallerdings kurz das Grundverfahren erläutert. Je<strong>de</strong>r Knoten sen<strong>de</strong>t seine Daten periodisch,damit die Senken diese einsammeln können. Die Periodizität entspricht einer global festgelegtenund damit <strong>für</strong> alle Knoten gleichen Anzahl an Epochen. Neben <strong>de</strong>n eigentlichenEreignisvektoren daten sen<strong>de</strong>t ein Knoten einen Hop-Zähler hops, seine ein<strong>de</strong>utige Kennungals quelle sowie seine Position pos mit. Das so entstehen<strong>de</strong> Paket wird als Broadcastverschickt. Empfängt ein Knoten ein solches Paket, leitet er dieses mit um eins erhöhtemHop-Zähler wie<strong>de</strong>rum als Broadcast weiter. Dies geschieht aber nur dann, wenn <strong>de</strong>rHop-Zähler seinen Maximalwert MAXHOPS noch nicht erreicht hat und wenn die Distanzzwischen Empfänger und <strong>de</strong>r Positionsangabe im Paket die zulässige MaximalentfernungMAXDIST nicht überschreitet. Ist <strong>de</strong>r Empfänger selbst eine Senke, verarbeitet er die Datenlokal.Dieses Verfahren lässt sich nun wie folgt verbessern. Anstelle <strong>de</strong>r einzelnen Pakete wer<strong>de</strong>nnur noch sog. Meta-Pakete verschickt, die mehrere Einzelpakete enthalten können.Hierdurch kann eine gute Aggregation erreicht wer<strong>de</strong>n, wenn man folgen<strong>de</strong> Aspekte berücksichtigt:Weil alle Knoten ihre Daten gleichzeitig versen<strong>de</strong>n wür<strong>de</strong>n, sen<strong>de</strong>t ein Knotenseine Daten nicht sofort, son<strong>de</strong>rn fügt diese in einen Puffer P ein und setzt einen Timer χ(vgl. Algorithmus 4.1). Für das Setzen <strong>de</strong>r Timer existiert ein minimaler (MINTIMER) un<strong>de</strong>in maximaler Wert (MAXTIMER).Empfängt ein Knoten ein Meta-Paket, so fügt er die enthaltenen Pakete ebenfalls indiesen Puffer ein (und setzt ggf. <strong>de</strong>n Timer). Für je<strong>de</strong>s einzelne Paket tut er dies jedoch nurdann, wenn er in <strong>de</strong>r aktuellen Perio<strong>de</strong> noch keine von quelle generierten Daten erhaltenhat. Die übrigen Kriterien aus <strong>de</strong>m vorangegangenen Absatz gelten hierüber hinaus. ZurRealisierung dieser Merkfähigkeit verwen<strong>de</strong>t je<strong>de</strong>r Knoten eine Historie H, die beim Startje<strong>de</strong>r Perio<strong>de</strong> geleert wird. Sie verhin<strong>de</strong>rt, dass ein Knoten die Daten eines Knoten quellemehr als einmal pro Perio<strong>de</strong> weiterleitet. Das vollständige Verhalten zeigt Algorithmus 4.2und ist inspiriert durch [FR05].Das tatsächliche Sen<strong>de</strong>n <strong>de</strong>r Daten im Puffer erfolgt, sobald dieser seine maximale GrößeMAXPUFFER erreicht hat o<strong>de</strong>r <strong>de</strong>r Timer abgelaufen ist. Dabei wer<strong>de</strong>n alle im Puffer23


4 PROTOKOLL-DESIGNzwischengespeicherten Datenpakete in einem Meta-Paket versen<strong>de</strong>t, <strong>de</strong>r Puffer geleert und<strong>de</strong>r Timer gelöscht (Algorithmus 4.3).{ Knoten k registriert <strong>de</strong>n Beginn einer neuen Perio<strong>de</strong> }H ← ∅if χ = ∅χ ← Zufallszahl ∈ [MINTIMER, MAXTIMER]end ifP ← P ∪ {} Algorithmus 4.1: Fluten – Beginner einer neuen Perio<strong>de</strong> zum Einsammlen <strong>de</strong>r Daten4.3 Spannbaum-RoutingIm Gegensatz zum Fluten gestaltet sich das Spannbaum-Routing komplexer und erfor<strong>de</strong>rtzu<strong>de</strong>m die Aufteilung in zwei Phasen, die nachfolgend Initialisierungs- und Applikationsphasegenannt wer<strong>de</strong>n. Der Übersichtlichkeit wegen wer<strong>de</strong>n bei<strong>de</strong>n Phasen in zweigetrennten Abschnitten beschrieben.4.3.1 Nachbarschaften und Link-QualitätenFür <strong>de</strong>n im Folgen<strong>de</strong>n betrachteten Aufbau eines Spannbaums wer<strong>de</strong>n einige spezielleKenntnisse je<strong>de</strong>s einzelnen Knoten über seine lokale Nachbarschaft vorausgesetzt, die genauererläutert wer<strong>de</strong>n sollen. Weil dieser Begriff je nach Kontext unterschiedlich ausgelegtwird, bedarf es einer genaueren Definition: Die Nachbarschaft eines Knoten k ist dieTeilmenge N k ⊆ K aller Knoten eines Netzes, mit <strong>de</strong>nen k bidirektional und direkt kommunizierenkann. Ein Knoten ˜k ∈ N k heißt Nachbar von k.Ein Link ist die Bezeichnung einer Funk-Verbindung zwischen zwei Knoten k und ˜k, diein min<strong>de</strong>stens einer Richtung besteht. Ein Link kann unidirektional (Verbindung nur in eineRichtung) o<strong>de</strong>r bidirektional (Verbindung in bei<strong>de</strong> Richtungen) sein. Diese Trennung istjedoch nicht exklusiv: Ein bidirektionaler Link kann auch als zwei einzelne, unidirektionaleLinks betrachtet wer<strong>de</strong>n.Für die Spannbaumoptimierung in Abschnitt 4.3.2 sind Link-Qualitäten erfor<strong>de</strong>rlich.Hierbei han<strong>de</strong>lt es sich um ein Gütemaß unidirektionaler Links, das mit Q k←˜kbezeichnetwird. Es beschreibt die Güte <strong>de</strong>s Links von Knoten ˜k (Sen<strong>de</strong>r) nach k (Empfänger) und24


4.3 SPANNBAUM-ROUTING{ Knoten k empfängt n aggregierte Pakete Mi }for i = 1 . . . nif M i .quelle ∈ H | M i .quelle = kreturnelse if M i .quelle /∈ HH ← H ∪ {M i .quelle}end ifif dist(M i .pos, pos) > MAXDISTreturnend ifif k ∈ SVerarbeite M i .daten, M i .posend ifif M i .hops < MAXHOPSif χ = ∅χ ← Zufallszahl ∈ [MINTIMER, MAXTIMER]end ifP ← P ∪ {}end ifend for Algorithmus 4.2: Fluten – Reaktion bei Empfang eines Pakets{ Timer χ läuft ab (χ = 0) o<strong>de</strong>r Puffer ist voll (|P| = MAXPUFFER) }Sen<strong>de</strong> alle Pakete aus P aggregiert als BroadcastP ← ∅χ ← ∅ Algorithmus 4.3: Fluten – Aggregieren<strong>de</strong>s Sen<strong>de</strong>n <strong>de</strong>r Pakete im Puffer25


4 PROTOKOLL-DESIGNwird hier durch eine reelle Zahl aus <strong>de</strong>m Intervall [0, 1] beschrieben, wobei 0 <strong>de</strong>r schlechtesteund 1 <strong>de</strong>r beste Wert ist.In <strong>de</strong>r vorliegen<strong>de</strong>n Lösung i<strong>de</strong>ntifizieren die einzelnen Knoten ihre Nachbarn durch<strong>de</strong>n Einsatz <strong>de</strong>s in [OTL04] beschriebenen Verfahrens, das auch in [TWW06] zum Einsatzkommt. Die Funktionsweise ist wie folgt: Durch das periodische Versen<strong>de</strong>n sog. Hallo-Nachrichten gewinnt ein Knoten Informationen darüber, welche Knoten sich in seiner Umgebungbefin<strong>de</strong>n. Je<strong>de</strong>m dieser Knoten wird ein lokaler Status zugeordnet, <strong>de</strong>r <strong>de</strong>n zugehörigenLink als unbrauchbar, unidirektional o<strong>de</strong>r bidirektional einstuft. Bei Än<strong>de</strong>rungdieser Statusinformation o<strong>de</strong>r <strong>de</strong>m I<strong>de</strong>ntifizieren eines bisher unbekannten Knotens wer<strong>de</strong>ndie ein<strong>de</strong>utige Kennung und <strong>de</strong>r aktuelle Status <strong>de</strong>s Knotens in die Hallo-Nachrichtenintegriert. Auf diese Weise wer<strong>de</strong>n lokale Status ausgetauscht, so dass insbeson<strong>de</strong>re bidirektionaleLinks festgestellt wer<strong>de</strong>n können. Wenn ein Knoten k ausreichend viele Hallo-Nachrichten von einem an<strong>de</strong>ren Knoten ˜k empfangen hat, stuft er <strong>de</strong>n zugehörigen Linkals unidirektional ein. Wenn k nun von ˜k erfährt, dass dieser die Verbindung ebenfalls als(min<strong>de</strong>stens) unidirektional einstuft, so än<strong>de</strong>rt er <strong>de</strong>n Status auf bidirektional.Das periodische Versen<strong>de</strong>n <strong>de</strong>r Hallo-Nachrichten kann außer<strong>de</strong>m dazu benutzt wer<strong>de</strong>n,die gewünschten (unidirektionalen) Link-Qualitäten zu erhalten. Ein Knoten k weiß,dass er von je<strong>de</strong>m bekannten Knoten ˜k pro Perio<strong>de</strong> eine Hallo-Nachricht erwartet. DieseInformation kann er dazu verwen<strong>de</strong>n, mittels rekursiver Schätzung [KS06, WTC03] dieEmpfangswahrscheinlichkeit von diesem Knoten zu schätzen:Q [n] = (1 − α) · Q [n − 1] + α · ˜Q [n] ,k←˜kk←˜kk←˜k0 < α < 1, Q [0] = 0 (4.1)k←˜kQ k←˜k[n] ist die von Knoten k berechnete Schätzung <strong>de</strong>r Empfangswahrscheinlichkeitvon Knoten ˜k nach n Perio<strong>de</strong>n. Der Parameter α gibt <strong>de</strong>n Einfluss <strong>de</strong>s aktuellen Wertes˜Q k←˜k[n] an, <strong>de</strong>r 1 ist, falls in <strong>de</strong>r Perio<strong>de</strong> n eine Hallo-Nachricht von ˜k empfangen wur<strong>de</strong>,und 0 sonst. Zwei positive Eigenschaften dieser Metho<strong>de</strong> sind die Adaptivität – alsodie Reaktion auf Verän<strong>de</strong>rungen – sowie <strong>de</strong>r Umstand, dass bei <strong>de</strong>r Schätzung <strong>de</strong>r Qualitätzu einem bestimmten Zeitpunkt auch die Vergangenheit durch die Rekursion in <strong>de</strong>rBerechnungsvorschrift berücksichtigt wird.4.3.2 InitialisierungsphaseDer erste Schritt auf <strong>de</strong>m Weg zum fertigen Spannbaum-Routing ist <strong>de</strong>r Aufbau <strong>de</strong>r Spannbäume.Je<strong>de</strong> Senke generiert einen eigenen Spannbaum, <strong>de</strong>r jedoch nicht das ganze Netzumfasst, son<strong>de</strong>rn durch eine maximale Tiefe MAXHOPS und maximale Distanz MAXDIST26


4.3 SPANNBAUM-ROUTINGbegrenzt wird, weil die Senken gemäß Abschnitt 2.1 nur an <strong>de</strong>n Daten aus einer lokalenUmgebung interessiert sind.Im einfachsten Fall startet je<strong>de</strong> Senke <strong>de</strong>n Spannbaum-Aufbau einmalig mit <strong>de</strong>m Broadcasteneiner Spannbaum-Nachricht. Diese enthält die ein<strong>de</strong>utige Kennung <strong>de</strong>r Senke alswurzel und vater, <strong>de</strong>ren Position pos sowie die aktuelle Baumtiefe tiefe in Hops (dieTiefe ist aus <strong>de</strong>r Sicht <strong>de</strong>s Empfängers <strong>de</strong>finiert, so dass die Senke diese initial auf 1 setzt).Je<strong>de</strong>r Knoten, <strong>de</strong>r so eine Nachricht empfängt, merkt sich diese Werte als Tupel <strong>de</strong>rMenge B, sofern die Distanz zur Senke nicht größer als MAXDIST ist und ihm <strong>de</strong>r Baummit <strong>de</strong>r Senke wurzel noch unbekannt ist. Wenn die Tiefe tiefe in <strong>de</strong>r gera<strong>de</strong> erhaltenenNachricht noch nicht MAXHOPS erreicht hat, leitet er diese als Broadcast weiter. Dabeiersetzt er das Feld vater durch seine eigene Kennung und erhöht tiefe um eins.Dieser Algorithmus ist bereits funktionsfähig und erlaubt durch das Mitsen<strong>de</strong>n <strong>de</strong>rSenken-Kennung die Verwaltung mehrerer Bäume pro Knoten. Ein Knoten kann also Teildiverser Spannbäume sein.Allerdings existiert ein entschei<strong>de</strong>n<strong>de</strong>r Nachteil: Die Analysen und Resultate in [WTC03]und [TWW06] belegen, dass <strong>de</strong>r Empfang eines einzelnen Pakets in drahtlosen Sensornetzenkein zuverlässiges Maß <strong>für</strong> die Verbindungsqualität zweier Knoten via Funk seinkann. Im hier präsentierten Verfahren sollen die Spannbäume allerdings dauerhaften Bestandhaben, also <strong>für</strong> vergleichsweise viele Datensammlungen eingesetzt wer<strong>de</strong>n. Darumist es sinnvoll, diejenigen Kanten bevorzugt als Baumkanten zu verwen<strong>de</strong>n, die eine guteLink-Qualität (in bei<strong>de</strong> Richtungen) aufweisen. Für das folgen<strong>de</strong> Verfahren ist es ausreichend,wenn ein Knoten k seine Nachbarn ˜k i ∈ N k und die zugehörigen Qualitäten Q k←˜ki<strong>de</strong>r Links in seine Richtung kennt. Es bedarf also einer Anpassung <strong>de</strong>s o.g. Algorithmus,die im Folgen<strong>de</strong>n erläutert wird.Die Senken starten <strong>de</strong>n Aufbau <strong>de</strong>r Spannbäume, in<strong>de</strong>m sie die bisherigen Spannbaum-Nachrichten um ein Feld ergänzen, das die Qualität <strong>de</strong>r Verbindung <strong>de</strong>s Empfängers zurSenke beschreibt (siehe Algorithmus 4.4). Diese Erweiterung erfahren auch die Tupel <strong>de</strong>rMenge B. Zu<strong>de</strong>m wer<strong>de</strong>n die Nachrichten (in geeigneter Weise) nur noch an die bidirektionalenKommunikationspartner versen<strong>de</strong>t.Beim Erhalt einer Spannbaum-Nachricht verwirft ein Knoten diese nicht automatisch,wenn bereits ein Baumeintrag zur zugehörigen Senke bekannt ist, son<strong>de</strong>rn ersetzt <strong>de</strong>n bisherigenVater dieses Baumes durch <strong>de</strong>n Sen<strong>de</strong>r <strong>de</strong>r soeben erhaltenen Nachricht, wenn diePfadqualität sich hierdurch verbessert und die Tiefe nicht größer ist als vorher. Erhält einKnoten eine Spannbaum-Nachricht, die zu einem bisher unbekannten Baum (bzw. einerunbekannten Senke) gehört o<strong>de</strong>r än<strong>de</strong>rt er <strong>de</strong>n Vater zu einem bereits bekannten Baum,so informiert er hierüber alle bidirektionalen Kommunikationspartner (mit Ausnahme <strong>de</strong>r27


4 PROTOKOLL-DESIGNSenke und <strong>de</strong>s Vaters, falls diese sich hierunter befin<strong>de</strong>n). Bedingung ist erneut, dass diemaximale Baumtiefe noch nicht erreicht sein darf. Die vollständige Bearbeitung empfangenerSpannbaum-Nachrichten liefert Algorithmus 4.5.Die Tiefen-Bedingung beim Ersetzen <strong>de</strong>s bisherigen Vaters während <strong>de</strong>r Initialisierungsphaseist notwendig, um die vorgegebene, maximale Baumtiefe garantieren zu können.Existiert beispielsweise ein Baum wie in Abbildung 4.1 und erhält Knoten k 3 eineSpannbaum-Nachricht von k 2 , so darf er diesen auch dann nicht als neuen Vater im Baumverwen<strong>de</strong>n, wenn die Pfadqualität (zur Senke) sich hierdurch verbessern wür<strong>de</strong>. Dies hättezur Folge, dass k 5 die maximal erlaubte Tiefe von 3 verletzt.k 1k 2k 3k 4k 5 Abbildung 4.1: Ein möglicher Spannbaum <strong>de</strong>r Senke k 1 mit Maximaltiefe 3.{ Spannbaum-Aufbau wird auf Knoten k initiiert }for all ˜k ∈ N kSen<strong>de</strong> an ˜kend for Algorithmus 4.4: Spannbaum-InitiierungWer<strong>de</strong>n die Daten <strong>de</strong>r Knoten nicht periodisch von <strong>de</strong>n Senken eingesammelt, son<strong>de</strong>rnnur dann, wenn die Senken diese anfor<strong>de</strong>rn, sollten die Pfad-Qualitäten ein bidirektionalesMaß darstellen. Algorithmus 4.5 berücksichtigt diesen Umstand. Wer<strong>de</strong>n die Datenaber periodisch ohne Anfor<strong>de</strong>rung durch die Senken verschickt, so reicht es aus, wenndie Pfad-Qualitäten nur die unidirektionale Qualität in Richtung <strong>de</strong>r Senke eines Baumesausdrücken. Dies kann erreicht wer<strong>de</strong>n, in<strong>de</strong>m anstelle <strong>de</strong>s eigentlichen Wertes vonQ k←M.vater in Algorithmus 4.5 die maximale Qualität verwen<strong>de</strong>t wird.Abschließend sei darauf hingewiesen, dass eine Senke sowohl beim Fluten als auch beimAufbau <strong>de</strong>r Spannbäume ggf. nicht von allen Knoten innerhalb <strong>de</strong>r maximalen DistanzMAXDIST Daten einsammeln kann. Durch die beschränkten Funkreichweiten ist es mög-28


4.3 SPANNBAUM-ROUTING{ Knoten k empfängt eine Nachricht M }if dist(M.pos, pos) > MAXDISTreturnend ifupdated ← falseM.qualität ← M.qualität · Q k←M.vaterb ← (wurzel, v, p, tiefe, qualität) ∈ B : wurzel = M.wurzelif b = ∅updated ← trueb ← (M.wurzel, M.vater, M.pos, M.tiefe, M.qualität)B ← B ∪ {b}else if b.qualität < M.qualität & b.tiefe ≥ M.tiefeupdated ← trueB ← B \ {b}b ← (M.wurzel, M.vater, M.pos, M.tiefe, M.qualität)B ← B ∪ {b}end ifif updated = true & M.tiefe < MAXHOPSfor all ˜k ∈ N k \ {M.vater, M.wurzel}Q ← M.qualität · Q k←˜kSen<strong>de</strong> an ˜kend forend if Algorithmus 4.5: Empfangen und Weiterleiten von Spannbaum-Nachrichten29


4 PROTOKOLL-DESIGNlich, dass <strong>für</strong> einen Knoten trotz ausreichen<strong>de</strong>r Nähe kein Pfad mit höchstens MAXHOPSHops zur Senke existiert.4.3.3 ApplikationsphaseSind die Spannbäume einmal berechnet, können diese <strong>für</strong> das Einsammeln <strong>de</strong>r Daten verwen<strong>de</strong>twer<strong>de</strong>n. Im einfachsten Fall sen<strong>de</strong>n alle Knoten ihre Daten periodisch an ihre Väter– wie bereits beim Fluten sind die Perio<strong>de</strong>nlängen durch eine globale, allen Knotenbekannte Anzahl an Epochen <strong>de</strong>finiert. Damit ergibt sich eine gute Aggregationsmöglichkeit,in<strong>de</strong>m ein Knoten wartet, bis er die Daten seiner Söhne pro Baum erhalten hat. Erstdanach sen<strong>de</strong>t er die Daten an seinen Vater weiter. In je<strong>de</strong>r Perio<strong>de</strong> wird damit über je<strong>de</strong>Baumkante nur ein Paket verschickt.Die in <strong>de</strong>r Initialisierungsphase berechneten Spannbäume sind allerdings <strong>de</strong>rart konstruiert,dass ein Knoten nur <strong>de</strong>n Vater zu einem bestimmten Baum kennt, nicht aber seineSöhne. Daher ist es nicht auf direkte Weise möglich, auf <strong>de</strong>n Erhalt <strong>de</strong>r Daten aller Söhnezu warten. Allerdings kennt je<strong>de</strong>r Knoten die eigene Tiefe in einem Baum sowie die Maximaltiefe.Setzt man voraus, dass alle Knoten gleichzeitig <strong>de</strong>n Beginn einer neuen Perio<strong>de</strong>registrieren, so kann diese Problematik durch <strong>de</strong>n Einsatz einfacher Timer χ umgangenwer<strong>de</strong>n. Hierzu wählt man ein adäquates Intervall INTVL. Bei Beginn einer neuen Perio<strong>de</strong>zur Datensammlung wartet ein Knoten ein Vielfaches dieses Intervalls ab. Dieses Vielfacheergibt sich unmittelbar aus <strong>de</strong>r Differenz <strong>de</strong>r maximalen und <strong>de</strong>r eigenen Tiefe ineinem bestimmten Baum. Nach Ablauf eines <strong>de</strong>r Timer sen<strong>de</strong>t <strong>de</strong>r Knoten seine Daten an<strong>de</strong>n Vater <strong>de</strong>s zugehörigen Spannbaums. Bei <strong>de</strong>n versen<strong>de</strong>ten Daten han<strong>de</strong>lt es sich nichtmehr nur um die eigenen Daten, son<strong>de</strong>rn um ein Aggregat D aus <strong>de</strong>n eigenen und <strong>de</strong>nen(ggf. wie<strong>de</strong>rum aggregierten) <strong>de</strong>r Söhne. Die hier beschriebene Sen<strong>de</strong>logik fin<strong>de</strong>t sich inkompakter Darstellung in <strong>de</strong>n Algorithmen 4.6 sowie 4.7.Algorithmus 4.8 beschreibt das Verhalten eines Knotens beim Empfang von Daten. Ist<strong>de</strong>r empfangene Knoten selbst die Senke <strong>de</strong>s Baumes, zu <strong>de</strong>m die Daten gehören, verarbeiteter diese. Ansonsten aggregiert er die Daten (und wartet auf <strong>de</strong>n Ablauf <strong>de</strong>s Timers).Empfängt ein Knoten Daten von einem Sohn erst nach Ablauf <strong>de</strong>s entsprechen<strong>de</strong>n Timers,verwirft er diese. Zwar könnte er versuchen, diese Daten zu einem späteren Zeitpunkt nachzusen<strong>de</strong>n,aber dieser Fall kann vernachlässigt wer<strong>de</strong>n, wenn man das Intervall INTVL großgenug wählt.Dieser proaktive, periodische Ansatz kann durch einen zusätzlichen Teil <strong>de</strong>rart verän<strong>de</strong>rtwer<strong>de</strong>n, dass die Senken die Daten aktiv anfor<strong>de</strong>rn können. Das Ereignis „Daten einesKnoten k wer<strong>de</strong>n angefor<strong>de</strong>rt“ in Algorithmus 4.6 wird in diesem Fall nicht mehr peri-30


4.3 SPANNBAUM-ROUTING{ Daten eines Knoten k wer<strong>de</strong>n angefor<strong>de</strong>rt }for all b ← (wurzel, v, p, tiefe, q) ∈ Bχ b.wurzel ← (MAXHOPS − b.tiefe) · INTVLD b.wurzel ← datenend for Algorithmus 4.6: Vorbereitungen zum Sen<strong>de</strong>n <strong>de</strong>r Daten im Spannbaum{ Der Timer χ s <strong>de</strong>s Baumes mit <strong>de</strong>r Senke s läuft ab (χ s = 0) }χ s ← ∅b ← (wurzel, vater, p, t, q) ∈ B : wurzel = sSen<strong>de</strong> an b.vater Algorithmus 4.7: Sen<strong>de</strong>n <strong>de</strong>r Daten im Spannbaum{ Empfang eines Datenpakets M }if χ M.wurzel ≠ ∅if k = M.wurzelVerarbeite M.datenelseD M.wurzel ← Aggregiere(D M.wurzel , M.daten)end ifend if Algorithmus 4.8: Empfangen und Verarbeiten von Daten im Spannbaum31


4 PROTOKOLL-DESIGNodisch ausgelöst, son<strong>de</strong>rn bei Empfang einer Sammel-Nachricht. Das Setzen <strong>de</strong>s Timersmuss ebenfalls leicht modifiziert wer<strong>de</strong>n: Die Wartezeit muss verdoppelt wer<strong>de</strong>n, um <strong>de</strong>mUmstand Rechnung zu tragen, dass vor <strong>de</strong>m eigentlichen Einsammeln zunächst alle Knotenim Baum informiert wer<strong>de</strong>n müssen.Der eigentliche Algorithmus zum Anfor<strong>de</strong>rn <strong>de</strong>r Daten aller Knoten eines Baumes gestaltetsich recht einfach. Die Senke schickt eine Sammel-Nachricht mit <strong>de</strong>r eigenen Kennungals wurzel und vater per Broadcast (vgl. Algorithmus 4.9). Bei Empfang einer solchenNachricht prüft <strong>de</strong>r Knoten zunächst, ob er Teil <strong>de</strong>s Baumes <strong>de</strong>r Senke wurzel ist.Han<strong>de</strong>lt es sich bei vater außer<strong>de</strong>m um seinen Vater in diesem Baum, löst er das Ereignis„Daten eines Knoten k wer<strong>de</strong>n angefor<strong>de</strong>rt“ <strong>für</strong> sich selbst aus. Es wer<strong>de</strong>n nur Nachrichtenvom Vater akzeptiert, um das korrekte Setzen <strong>de</strong>r Timer in Algorithmus 4.6 zu gewährleisten.Zusätzlich leitet er die Nachricht weiter, wenn die zugehörige Baumtiefe nicht maximalist. Dabei ersetzt er das Feld vater durch seine eigene Kennung. Dieses Verhaltenspiegelt Algorithmus 4.10 wi<strong>de</strong>r.{ Senke s benötigt Daten }Sen<strong>de</strong> als Broadcast Algorithmus 4.9: Initialisierung <strong>de</strong>r Datensammlung durch eine Senke{ Knoten k empfängt eine Sammel-Nachricht M }b ← (wurzel, vater, p, tiefe, q) ∈ B : wurzel = M.wurzelif b ≠ ∅ & b.vater = M.vaterLöse Ereignis „Daten eines Knoten k wer<strong>de</strong>n angefor<strong>de</strong>rt“ ausif b.tiefe < MAXHOPSSen<strong>de</strong> als Broadcastend ifend if Algorithmus 4.10: Empfangen und Weiterleiten einer Sammel-Nachricht4.3.4 DatenaggregationNach <strong>de</strong>r genauen Beschreibung <strong>de</strong>s Spannbaum-Routings folgt nun die Betrachtung <strong>de</strong>rin diesem Kontext eingesetzten Aggregierungsfunktion. Für die in Kapitel 2 beschriebene32


4.3 SPANNBAUM-ROUTINGstatistische Auswertung benötigt eine Senke pro Epoche die absoluten Auftrittshäufigkeitenlinksseitiger Ereignisse aus <strong>de</strong>n zu bewerten<strong>de</strong>n Ereignismustern.Es ist ausreichend, pro relevanter Epoche und Distanzpartition je einen Zähler anstelle<strong>de</strong>r Ereignisvektoren zu verschicken. Es ergibt sich ein rekursives Verfahren, das an <strong>de</strong>nBlättern <strong>de</strong>s Baumes startet. Je<strong>de</strong>s Blatt schickt <strong>für</strong> je<strong>de</strong> relevante Epoche die Bitvektorenals (binäre) Zähler <strong>de</strong>r beobachteten Ereignisse als Datenfeld daten. (Der Fall, dass ggf.nur eine Teilmenge <strong>de</strong>r beobachteten Ereignisse von <strong>de</strong>r Senke abgefragt wer<strong>de</strong>n kann,wird an dieser Stelle <strong>de</strong>r Einfachheit halber nicht betrachtet.) Ein Vater im Baum addiertdie einzelnen Zähler, die er von seinen Söhnen erhält, zu seinen lokalen Bitvektoren. NachAblauf <strong>de</strong>s Timers sen<strong>de</strong>t er diese Zähler als Feld daten an seinen eigenen Vater. Die Senkeerhält letztlich von allen Söhnen im letzten Schritt die entsprechen<strong>de</strong>n Zähler, getrenntnach Distanz und Epoche, und kann diese nun korrekt verarbeiten. Die Aggregation bestehteinerseits darin, dass pro Baumkante nur eine Nachricht erfor<strong>de</strong>rlich ist. An<strong>de</strong>rerseitserfolgt eine Konvertierung von n Binärwerten in einen Zähler mit Maximalwert n, <strong>de</strong>rfolglich mit weniger Bits auskommt, nämlich ⌈log 2 n⌉.Es ist anzumerken, dass die Größe <strong>de</strong>r Zähler zur Senke hin wächst. Es sind damit immernur so viele Bits zu übertragen, wie <strong>de</strong>r aktuelle Zählerstand z benötigt, also ⌈log 2 z⌉.Tritt ein Ereignis nur selten auf, ist auch die durchschnittliche Anzahl nötiger Bits <strong>für</strong> diezugehörigen Zähler kleiner als das Maximum.Es bleibt abschließend zu klären, welche Epochen beim Einsammeln <strong>de</strong>r Daten relevantsind. Beim periodischen Ansatz sind dies einfach alle Epochen <strong>de</strong>r letzten Perio<strong>de</strong>.Beim aktiven Ansatz ergibt sich eine Abhängigkeit von <strong>de</strong>r ältesten Perio<strong>de</strong> in <strong>de</strong>n Zeitpartitionen.Liegt das letzte Einsammeln länger zurück als diese, so müssen die Daten allerEpochen in <strong>de</strong>n Zeitpartitionen eingesammelt wer<strong>de</strong>n. Ist dies nicht <strong>de</strong>r Fall, müssen nurdie Daten seit <strong>de</strong>m letzten Einsammeln geschickt wer<strong>de</strong>n. Kompliziertere Fälle wer<strong>de</strong>ndadurch ausgeschlossen, dass vorausgesetzt wird, dass das Auftreten eines rechtsseitigenEreignisses einer Ereigns<strong>de</strong>finition bei einer Senke immer zum sofortigen Einsammeln <strong>de</strong>rDaten führt.33


4 PROTOKOLL-DESIGN34


Kapitel 5ImplementierungZur Simulation <strong>de</strong>r Algorithmen aus Kapitel 4 wer<strong>de</strong>n diese in nesC [GLvB + 03] <strong>für</strong> TinyOS[HSW + 00] implementiert. Neben <strong>de</strong>r Simulation ist damit auch <strong>de</strong>r Einsatz <strong>de</strong>r Programmein einer realen Anwendung im Kontext von [Röm06a] möglich. Eine <strong>de</strong>tailierteErläuterung zu nesC und TinyOS fin<strong>de</strong>t sich in Anhang A. Die von TinyOS unterstützteModularisierung fin<strong>de</strong>t in <strong>de</strong>r hier vorgestellten Implementierung zweifach Anwendung:Zum einen sind die verschie<strong>de</strong>nen Module so gut wie möglich unabhängig voneinan<strong>de</strong>rkonzipiert, so dass diese bei Bedarf ohne großen Aufwand gegen an<strong>de</strong>re Implementierungenausgetauscht wer<strong>de</strong>n können. Zum an<strong>de</strong>ren verwen<strong>de</strong>n die Applikationen einheitlicheSchnittstellen, die sich erst in <strong>de</strong>r konkreten Implementierung <strong>de</strong>r Module unterschei<strong>de</strong>n.Dieses Kapitel beschreibt Beson<strong>de</strong>rheiten bei <strong>de</strong>r Implementierung <strong>de</strong>r Algorithmenaus Kapitel 4 sowie die verwen<strong>de</strong>ten Datenstrukturen. Diese ergeben sich z.B. aus <strong>de</strong>mUmstand, dass es in TinyOS keine einfache, dynamische Speicherwaltung gibt, weswegenan vielen Stellen Arrays fester Größe verwen<strong>de</strong>t wer<strong>de</strong>n müssen. Eine weitere Restriktionliegt in <strong>de</strong>r Beschränkung <strong>de</strong>r maximalen Nutzdatenmenge innerhalb <strong>de</strong>r Funk-Nachrichten. Diese sind standardmäßig auf 29 Byte begrenzt, können aber durch einfacheÄn<strong>de</strong>rung einer Konstanten vergrößert wer<strong>de</strong>n. Hierauf wird allerdings näher in Kapitel 6eingegangen.5.1 Schnittstellen und ModuleDie Abbildungen 5.1 und 5.2 zeigen die verwen<strong>de</strong>ten Schnittstellen inklusive <strong>de</strong>r jeweiligenModule beim Fluten bzw. Spannbaum-Routing. Die Pfeile zeigen die Abhängigkeiten<strong>de</strong>r einzelnen Schnittstellen voneinan<strong>de</strong>r an. Die Darstellung beschränkt sich <strong>de</strong>r Übersichtlichkeithalber auf die selbstgeschriebenen Schnittstellen und Module – diese verwen<strong>de</strong>nihrerseits Schnittstellen <strong>de</strong>r TinyOS Bibliothek. Diese Abhängigkeiten wer<strong>de</strong>n in <strong>de</strong>n35


5 IMPLEMENTIERUNG Abbildung 5.1: Eingesetzte Module beim Fluten und ihre Abhängigkeitenfolgen<strong>de</strong>n Beschreibungen <strong>de</strong>r einzelnen Schnittstellen und ihrer Module bei Bedarf genanntund ihr Einsatz kurz erläutert.5.1.1 Warteschlange und MultiplexerTinyOS stellt eine Schnittstelle mit einem Kommando zum Sen<strong>de</strong>n von Nachrichten perFunk zur Verfügung. Über eine Parametrisierung dieser Schnittstelle können verschie<strong>de</strong>neNachrichtentypen realisert wer<strong>de</strong>n. Der Vorteil hiervon ist, dass <strong>für</strong> die verschie<strong>de</strong>nenTypen unterschiedliche Empfangsereignisse ausgelöst wer<strong>de</strong>n, d.h. zu je<strong>de</strong>m Typ muss eineeigene Funktion implementiert wer<strong>de</strong>n, die bei Empfang einer Nachricht dieses Typsvon TinyOS aufgerufen wer<strong>de</strong>n kann. Damit kann eine Anwendung in verschie<strong>de</strong>ne Moduleaufgeteilt wer<strong>de</strong>n, die jeweils eigene Nachrichtentypen verwen<strong>de</strong>n. Je<strong>de</strong>s Modul stelltdann eine eigene Funktion zur Behandlung <strong>de</strong>r eigenen Nachrichtentypen bereit.Weil TinyOS <strong>für</strong> das Sen<strong>de</strong>n von Nachrichten keine Warteschlange zur Verfügung stellt,muss die Anwendung insbeson<strong>de</strong>re <strong>de</strong>n Fall behan<strong>de</strong>ln, dass gera<strong>de</strong> keine neue Nachrichtgesen<strong>de</strong>t wer<strong>de</strong>n kann, weil das Betriebssystem noch mit <strong>de</strong>m Versand einer älteren Nachrichtbeschäftigt ist. Zur Umgehung dieser Problematik dient eine eigene Warteschlange(MsgQueue), die von allen nachfolgen<strong>de</strong>n Applikationen verwen<strong>de</strong>t wird. Dabei han<strong>de</strong>ltes sich um einen einfachen Ringpuffer in Form eines Arrays mit fester Größe. Dieses Arrayspeichert <strong>de</strong>n Nachrichten-Typ, <strong>de</strong>n Adressaten, die Nachricht im TinyOS Format, <strong>de</strong>renGröße in Byte und eine Anzahl Wie<strong>de</strong>rholungen. Zum Einfügen in die Warteschlangeexistiert ein Kommando, dass genau diese Parameter erhält. Sofern <strong>de</strong>r Puffer nicht voll ist,wird <strong>de</strong>r neue Eintrag gespeichert, ansonsten wird er verworfen und mit <strong>de</strong>m Rückgabewert<strong>de</strong>r Fehler angezeigt.36


5.1 SCHNITTSTELLEN UND MODULE Abbildung 5.2: Eingesetzte Module beim Spannbaum-Routing und ihre AbhängigkeitenDer interne Ablauf gestaltet sich wie folgt: Solange <strong>de</strong>r Puffer nicht leer ist, prüft einTimer, ob die älteste Nachricht in <strong>de</strong>r Warteschlange gesen<strong>de</strong>t wer<strong>de</strong>n kann. Sobald diesmöglich ist, wird die Nachricht gesen<strong>de</strong>t. Der Timer wird nach je<strong>de</strong>m Ablauf mit einerZufallszahl aus einem vorgegebenen Intervall initialisiert. Beim tatsächlichen Sen<strong>de</strong>n <strong>de</strong>rNachrichten muss ein Multiplexing bzgl. <strong>de</strong>r Nachrichtentypen durchgeführt wer<strong>de</strong>n. Umdie Warteschlange auch unabhängig von <strong>de</strong>n verwen<strong>de</strong>ten Nachrichtentypen einsetzen zukönnen, ist das Multiplexing über eine eigene Schnittstelle (MultiSend) mit zugehörigemModul realisiert. Dieses übernimmt lediglich die Aufgabe, das jeweils korrekte Sen<strong>de</strong>-Kommando aufzurufen.Mit <strong>de</strong>r Anzahl <strong>de</strong>r Wie<strong>de</strong>rholungen beim Hinzufügen einer Nachricht zur Warteschlangekann gesteuert wer<strong>de</strong>n, wie oft versucht wer<strong>de</strong>n darf, diese zu verschicken. Der Multiplexersignalisiert <strong>de</strong>r Warteschlange über das Auslösen eines Ereignisses, wann das Sen<strong>de</strong>nbeen<strong>de</strong>t ist. Ein zusätzlicher Parameter gibt an, ob die Nachricht vom Empfänger bestätigtwur<strong>de</strong>. In <strong>de</strong>n folgen<strong>de</strong>n Applikationen wird dieser Mechanismus wie folgt verwen<strong>de</strong>t:Beim Sen<strong>de</strong>n <strong>de</strong>r Daten Richtung Senke wer<strong>de</strong>n sowohl beim Fluten als auch beimSpannbaum-Routing die von TinyOS bereitgestellten Empfangsbestätigungen 1 verwen<strong>de</strong>t,in allen an<strong>de</strong>ren Fällen zeigt <strong>de</strong>r Indikator an, dass die Nachricht nicht empfangen wur<strong>de</strong>.Die Anzahl <strong>de</strong>r Wie<strong>de</strong>rholungen dient <strong>de</strong>r Steigerung <strong>de</strong>r Zuverlässigung bei <strong>de</strong>r Funk-Übertragung durch Redundanz. Der Timer dient zur Vermin<strong>de</strong>rung von Kollisionen.1 Bei einem Broadcast gilt eine Nachricht als bestätigt, wenn <strong>de</strong>r Sen<strong>de</strong>r min<strong>de</strong>stens eine Empfangsbestätigungerhält37


5 IMPLEMENTIERUNG5.1.2 KnotenpositionenWie bei <strong>de</strong>r Erläuterung <strong>de</strong>r Algorithmen in Kapitel 4 beschrieben, benötigen die KnotenKenntnis über ihre Position. Hierzu dient die Schnittstelle Position, die ein Kommando zurAbfrage <strong>de</strong>r Position in Form von Koordinaten anbietet. Sobald diese verfügbar sind, wir<strong>de</strong>in Ereignis ausgelöst. Die Abfrage <strong>de</strong>r Koordinaten wird über Positionssensoren realisiert,welche die Daten von einem TinyViz-Plugin beziehen.5.1.3 HistorieDie Historie (MsgHistory) wird nur <strong>für</strong> das Fluten benötigt, um diejenigen Knoten festzuhalten,<strong>de</strong>ren Daten in <strong>de</strong>r aktuellen Perio<strong>de</strong> bereits weitergeleitet wur<strong>de</strong>n. Da in realenSensornetzen keine exakt synchronen Uhren vorausgesetzt wer<strong>de</strong>n können, setzt die Implementierungnicht voraus, dass alle Knoten die Historie gleichzeitig leeren können. Neben<strong>de</strong>r Kennung <strong>de</strong>sjenigen Knotens, <strong>de</strong>ssen Daten weitergeleitet wur<strong>de</strong>n, wird darum auchdie Anfangsepoche <strong>de</strong>r weitergeleiteten Daten gespeichert.Zur Optimierung <strong>de</strong>r Ausführungsgeschwindigkeit bei <strong>de</strong>r Simulation existiert jedochein Kommando zum Leeren <strong>de</strong>r Historie. Diese ist als Ringpuffer aufgebaut, so dassdie Komplexität beim Einfügen und Prüfen <strong>de</strong>s Enthaltenseins einer Kennung-Epochen-Kombination linear ist (zur Länge <strong>de</strong>s Puffers). Um <strong>de</strong>n verwen<strong>de</strong>ten Speicherplatz zuminimieren, wird beim Einfügen ein Eintrag mit selber Knoten-Kennung und älterer Epocheüberschrieben. Die Länge <strong>de</strong>s Puffers muss immer so gewählt wer<strong>de</strong>n, dass dieselbenDaten eines Knotens nie mehr als einmal weitergeleitet wer<strong>de</strong>n bzw. nie mehr als einmalvon einer Senke verarbeitet wer<strong>de</strong>n. Sie lässt sich durch Kenntnis <strong>de</strong>r Knotendichte imNetz, <strong>de</strong>r maximal zulässigen Anzahl Hops und <strong>de</strong>r maximalen Funkreichweite abschätzen(ohne Formel). In kleinen Netzen kann vereinfachend die um eins verringerte Anzahl<strong>de</strong>r Knoten im Netz verwen<strong>de</strong>t wer<strong>de</strong>n.5.1.4 Nachbarschaft und Link-QualitätenBei <strong>de</strong>r Nachbarschaft (Neighborhood) han<strong>de</strong>lt es sich um die Implementierung <strong>de</strong>sin [OTL04] spezifizierten Verfahrens. Ein periodischer Timer fügt eine neue Hallo-Nachrichtzur Warteschlange hinzu und aktualisiert die Nachbarschaftstabelle. Es existiert die Möglichkeit,<strong>de</strong>n Timer und damit das Nachbarschaftsprotokoll anzuhalten, obwohl dieses da<strong>für</strong>nicht vorgesehen ist. Im Gegensatz zum Ansatz in [TRV + 05] wird dabei nicht explizitversucht, beim Anhalten konsistente Zustän<strong>de</strong> zu garantieren. Es kann also vorkommen,dass ein Knoten einen an<strong>de</strong>ren als Nachbarn betrachtet, obwohl dies an<strong>de</strong>rsherum nicht <strong>de</strong>r38


5.1 SCHNITTSTELLEN UND MODULEFall ist. Damit verbun<strong>de</strong>ne Probleme wer<strong>de</strong>n von <strong>de</strong>r Implementierung <strong>de</strong>s Spannbaum-Algorithmus behan<strong>de</strong>lt.Von beson<strong>de</strong>rem Interesse sind die verwen<strong>de</strong>ten Hallo-Nachrichten, <strong>de</strong>ren Aufbau Listing5.1 entnommen wer<strong>de</strong>n kann. Durch die Beschränkung <strong>de</strong>r maximalen NutzdatengrößeMaxDaten bei <strong>de</strong>r Funkübertragung in TinyOS ist die Anzahl <strong>de</strong>r maximalen NachbarnN (entspricht <strong>de</strong>r Konstanten T ND_NBRT BL_SIZE in Listing 5.1) beschränkt.Sie lässt sich durch folgen<strong>de</strong> Ungleichung (Einheiten in Byte) ausdrücken:⌊ ⌋MaxDaten − 66 + N · 2 ≤ MaxDaten ⇒ N ≤(5.1)2Das Makro HELLO_MSG_SIZE in Listing 5.1 wird verwen<strong>de</strong>t, um beim Einfügen einerHallo-Nachricht in die Warteschlange einfach <strong>de</strong>ren tatsächliche Länge berechnen zukönnen. So wird beim Sen<strong>de</strong>n nur die verwen<strong>de</strong>te Anzahl Bytes <strong>de</strong>r Nachricht übertragen.type<strong>de</strong>f struct HelloMsg_s {uint16_t sen<strong>de</strong>rId;uint8_t hseq;uint8_t replySize;uint8_t requestSize;uint8_t lostSize;uint16_t nbrLst[TND_NBRTBL_SIZE];} HelloMsg;#<strong>de</strong>fine HELLO_MSG_SIZE(t) (sizeof(HelloMsg) - (TND_NBRTBL_SIZE - ((t).replySize + (t).requestSize + (t).lostSize)) * sizeof(uint16_t)) Listing 5.1: Hallo-NachrichtenDie unidirektionalen Link-Qualitäten wer<strong>de</strong>n wie folgt berechnet: Empfängt ein Knoteneine Hallo-Nachricht eines Nachbarn, aktualisiert er die zugehörige Schätzung gemäß Formel4.1. Dabei wird vernachlässigt, dass die Hallo-Nachrichten unterschiedlich groß seinkönnen. Nur beim Empfang einer Hallo-Nachricht kann ein Knoten einwandfrei feststellen,wie viele konsekutive Nachrichten er von einem Knoten nicht gehört hat. Zur Abfrage<strong>de</strong>r einzelnen Qualitäten bietet die Nachbarschaftsschnittstelle ein Kommando. Diesesliefert eine aktuelle Schätzung zurück, in <strong>de</strong>r die Anzahl <strong>de</strong>r min<strong>de</strong>stens verpassten Hallo-Nachrichten eines Nachbarn eingerechnet wird.5.1.5 Spannbaum-AufbauDer Aufbau <strong>de</strong>r Spannbäume wird über die Schnittstelle SpanningTree bzw. das zugehörigeModul bereitgestellt. Die einzelnen Bäume, die durch einen Knoten verlaufen, wer<strong>de</strong>n39


5 IMPLEMENTIERUNGin einem Array fester Größe gespeichert. Dessen Größe ist aufgrund <strong>de</strong>r kleinen Hauptspeichervon Sensorknoten Einschränkungen unterlegen.Zum Aufbau <strong>de</strong>r Spannbäume wer<strong>de</strong>n die in Listing 5.2 gezeigten Spannbaum-Nachrichtenverwen<strong>de</strong>t. Von beson<strong>de</strong>rem Interesse sind die Fel<strong>de</strong>r nbrs und pathProb. Im erstendieser bei<strong>de</strong>n Arrays wer<strong>de</strong>n die Kennungen <strong>de</strong>r Ñ Nachbarn mit <strong>de</strong>r besten Qualität übertragen.Im zweiten stehen die zugehörigen Pfadwahrscheinlichkeiten (vgl. Abschnitt 4.3.2).Der Wert Ñ (entspricht ST _NBRS_MAX in Listing 5.2) muss wie<strong>de</strong>r so gewählt wer<strong>de</strong>n,dass die Größe <strong>de</strong>r Nachricht nicht das zulässige Maximum MaxDaten überschreitet.Es gilt (Einheiten in Byte):⌊ ⌋MaxDaten − 1010 + Ñ · 3 ≤ MaxDaten ⇒ Ñ ≤ 3(5.2)type<strong>de</strong>f struct ExplorerMsg_s {uint16_t rootId; /** ID of tree’s root */Pos2D pos; /** position of root (2*uint16_t) */uint16_t parentId; /** ID of sen<strong>de</strong>r */uint8_t <strong>de</strong>pth; /** <strong>de</strong>pth of tree on sen<strong>de</strong>r’s si<strong>de</strong> */uint8_t lstSize; /** size of nbrs and prob arrays */uint16_t nbrs[ST_NBRS_MAX]; /** sen<strong>de</strong>r’s neighbors */intProb_t pathProb[ST_NBRS_MAX]; /** recv prob of path */} ExplorerMsg; Listing 5.2: Spannbaum-NachrichtenEine weitere Beson<strong>de</strong>rheit bei <strong>de</strong>r Implementierung ist, dass eine Spannbaum-Nachrichtnur dann bearbeitet wird, wenn <strong>de</strong>r Sen<strong>de</strong>r lokal als Nachbar <strong>de</strong>s Empfängers bekanntist (Prüfung mittels <strong>de</strong>r Nachbarschaft-Schnittstelle) und die eigene Kennung im Arraynbrs <strong>de</strong>r Nachricht enthalten ist. Dieses Vorgehen behebt einerseits das Problem, dassbeim einfachen Anhalten <strong>de</strong>s Nachbarschaftsprotokolls inkonsistente Zustän<strong>de</strong> auftretenkönnen (vgl. Abschnitt 5.1.4). An<strong>de</strong>rerseits ist es Voraussetzung, wenn bidirektionale Pfad-Qualitäten verwen<strong>de</strong>t wer<strong>de</strong>n sollen – nur wenn die Knoten sich gegenseitig als Nachbarnbetrachten, existieren auch Link-Qualitäten in bei<strong>de</strong> Richtungen.Zusätzlich zur Implementierung <strong>de</strong>r TinyOS-Module wur<strong>de</strong> ein TinyViz-Plugin zur Verifikation<strong>de</strong>s Spannbaum-Aufbaus und <strong>de</strong>s Nachbarschaftsprotokoll entwickelt.5.1.6 Einsammeln <strong>de</strong>r DatenFür das Sen<strong>de</strong>n <strong>de</strong>r Daten (in Richtung <strong>de</strong>r Senken) steht die Schnittstelle SendData zurVerfügung. Sie fin<strong>de</strong>t in bei<strong>de</strong>n Ansätzen Verwendung und spezifiziert ein Kommando, das40


5.1 SCHNITTSTELLEN UND MODULE<strong>de</strong>n Versand <strong>de</strong>r lokalen Daten initiiert, sowie ein Ereignis, das beim Empfang von Datenausgelöst wird.Das zugehörige Modul, das beim Fluten eingesetzt wird, verwen<strong>de</strong>t die Schnittstelle Position,um die Koordinaten beim Versand <strong>de</strong>r eigenen Daten mitschicken und beim Empfangvon Daten prüfen zu können, ob <strong>de</strong>r Sen<strong>de</strong>r innerhalb <strong>de</strong>r maximal zulässigen Distanzliegt (vgl. Abschnitt 4.2). Die Warteschlange wird verwen<strong>de</strong>t, um Daten eines Knoten proPerio<strong>de</strong> höchstens einmal weiterzuleiten o<strong>de</strong>r zu verarbeiten. Das Ereignis beim Empfangvon Daten wird <strong>für</strong> je<strong>de</strong>s empfangene (neue) Datenpaket einzeln ausgelöst. Die Implementierungspiegelt ansonsten exakt die Beschreibung in <strong>de</strong>n Algorithmen 4.1–4.3 wie<strong>de</strong>r.Beim Spannbaum-Routing kommen zwei verschie<strong>de</strong>ne Implementierungen zum Einsatz,die sich jedoch nur in <strong>de</strong>r Berechnung <strong>de</strong>r Timer aus Algorithmus 4.6 unterschei<strong>de</strong>n.Ansonsten existieren keine Unterschie<strong>de</strong>. Beim Sen<strong>de</strong>n wer<strong>de</strong>n die von TinyOS bzw. TOS-SIM bereitgestellten Empfangsbestätigungen verwen<strong>de</strong>t und Pakete bis zu einer festgelegtenMaximalzahl wie<strong>de</strong>rholt, wenn die jeweilige Bestätigung nicht erhalten wur<strong>de</strong>. Damitmuss ein Knoten sich jedoch auch merken, von welchen (ihm prinzipiell unbekannten)Kin<strong>de</strong>rn er Daten erhalten hat, um Duplikate erkennen zu können. Diese können auftreten,wenn eine Empfangsbestätigung verloren geht.Abweichend von Algorithmen 4.6–4.7 existiert nicht <strong>für</strong> je<strong>de</strong>n bekannten Baum ein eigenerTimer, son<strong>de</strong>rn ein Zähler. Die einzelnen Zähler wer<strong>de</strong>n gemäß Algorithmus 4.6 mit<strong>de</strong>r Wartezeit <strong>für</strong> <strong>de</strong>n jeweiligen Baum initialisiert und durch einen periodischen Timerum <strong>de</strong>ssen Intervalllänge erniedrigt. Eine aggregierte Nachricht wird dann an <strong>de</strong>n entsprechen<strong>de</strong>nVater weitergeleitet, wenn <strong>de</strong>r Zähler vor einer Erniedrigung kleiner ist als dasTimer-Intervall. Beim Empfang einer aggregierten Nachricht wird das Empfangs-Ereignisnur dann ausgelöst, wenn Ziel (Kennung <strong>de</strong>r Senke) und die lokale Kennung übereinstimmen.Obwohl die beim Spannbaum-Routing mögliche Aggregierung nicht schwer zu implementierenist, wur<strong>de</strong> hierauf verzichtet. Es fin<strong>de</strong>t keine echte Datenaggregierung statt. Fürdie Simulation ist es ausreichend, nur einen Zähler zu verschicken, <strong>de</strong>r die Anzahl aggregierterDatensätze anzeigt. Dieser entspricht <strong>de</strong>r Anzahl Knoten, <strong>de</strong>ren Daten aggregiertwur<strong>de</strong>n. Um trotz<strong>de</strong>m die unterschiedlichen (und zu <strong>de</strong>n Senken hin wachsen<strong>de</strong>n) Paketgrößenzu simulieren, wer<strong>de</strong>n diese <strong>für</strong> gegebene Anzahl eingesammelter Epochen undEreignisse berechnet und entsprechend große Pakete verschickt.41


5 IMPLEMENTIERUNG5.1.7 Steuerung <strong>de</strong>r ApplikationenBei <strong>de</strong>n in Abbildung 5.1 sowie 5.2 gezeigten Schnittstellen App han<strong>de</strong>lt es sich eigentlichum die Module, welche die Steuerung <strong>de</strong>r Programme übernehmen. In <strong>de</strong>r vorliegen<strong>de</strong>nArbeit sind dies nur Treiber <strong>für</strong> die Simulationen. Sie legen fest, ob ein Knoten eine Senkeist o<strong>de</strong>r nicht und steuern <strong>de</strong>n zeitlichen Ablauf.Beim Fluten ruft ein Timer in festen Intervallen das Sen<strong>de</strong>-Kommando <strong>de</strong>r SchnittstelleSendData auf. Beim Spannbaum-Routing wird zunächst das Nachbarschaftsprotokoll gestartetund nach einer festen Zeit wie<strong>de</strong>r gestoppt. Danach wird <strong>de</strong>r Spannbaum-Aufbauinitiiert, in<strong>de</strong>m das entsprechen<strong>de</strong> Kommando <strong>de</strong>r Schnittstelle SpanningTree aufgerufenwird. Im Anschluss wird beim proaktiven Ansatz auf je<strong>de</strong>m Knoten in festen Intervallen <strong>de</strong>rVersand <strong>de</strong>r lokalen Daten veranlasst (Aufruf <strong>de</strong>s Kommandos <strong>de</strong>r Schnittstelle SendData).Beim aktiven Ansatz starten ausschließlich die Senken in <strong>de</strong>nselben festen Intervallen dasEinsammeln über die Schnittstelle Collect.Alle drei Applikation implementieren dasjenige Ereignis, das von SendData beim Empfangvon Daten ausgelöst wird. Die Applikation zur Steuerung <strong>de</strong>s aktiven Spannbaum-Routing behan<strong>de</strong>lt überdies das Ereignis beim Eintreffen einer Sammel-Nachricht <strong>de</strong>rSchnittstelle Collect. Es wird verwen<strong>de</strong>t, um das Versen<strong>de</strong>n <strong>de</strong>r lokalen Daten zu allenbekannten Senken anzustoßen.5.2 Vergleich <strong>de</strong>r ApplikationenDie Abbildungen 5.1 und 5.2 lassen bereits vermuten, dass die Implementierung <strong>de</strong>s Flutensweniger komplex ist als die <strong>de</strong>s Spannbaum-Routings. Dies wird von <strong>de</strong>r Anzahl <strong>de</strong>rCo<strong>de</strong>zeilen (exkl. Kommentar- und Leerzeilen) in Tabelle 5.1 bestätigt: Das Fluten kommtmit rund <strong>de</strong>r Hälfte an Co<strong>de</strong>zeilen aus. Die eingesetzte Historie in Verbindung mit <strong>de</strong>meinfacheren SendData Modul hat zwar eine ähnliche Komplexität wie die SendData Modulebei<strong>de</strong>r Spannbaum-Verfahren, allerdings benötigen das Nachbarschaftsprotokoll und<strong>de</strong>r Aufbau <strong>de</strong>r Spannbäume 770 Zeilen zusätzlichen Co<strong>de</strong>. Der Aufwand <strong>für</strong> das aktive,senkeninitiierte Einsammeln <strong>de</strong>r Daten beim Spannbaum-Routing beträgt hingegen nurweitere 128 Zeilen.Diese Beobachtungen wirken sich auch auf die Größe <strong>de</strong>r zur Illustration <strong>für</strong> Mica-Knoten kompilierten Programme in Tabelle 5.2 aus. Diese zeigt auch Werte <strong>für</strong> eine „leereApplikation“, die nur die gemeinsam genutzten Schnittstellen Position, MsgQueue undMultiSend verwen<strong>de</strong>t. Hierdurch wird <strong>de</strong>utlich, wieviel Speicher die einzelnen Implementierungenzusätzlich zu diesen benötigen.42


5.2 VERGLEICH DER APPLIKATIONENFlutenCo<strong>de</strong>zeilenSpannbaum(proaktiv)Spannbaum(aktiv)Warteschlange 201Multiplexer 127Positionsbestimmung 196Historie 76 — —Nachbarschaft — 440Spannbaum — 340Datenanfor<strong>de</strong>rung — — 128Datenversand 198 295 295Konfiguration 80 75 76Hauptprogramm 120 129 130Verdrahtung 37 43 51Summe 1.035 1.846 1.983 Tabelle 5.1: Co<strong>de</strong>zeilen <strong>de</strong>r verschie<strong>de</strong>nen Programme mit Aufspaltung in einzelne Moduleinkl. SchnittstelleDie Größe <strong>de</strong>s ausführbaren Co<strong>de</strong>s (ROM) ist unabhängig von <strong>de</strong>r jeweiligen Konfiguration<strong>de</strong>r Knoten: Für das Fluten sind im Vergleich zum Spannbaum-Routing nur ca. 3 <strong>de</strong>r 4Bytes <strong>für</strong> <strong>de</strong>n ausführbaren Co<strong>de</strong> (ROM) notwendig. Im Gegensatz zur leeren Applikationsind rund 2.300 zusätzliche Bytes erfor<strong>de</strong>rlich. Der Spannbaum-Ansatz hingegen benötigt6.000 bzw. 6.400 Byte mehr.Der Vergleich <strong>de</strong>s verwen<strong>de</strong>ten (statischen) Hauptspeichers (RAM) hingegen gestaltetsich schwierig, weil <strong>de</strong>r Speicherbedarf unmittelbar von <strong>de</strong>r jeweiligen Konfiguration <strong>de</strong>rKnoten abhängt. Die Daten in Tabelle 5.2 beziehen sich beim Fluten auf eine Historiemit 50 Einträgen, beim Spannbaum-Ansatz auf eine maximale Anzahl von Bäumen durcheinen Knoten auf 10. Bereits kleine Verändungen dieser Parameter verän<strong>de</strong>rn <strong>de</strong>n Speicherbedarf<strong>de</strong>utlich: Ein einzelner Eintrag in <strong>de</strong>r Historie benötigt 4 Byte, ein Eintrag einesBaumes durch einen Knoten 10 Byte plus ca. 20 Byte <strong>für</strong> die Sen<strong>de</strong>logik pro Eintrag.Beim Fluten hängt <strong>de</strong>r Speicherbedarf von <strong>de</strong>r Dichte <strong>de</strong>s Netzes und <strong>de</strong>r Anzahl maximalzulässiger Hops ab. Beim Spannbaum-Routing verursachen überdies Anzahl und Dichte<strong>de</strong>r Senken einen erhöhten Speicherbedarf. Trotz dieser Parameter lässt sich erwarten, dassbeim Fluten weniger Hauptspeicher benötigt wird, sofern kein großes, dichtes Netz mitnur wenigen Senken vorliegt. Nur in diesem Fall ist <strong>de</strong>r Speicherbedarf <strong>de</strong>r Historie großgegenüber <strong>de</strong>m <strong>de</strong>r wenigen benötigten Baumeinträge pro Knoten.43


5 IMPLEMENTIERUNGGröße in ByteLeere App. Fluten Spannbaum(proaktiv)Spannbaum(aktiv)ROM 10.046 12.306 16.086 16.420RAM 1.108 1.778 1.906 1.947 Tabelle 5.2: Speicherbedarf <strong>de</strong>r Applikationen im Vergleich zu einer leeren Applikation,kompiliert <strong>für</strong> Mica-Knoten. Das Netz ist auf 50 Knoten mit maximal 2 Hops ausgelegt.Pro Knoten können 10 Bäume zum Routing verwen<strong>de</strong>t wer<strong>de</strong>n.44


Kapitel 6AuswertungZum Vergleich <strong>de</strong>r implementierten Algorithmen wer<strong>de</strong>n diese mit TOSSIM und TinyVizsimuliert. Erläuterungen zu <strong>de</strong>n Simulationsabläufen und -parametern bil<strong>de</strong>n <strong>de</strong>n Einstiegin dieses Kapitel. Darauf folgt die Auswertung <strong>de</strong>r Simulationsergebnisse. Ein kurzer Abschnittmit Anmerkungen und Einschränkungen schließt das Kapitel ab.6.1 Simulationsablauf und -parameterIn diesem Abschnitt wer<strong>de</strong>n zunächst die zu untersuchen<strong>de</strong>n Parameter und ihre Wertebereichebestimmt. Hinzu kommt ein kurzer Überblick zur Konfiguration <strong>de</strong>r eingesetztenModule und schließlich eine Erläuterung <strong>de</strong>r Simulationsabläufe.6.1.1 Wertebereiche <strong>de</strong>r ParameterBei <strong>de</strong>n zu untersuchen<strong>de</strong>n Parametern han<strong>de</strong>lt es sich um die Größe und Dichte <strong>de</strong>s Sensornetzes,die Dichte <strong>de</strong>r Senken, die Anzahl <strong>de</strong>r maximalen Hops und die maximalenEinzugsbereiche <strong>de</strong>r Senken. Die in <strong>de</strong>n Simulationen verwen<strong>de</strong>ten Werte fin<strong>de</strong>n sich inTabelle 6.1.Die einzelnen Simulationen verwen<strong>de</strong>n bei gleicher Anzahl Knoten immer dieselbenKnotenpositionen. Diese wer<strong>de</strong>n dazu vorab mittels gleichverteilter Zufallszahlen auf eineFläche von ungefähr 30x30 Metern 1 verteilt und in Positionsdateien gespeichert. Die Zahl<strong>de</strong>r Knoten bestimmt damit gleichzeitig die Dichte <strong>de</strong>s Netzes. Sie ist so gewählt, dassverschie<strong>de</strong>ne Konnektivitäten in <strong>de</strong>n Netzen resultieren (vgl. Abschnitt A.5). Tabelle 6.2zeigt die durchschnittliche Anzahl potentieller Nachbarn eines Knotens <strong>für</strong> unterschiedlicheFunkreichweiten (vgl. Abschnitt A.5).1 TOSSIM arbeitet auf Basis von Fuß und bietet eine virtuelle Simulationsfläche von 100x100 Fuß45


6 AUSWERTUNGKnoten Knoten pro Senke Maximale Distanz Maximale Hops20, 40, 100 1, 2, 3, 5, 10, 20 15 m, 30 m 2, 3, 4 Tabelle 6.1: Untersuchte Simulationsparameter und ihre WerteMaximale FunkreichweiteKnoten4 m 6 m 8 m 12 m20 1 2 3 540 1 3 6 12100 5 10 17 34 Tabelle 6.2: Gerun<strong>de</strong>te, durchschnittliche Anzahl potentieller Nachbarn eines Knotens inAbhängigkeit <strong>de</strong>r Knotenanzahl und <strong>de</strong>r maximalen FunkreichweiteDie Dichte <strong>de</strong>r Senken wird über ihren Kehrwert festgelegt: die Anzahl <strong>de</strong>r Knoten proSenke. In allen Simulationen wer<strong>de</strong>n die Senken durch einfaches Abzählen bestimmt, sodass diese bei gleicher Knotenzahl immer dieselbe Position besitzen. Dadurch kann <strong>für</strong>je<strong>de</strong> Simulation bestimmt wer<strong>de</strong>n, wie viele Knoten in <strong>de</strong>n Einzugsbereichen <strong>de</strong>r Senkenliegen.Die maximalen Einzugsbereiche <strong>de</strong>r Senken <strong>de</strong>cken einmal einen kleinen und einmaleinen großen Teil <strong>de</strong>s Netzes ab. Die Bestimmung <strong>de</strong>r Maximalzahl erlaubter Hops leitetsich aus <strong>de</strong>r Anwendung <strong>de</strong>r Ergebnisse aus Abschnitt A.5 auf die gewählten Einzugsbereicheab.Eine Perio<strong>de</strong> (zum Einsammeln <strong>de</strong>r Daten) umfasst immer 6 Epochen á 10 Sekun<strong>de</strong>nsowie 5 verschie<strong>de</strong>ne Ereignisse pro Epoche, um die Anzahl nötiger Simulationen nichtweiter zu vergrößern. Eine geringfügige Än<strong>de</strong>rung dieser Parameter erhöht die Paketgrößennur wenig, so dass von ihnen kein entschei<strong>de</strong>n<strong>de</strong>r Einfluss auf die grundsätzlichenErgebnisse aus Abschnitt 6.2 zu erwarten ist.6.1.2 Konfiguration <strong>de</strong>r ModuleIn diesem Abschnitt erfolgt ein Überblick über die Konfiguration <strong>de</strong>r verwen<strong>de</strong>ten Module.Die Werte <strong>de</strong>r einzelnen Konfigurationen sind in Tabelle 6.3 zusammengefasst. Diefolgen<strong>de</strong>n Absätze enthalten kurze Anmerkungen zu einigen Konfigurationswerten.Beim Nachbarschaftsprotokoll ergibt sich die geringe Zahl maximaler Nachbarn aus <strong>de</strong>nLimitierungen gemäß Formel 5.1. Dasselbe gilt <strong>für</strong> die maximale Anzahl potentieller Söhnebeim Spannbaum-Algorithmus bezüglich Formel 5.2. Mit <strong>de</strong>n Ergebnissen aus [XK04]ist ein zusammenhängen<strong>de</strong>s Netz trotz<strong>de</strong>m wahrscheinlich. Wegen Speicherplatzlimitierungenauf realen Sensorknoten ist die Anzahl von Spannbäumen, die ein Knoten ver-46


6.1 SIMULATIONSABLAUF UND -PARAMETERWarteschlangeGröße Verzögerung (leer) Verzögerung (sonst)15 5 – 600 ms 40 – 600 msNachbarschaftMax. Nachbarn Hallo-Intervall Schätzparameter α11 2,5 s 0,1Spannbaum-AlgorithmusMax. Söhne Max. Bäume pro Knoten Wie<strong>de</strong>rholungen6 10 3Fluten – Einsammeln <strong>de</strong>r DatenWartezeit Historie Max. Aggregation Wie<strong>de</strong>rholungen10 – 1200 ms 100 4 Pakete 0 – ∞Spannbaum-Routing – Einsammeln und Anfor<strong>de</strong>rn <strong>de</strong>r DatenWie<strong>de</strong>rholungen (Einsammeln) Wie<strong>de</strong>rholungen (Anfor<strong>de</strong>rung)0 – 2 2 Tabelle 6.3: Konfiguration <strong>de</strong>r Modulewalten kann, ebenfalls beschränkt. Die Anzahl <strong>de</strong>r Wie<strong>de</strong>rholungen (vgl. Abschnitt 5.1.1)einer Spannbaum-Nachricht ist auf Basis einer <strong>de</strong>dizierten Testreihe festgelegt. Gleichesgilt <strong>für</strong> die Parameter <strong>de</strong>r Warteschlange. Zum Erreichen <strong>de</strong>s angegebenen Aggregationsgra<strong>de</strong>sbeim Fluten wird die maximale Paketgröße <strong>de</strong>r TinyOS-Applikation hier passendangehoben.6.1.3 SimulationsablaufDie Abläufe <strong>de</strong>r Simulationen <strong>de</strong>s Flutens und <strong>de</strong>s Spannbaum-Routings unterschei<strong>de</strong>nsich nur wenig. In bei<strong>de</strong>n Fällen wird die Simulationslänge so gewählt, dass 10 Perio<strong>de</strong>nzum Einsammeln von Daten genutzt wer<strong>de</strong>n können. Damit ergibt sich <strong>für</strong> das Fluten eineSimulationszeit von 600 Sekun<strong>de</strong>n (vgl. Abschnitt 6.1.1). Beim Spannbaum-Routing istvor <strong>de</strong>m Einsammeln <strong>de</strong>r Daten <strong>de</strong>r Aufbau <strong>de</strong>r Nachbarschaften und Spannbäume nötig.Hier<strong>für</strong> wer<strong>de</strong>n insgesamt weitere 2 Perio<strong>de</strong>n bzw. 120 Sekun<strong>de</strong>n veranschlagt. Mit <strong>de</strong>rKonfiguration aus Abschnitt 6.1.2 reichen <strong>für</strong> das Nachbarschaftsprotokoll 90 Sekun<strong>de</strong>naus. Um sicherzustellen, dass beim Aufbau <strong>de</strong>r Spannbäume keine Hallo-Nachrichten mehrverschickt wer<strong>de</strong>n, wird nach <strong>de</strong>m Anhalten <strong>de</strong>s Nachbarschaftsprotokolls eine Epoche gewartet.Danach startet <strong>de</strong>r Aufbau <strong>de</strong>r Spannbäume. Für je<strong>de</strong> Kombination <strong>de</strong>r Parameteraus Tabelle 6.1 wer<strong>de</strong>n zwei Simulationsläufe unter Einsatz <strong>de</strong>s Flutens durchgeführt. Fürdas aktive und proaktive Spannbaum-Routing wer<strong>de</strong>n jeweils drei Simulationen durchgeführt.47


6 AUSWERTUNG6.2 ErgebnisseIn diesem Abschnitt erfolgt die Analyse <strong>de</strong>r zuvor beschriebenen und implementiertenRouting-Algorithmen. Die zur Illustration verwen<strong>de</strong>ten Graphen zeigen die Mediane <strong>de</strong>rjeweiligen Messungen. Aufgrund <strong>de</strong>r wenigen Messergebnisse pro Parameterkombinationwer<strong>de</strong>n keine Statistiken mit Quartilen und Ausreißern verwen<strong>de</strong>t.6.2.1 ErfolgsquoteDie Erfolgsquote bezeichnet die Anzahl eingesammelter Daten im Verhältnis zum theoretischmöglichen Maximum, das durch die Knotenpositionen und Einzugsbereiche festgelegtist. Bei <strong>de</strong>r Analyse <strong>de</strong>r Daten hat sich herausgestellt, dass die veranschlagte Zeit zumAufbau <strong>de</strong>r Spannbäume in vielen Fällen nicht ausgereicht hat. Dies hat sich durch eine<strong>de</strong>utlich geringere Menge eingesammelter Daten in <strong>de</strong>r ersten Perio<strong>de</strong> gezeigt. Aus diesemGrund wird diese erste Perio<strong>de</strong> bei <strong>de</strong>r Auswertung <strong>de</strong>r Erfolgsquote beim Spannbaum-Routing nicht verwen<strong>de</strong>t.Abbildung 6.1 zeigt die Erfolgsquoten <strong>de</strong>r drei simulierten Verfahren bei 40 Knoten.Wie erwartet sind sie beim Fluten in <strong>de</strong>n Abbildungen 6.1(a) und 6.1(b) unabhängig von<strong>de</strong>r Dichte <strong>de</strong>r Senken. Die leichten Schwankungen lassen sich durch die unterschiedlichenPositionen <strong>de</strong>r Senken bei Variation <strong>de</strong>r Senkendichte und die geringe Menge anMesswerten erklären. Mit zunehmen<strong>de</strong>r Hopzahl steigt auch die Erfolgsquote an, jedochnicht proportional. Dies lässt sich durch folgen<strong>de</strong> Überlegungen erklären: Bei <strong>de</strong>n gegebenenFunkreichweiten können die meisten Knoten eine Senke, in <strong>de</strong>ren Einzugsbereichsie liegen, mit 2 Hops erreichen. Die Erhöhung <strong>de</strong>r Hopzahl trägt im Wesentlichen durchhöhere Redundanz – ein Knoten kann eine Senke so über mehrere Pfa<strong>de</strong> erreichen – zurSteigerung <strong>de</strong>r Erfolgsquote bei. Sie vergrößert die Menge <strong>de</strong>rjenigen Knoten, die eineSenke mit weniger Hops nicht erreichen können, nur geringfügig.Die Vergrößerung <strong>de</strong>s Einzugsgebiets in Abbildung 6.1(b) bewirkt eine <strong>de</strong>utliche Reduzierung<strong>de</strong>r Erfolgsquote. Mit <strong>de</strong>n Überlegungen <strong>de</strong>s vorangegangen Absatzes ist dieseBeobachtung nachvollziehbar: Die meisten <strong>de</strong>r zu <strong>de</strong>n Einzugsgebieten <strong>de</strong>r Senken hinzugewonnenenKnoten können die Senken mit 2 Hops nicht o<strong>de</strong>r nur schlecht erreichen.Dieselben Einsichten begrün<strong>de</strong>n auch, warum sich die Erhöhung <strong>de</strong>r Hopzahl beim größerenEinzugsgebiet relativ gesehen stärker auswirkt. Der Zuwachs ist allerdings trotz<strong>de</strong>mgering, weil die Pfadwahrscheinlichkeiten bei steigen<strong>de</strong>r Hopzahl abnehmen.Beim proaktiven Spannbaum-Routing in <strong>de</strong>n Abbildungen 6.1(c) und 6.1(d) zeigt sichein an<strong>de</strong>res Bild: Bei geringer Senkendichte liegt die Erfolgsquote bei 3 und 4 Hops ungefährdoppelt so hoch wie beim Fluten. Bei nur 2 Hops lässt sich noch ungefähr das Resultat48


6.2 ERGEBNISSE<strong>de</strong>s Flutens mit 4 Hops erreichen. Mit zunehmen<strong>de</strong>r Senkendichte verringert sich die Erfolgsquote,bis sie schließlich bei ca. 50 Prozent Senkendichte auf die erzielte Quote beimFluten abgesunken ist. Bei höheren Dichten erweist sich das Fluten als erfolgreicher. Hier<strong>für</strong>gibt es verschie<strong>de</strong>ne Ursachen: Die Spannbäume wer<strong>de</strong>n mit steigen<strong>de</strong>r Senkendichtekleiner (vgl. Abbildung 6.2(a)), was sich durch mehr Paketkollisionen und die Limitierung<strong>de</strong>r maximal pro Knoten verwaltbaren Bäume begrün<strong>de</strong>n lasst. Außer<strong>de</strong>m verschickt je<strong>de</strong>rKnoten beim Spannbaum-Routing ein Datenpaket pro bekannter Senke, so dass beihöherer Senkendichte <strong>de</strong>r Funkverkehr ansteigt. Damit steigt auch beim Einsammeln <strong>de</strong>rDaten die Wahrscheinlichkeit von Paketkollisionen. In Bezug auf die Erhöhung <strong>de</strong>r Einzugsgebietein Abbildung 6.1(d) lässt sich wie<strong>de</strong>rum eine Reduzierung <strong>de</strong>r Erfolgsquotenbeobachten. Auch hier greifen die vorangegangenen Überlegungen bzgl. <strong>de</strong>r Erhöhung <strong>de</strong>rEinzugsgebiete beim Fluten.Für das aktive Spannbaum-Routing in <strong>de</strong>n Abbildungen 6.1(e) sowie 6.1(f) gelten dieselbenBeobachtungen und Erläuterungen wie im proaktiven Fall. Die Erfolgsquoten sindallerdings zum Teil um einige Prozentpunkte geringer. Die Erklärung hier<strong>für</strong> liegt im aktivenAnfor<strong>de</strong>rn <strong>de</strong>r Daten: Paketverluste führen dazu, dass nicht alle Knoten über dasEinsammeln <strong>de</strong>r Daten informiert wer<strong>de</strong>n.Die Erhöhung <strong>de</strong>r maximal zulässigen Spannbaumtiefen führt zu einer Steigerung <strong>de</strong>rErfolgsquoten beim Einsammeln <strong>de</strong>r Daten analog zum Fluten. Es lässt sich erkennen, dass<strong>de</strong>r Einfluss <strong>de</strong>r höheren erlaubten Spannbaumtiefen in Netzen mit geringer Senkendichteeinen stärkeren Einfluss hat als in Netzen mit höherer Senkendichte. Bei einer größerenHopzahl steigt die Wahrscheinlichkeit, dass ein Knoten während <strong>de</strong>s Spannbaumaufbaus<strong>de</strong>n Vater in einem bekannten Spannbaum durch einen an<strong>de</strong>ren, besseren ersetzt. Dies führtin Kombination mit vielen Senken, die einen Spannbaum aufbauen, zu erhöhtem Funkverkehrund Kollisionen. Die vergleichsweise starken Schwankungen und Unterschie<strong>de</strong>zwischen <strong>de</strong>n einzelnen Darstellungen in <strong>de</strong>n Abbildungen 6.1(c)–6.1(f) – hervorgerufendurch die geringe statistische Grundlage – verhin<strong>de</strong>rn jedoch präzisere Analysen.Die Ergebnisse und Resultate dieses Abschnittes gelten im Wesentlichen auch <strong>für</strong> dieSimulationen mit 20 bzw. 100 Knoten. Allerdings gibt es einige Beson<strong>de</strong>rheiten. Bei100 Knoten liegen die Erfolgsquoten beim Fluten immer über <strong>de</strong>nen <strong>de</strong>s Spannbaum-Routings. Aufgrund <strong>de</strong>r hohen Netzdichte ergeben sich viele asymmetrische Einträge in<strong>de</strong>n Nachbarschaftstabellen, d.h. es existieren nur wenige bidirektionale Nachbarn (vgl.Tabelle 6.2). Dadurch sind die vom Verfahren generierten Spannbäume sehr klein (vgl. Abbildung6.2(c)) und damit auch die Erfolgsquote. Beim Fluten liegt sie im Mittel zwischen10 und 20 Prozent, beim Spannbaum-Routing und einer mehr als zwanzigprozentigen Senkendichtesogar unter 10 Prozent. Die Resultate <strong>für</strong> 20 Knoten weisen starke Streuungen49


6 AUSWERTUNGauf, insbeson<strong>de</strong>re bei geringen Senkendichten. Bei einer Senkendichte von 5 Prozent existiertin einem Netz mit 20 Knoten nur eine Senke. Alle Werte beziehen sich dann auf dieseeine Senke und beruhen nicht auf <strong>de</strong>r Mittelung mehrerer Senken. Die Ergebnisse dieserSimulationen sind daher nur schwer auswertbar.6.2.2 SpannbaumgrößenFür das Einsammeln <strong>de</strong>r Daten mittels Spannbaum-Routing ist die Größe <strong>de</strong>r Bäume einentschei<strong>de</strong>n<strong>de</strong>r Faktor, so dass dieser näher untersucht wer<strong>de</strong>n soll. Die Abbildungen 6.2(a)sowie 6.2(c) zeigen die Spannbaumgrößen im Verhältnis zu <strong>de</strong>n theoretischen Maxima ineinem Netz mit 40 bzw. 100 Knoten bei 15 m Einzugsbereich <strong>de</strong>r Senken. Die Analyse <strong>de</strong>rBaumgrößen beruht auf nur 6 Werten pro Experiment, so dass sich nur näherungsweise,qualitative Schlüsse ziehen lassen.Der Kurvenverlauf in Abbildung 6.2(a) zeigt Ähnlichkeiten zu Abbildung 6.1(c): Bei zunehmen<strong>de</strong>rSenkendichte wer<strong>de</strong>n die Spannbäume bzw. Erfolgsquoten kleiner. Dies lässtzunächst auf mehr Paketkollisionen schließen, ist allein jedoch nicht die gesuchte Erklärung.Durch die Limitierung <strong>de</strong>r maximal pro Knoten verwaltbaren Spannbäume kann dietheoretische Maximalgröße bei hoher Senkendichte nicht erreicht wer<strong>de</strong>n. Die möglichenBaumgrößen in Abhängigkeit <strong>de</strong>r Senkendichte und Größe <strong>de</strong>r Einzugsbereiche zeigen dieAbbildungen 6.3(a) und 6.3(b) <strong>für</strong> 40 bzw. 100 Knoten. Dieses Wissen kann man bei <strong>de</strong>rBetrachtung <strong>de</strong>r relativen Baumgrößen anwen<strong>de</strong>n. Das Ergebnis <strong>für</strong> 15 m Einzugsbereichund 40 sowie 100 Knoten zeigen die Abbildungen 6.2(b) bzw. 6.2(d). Sie <strong>de</strong>uten an, dassunter Berücksichtigung <strong>de</strong>r technischen Limitierungen die Senkendichte keinen entschei<strong>de</strong>n<strong>de</strong>n,negativen Einfluss auf die Spannbaumgröße hat. Bei 4 Hops erreichen die Bäumein einem Netz mit 40 Knoten, 15 m Einzugsbereich und einer hun<strong>de</strong>rtprozentigen Senkendichteunter Anwendung <strong>de</strong>r o.g. Betrachtungen eine relative Baumgröße von 80 Prozentgegenüber 40 Prozent in Abbildung 6.2(b). Bei <strong>de</strong>r Analyse eines Netzes mit 100 Knotenin Abbildung 6.2(d) wirkt sich die Erkenntnis aus Abbildung 6.3(b) auch bei geringerenDichten aus. Ein entschei<strong>de</strong>n<strong>de</strong>s Resultat aus diesen Analysen besteht darin, dass beimAufbau eines Sensornetzes zum Einsammeln von Daten mittels Spannbaum-Routing unbedingtdarauf zu achten ist, ob die Senken überhaupt alle Daten einsammeln können. Insbeson<strong>de</strong>reist zu berücksichtigen, dass ein Knoten nur einer beschränkten Anzahl Senkenzum Einsammeln seiner Daten zur Verfügung steht.Die in <strong>de</strong>n vorangegangenen Absätzen gewonnenen Erkenntnisse erklären jedoch nicht,warum die relative Baumgröße bei 100 Knoten unter 20 Prozent liegt (vgl. Abbildung 6.2(c)),<strong>de</strong>nn auch unter Betrachtung <strong>de</strong>r Ergebnisse aus Abbildung 6.3(b) steigen die relativen50


6.2 ERGEBNISSEBaumgrößen nicht über rund 40 Prozent (vgl. Abbildung 6.2(d)). Paketkollisionen schei<strong>de</strong>nals zentrale Ursache aus, weil dann in Netzen mit geringer Senkendichte große Spannbäumeexistieren müssten. Es zeigt sich, dass bereits die Ausgangssituation zum Aufbau <strong>de</strong>rBäume schlecht ist. Tabelle 6.2 <strong>de</strong>utet in Kombination mit <strong>de</strong>r geringen Größe <strong>de</strong>r Nachbarschaftstabellen(vgl. Abschnitt 6.1.2) bereits an, dass nur wenige bidirektionale Linkszustan<strong>de</strong>kommen.Dies liegt am verwen<strong>de</strong>ten Nachbarschaftsprotokoll, das bidirektionale Links i<strong>de</strong>ntifiziert.Ist eine Tabelle kleiner als die Anzahl <strong>de</strong>r potentiellen Nachbarn eines Knoten, fin<strong>de</strong>tnur eine Teilmenge dieser Knoten in <strong>de</strong>r Tabelle Platz. Bei dichten Netzen tritt dieser Fallhäufig auf und führt dazu, dass ein Knoten einen Nachbarn nicht als solchen erkennen kann,weil er nicht in <strong>de</strong>ssen Tabelle eingetragen ist. Eine Analyse <strong>de</strong>r Protokolldateien belegt,dass in <strong>de</strong>n Netzen mit 100 Knoten im Mittel nur rund 100 bidirektionale Links existieren,d.h. je<strong>de</strong>r Knoten im Schnitt nur 2 Nachbarn hat. Für <strong>de</strong>n Spannbaumaufbau be<strong>de</strong>utetdies, dass ein Knoten bei Erhalt einer Spannbaum-Nachricht diese im Mittel nur an einenNachbarn weiterleiten kann. In einem Netz mit 40 Knoten hingegen liegt die Anzahl vonNachbarn pro Knoten durchschnittlich in einer Größenordnung von 4 bis 5. Daraus folgtdie Erkenntnis, dass zum erfolgreichen Einsatz <strong>de</strong>s Spannbaum-Routings in dichten Netzeneine Lösung <strong>für</strong> diese Nachbarschaftsproblematik gefun<strong>de</strong>n wer<strong>de</strong>n muss.Die Beobachtungen in <strong>de</strong>n vorangegangenen Absätzen legen nahe, die Erfolgsquote ausAbschnitt 6.2.1 nicht nur in Bezug auf das theoretische Maximum zu betrachten, son<strong>de</strong>rnaußer<strong>de</strong>m einen Vergleich in Bezug auf die tatsächlich erreichten Spannbaumgrößen anzustellen.Eine solche Auswertung zeigen die Abbildungen 6.4(a) und 6.4(b) <strong>für</strong> das proaktivebzw. <strong>für</strong> das aktive Spannbaum-Routing exemplarisch anhand von 40 Knoten und einemEinzugsbereich von 15 m. Im Vergleich zu <strong>de</strong>n Ergebnissen aus Abbildung 6.1 zeigt sicheine <strong>de</strong>utlich geringere Abhängigkeit von <strong>de</strong>r Senkendichte. Dies belegt, dass mit <strong>de</strong>m indieser Arbeit entwickelten Spannbaum-Routing prinzipiell eine hohe Erfolgsquote erzieltwer<strong>de</strong>n kann, sofern die Bäume eine hohe relative Größe erreichen.6.2.3 DatenverkehrNeben <strong>de</strong>r Erfolgsquote in Abschnitt 6.2.1 ist auch das Funkdatenvolumen <strong>de</strong>s Netzes einewichtige Charakteristik <strong>de</strong>r verschie<strong>de</strong>nen Verfahren, da dieses einen Rückschluss auf dieverbrauchte Energie <strong>de</strong>r Knoten zulässt. Abbildung 6.5 zeigt <strong>de</strong>n Aufwand pro eingesammeltemDatum – einmal gemessen in versen<strong>de</strong>ten Paketen und einmal in Byte.Beim Fluten hängt die Anzahl Pakete und das hiermit verbun<strong>de</strong>n<strong>de</strong> Datenvolumen von<strong>de</strong>r Dichte <strong>de</strong>s Netzes ab. Abbildung 6.5(a) zeigt dies anschaulich. Diese Beobachtung51


6 AUSWERTUNGlässt sich wie folgt begrün<strong>de</strong>n: Beim Fluten verän<strong>de</strong>rn sich das Datengesamtvolumen unddie Anzahl verschickter Pakete nicht in Abhängigkeit <strong>de</strong>r Senkendichte, weil das Verfahrenunabhängig hiervon funktioniert. Bei hoher Senkendichte steigt jedoch die Menge eingesammelterDaten. Folglich erhöht sich die Erfolgsquote gemäß Abschnitt 6.2.1. Die Kurvein Abbildung 6.5(a) belegt dies: Bei einer Verdopplung <strong>de</strong>r Senkendichte erfolgt eine Halbierung<strong>de</strong>r Paketmenge pro eingesammeltem Datum. Die Menge verschickter Bytes inAbbildung 6.5(b) besitzt <strong>de</strong>nselben Verlauf. Es lässt sich ablesen, dass pro Paket ungefähr25 Byte verschickt wer<strong>de</strong>n. Dies entspricht einer mittleren Aggregation von rund 1,5 Datenpro Paket. Eine Untersuchung <strong>de</strong>r Ursache <strong>für</strong> diesen geringen Aggregationsgrad konnteaus zeitliche Grün<strong>de</strong>n nicht durchgeführt wer<strong>de</strong>n.Die Anzahl verschickter Pakete pro eingesammeltem Datum ist beim Spannbaum-Routing fast konstant (vgl. Abbildungen 6.5(c) und 6.5(e)). Die leichte Zunahme bei steigen<strong>de</strong>rSenkendichte lässt sich durch mehr Paketkollisionen erklären, die beim Einsammelneine höhere Zahl von Wie<strong>de</strong>rholungen verursachen. Da sowohl die Erfolgsquote alsauch die Baumgrößen mit zunehmen<strong>de</strong>r Senkendichte ungefähr in gleichem Maße zunehmen,erscheint diese Beobachtung plausibel. Die größere Anzahl verschickter Pakete beimaktiven Ansatz liegt am zusätzlichen Versand <strong>de</strong>r Sammel-Nachrichten (vgl. Tabelle 6.3).Während die Hopzahl beim proaktiven Ansatz einen kleinen Einfluss auf das Verhaltenin Abbildung 6.5(c) hat, ist sie beim aktiven Anfor<strong>de</strong>rn in Abbildung 6.5(e) stärker ausgeprägt.Diese Verstärkung ist ebenfalls in <strong>de</strong>r Verwendung <strong>de</strong>r Sammel-Nachrichten begrün<strong>de</strong>t.Der Umstand, dass beim aktiven Anfor<strong>de</strong>rn bei 2 und 3 Hops keine Verän<strong>de</strong>rung<strong>de</strong>r relativen Paketzahl auftritt, ließ sich nicht klären, weil die Auswertungen bei einemEinzugsgebiet von 30 Metern dieses Verhalten nicht bestätigen. Die Menge verschickterBytes in <strong>de</strong>n Abbildungen 6.5(d) unf 6.5(f) ist ungefähr proportional zur Paketzahl. Diehier präsentierten Ergebnisse lassen sich auch auf die Experimente mit 20 und 100 Knotenübertragen.Die bisherigen Auswertungen berücksichtigen noch nicht <strong>de</strong>n Aufwand zur Bestimmung<strong>de</strong>r Nachbarschaften und zum Aufbau <strong>de</strong>r Spannbäume. Die hierzu verwen<strong>de</strong>ten Verfahrenwur<strong>de</strong>n auch nicht auf Effizienz in Form von geringem Funkverkehr optimiert. Eine nähereUntersuchung dieser Thematik ist daher nicht Bestandteil dieser Arbeit.6.2.4 Fazit und KonsequenzenEs hat sich gezeigt, dass keines <strong>de</strong>r eingesetzten Verfahren in seiner jetzigen Form eineoptimale Lösung <strong>für</strong> das Einsammeln <strong>de</strong>r Daten zum Generieren von Ereignismusterndarstellt. In Netzen mit geringer Knoten- und Senkendichte bietet das angewen<strong>de</strong>te Spann-52


6.3 ANMERKUNGEN UND EINSCHRÄNKUNGENbaumverfahren eine höhere Erfolgsquote. Bei hoher Netzdichte hingegen ist es wegen <strong>de</strong>rungelösten Nachbarschaftsproblematik und daraus resultieren<strong>de</strong>n kleinen Spannbäumenkaum einsetzbar. Allerdings liefert hier auch das Fluten schlechte Werte. In Netzen geringerKnoten- aber hoher Senkendichte zeigt sich das Fluten als bessere Lösung. DerSpannbaum-Ansatz erweist sich hier insbeson<strong>de</strong>re wegen <strong>de</strong>r Limitierung <strong>de</strong>r maximal aufeinem Knoten verwaltbaren Spannbäume als die schlechtere Wahl.Bezüglich <strong>de</strong>r Funk- und in eingeschränkter Weise auch <strong>de</strong>r Energieeffizienz lässt sichfeststellen, dass sich das Spannbaum-Verfahren bis zu einer Senkendichte von rund 20 Prozenteffizienter darstellt. Im Bereich von 20–50 Prozent Senkendichte ist das Fluten offenbareffektiver, weil pro eingesammeltem Datum weniger Bytes verschickt wer<strong>de</strong>n, allerdingshat das Spannbaum-Verfahren in diesem Bereich eine höhere Erfolgsquote. Ab einerSenkendichte von über 50 Prozent ist das Fluten in bei<strong>de</strong>n Belangen effektiver bzw. erfolgreicher.Diese Aussagen berücksichtigen nicht <strong>de</strong>n Aufwand, <strong>de</strong>r zum Erstellen <strong>de</strong>rSpannbäume und Nachbarschaften notwendig ist.Bei <strong>de</strong>n Spannbaumansätzen lassen sich zwei weitere wichtige Aussagen festhalten:Zum einen liefert <strong>de</strong>r aktive Ansatz erwartungsgemäß eine etwas schlechtere Erfolgsquote.Zum an<strong>de</strong>ren verursacht er einen höheren Funkverkehr. Der Ansatz verspricht damit nurdann eine bessere Energieeffizienz, wenn nur selten Daten von <strong>de</strong>n Senken eingesammeltwer<strong>de</strong>n müssen. Zu genaueren Aussagen diesbezüglich sind weitere Untersuchungen notwendig,insbeson<strong>de</strong>re solche, die ein asynchrones Einsammeln <strong>de</strong>r Daten durch die Senkenrealisieren. In diesem Fall lässt sich eine etwas höhere Erfolgsquote erwarten, weil wenigerKollisionen zu erwarten sind.Die Tatsache, dass keines <strong>de</strong>r Verfahren in <strong>de</strong>r Lage ist, alle Daten aus <strong>de</strong>r Nachbarschafteinzusammeln, birgt <strong>für</strong> die Applikation aus Kapitel 2 folgen<strong>de</strong> Konsequenzen: Beim Generierenund Evaluieren von Ereignismustern muss die z.T. geringe statistische Grundlagebei <strong>de</strong>r Berechnung berücksichtigt wer<strong>de</strong>n. Zum an<strong>de</strong>ren kann keine klare Aussage bezüglich<strong>de</strong>r Häufigkeitspartitionen getroffen wer<strong>de</strong>n, weil hierzu alle Daten eingesammeltwer<strong>de</strong>n müssten.6.3 Anmerkungen und EinschränkungenTinyViz hat sich als einfach zu handhaben<strong>de</strong> Plattform zur Simulation von Sensornetz-Applikationen, die <strong>für</strong> reale Netze und TinyOS konzipiert sind, präsentiert. Die Ergebnissesind in weiten Teilen nachvollziehbar und geben gute Anhaltspunkte zum Verhalten<strong>de</strong>r Applikationen in einem realen Netz. Eine einzelne Simulation benötigt jedoch bereitsbei 100 Knoten und 600 s Simulationszeit auf einem Pentium D mit 3,4 Ghz und 2 Gb53


6 AUSWERTUNGKnoten 20 40 60 80 100Zeit 9:08 Min. 19:32 Min. 29:47 Min. 40:53 Min. 52:02 Min. Tabelle 6.4: Benötigte reale Zeit in Abhängigkeit <strong>de</strong>r Knotenanzahl <strong>für</strong> einen 600 sTinyViz-Simulationsdurchlauf mit FlutenFlutenSpannbaum(proaktiv)Spannbaum(aktiv)TOSSIM 18:51 Min. 18:54 Min. 19:19 Min.TinyViz 19:32 Min. 19:49 Min. 21:20 Min. Tabelle 6.5: Vergleich <strong>de</strong>r Ausführungszeiten zwischen TOSSIM und TinyViz bei 40 Knotenund 600 s SimulationszeitRAM rund 50 Minuten. Die Werte aus Tabelle 6.4 legen dabei einen linearen Zusammenhangzwischen benötigter Zeit und und simulierten Knoten nahe. Die Vermutung, dass dasin Java implementierte TinyViz eine <strong>de</strong>utliche Verlangsamung <strong>de</strong>r TOSSIM-Simulationenverursacht, hat sich in Bezug auf die Messungen in Tabelle 6.5 nicht bestätigt.Die langen Simulationszeiten erwiesen sich in <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit als problematisch,weil durch die Vielzahl von Parameter-Kombinationen nur wenige Simulationen proKombination möglich waren. Eine verlässliche statistische Grundlage <strong>de</strong>r Messwerte konnteso nicht erzielt wer<strong>de</strong>n. Aus zeitlichen Grün<strong>de</strong>n war es damit außer<strong>de</strong>m nicht möglich,weitere Simulationen mit variierten Knotenanordnungen, mehr Knoten o<strong>de</strong>r an<strong>de</strong>ren Senkendichtendurchzuführen. Die in Abschnitt 6.2 präsentierten Ergebnisse sind damit nurvergleichsweise vage Anhaltspunkte.Eine umfassen<strong>de</strong> Auswertung <strong>de</strong>r mit PowerTOSSIM generierbaren Energiestatistikenwar aus zeitlichen Grün<strong>de</strong>n lei<strong>de</strong>r nicht mehr möglich. Eine stichprobenartige Analysescheiterte an einem internen Fehler <strong>de</strong>s PowerTOSSIM-Skripts, <strong>de</strong>r nicht behoben wer<strong>de</strong>nkonnte.Bei <strong>de</strong>r Auswertung <strong>de</strong>r Simulationen hat sich gezeigt, dass viele Empfangsbestätigungenbeim Einsammeln <strong>de</strong>r Daten mittels Spannbaum-Routing verloren gegangen sind.Auch die empirisch festgelegte Anzahl an Wie<strong>de</strong>rholungen beim Spannbaumaufbau <strong>de</strong>utetauf viele Paketverluste hin. Es wäre somit interessant, dieselben Applikationen in einemrealen Sensornetz zu testen, um einerseits die Effizienz in realen Netzen zu beobachten undan<strong>de</strong>rerseits einen zuverlässigen Eindruck über die Aussagekraft <strong>de</strong>r Simulationsergebnissezu gewinnen.54


6.3 ANMERKUNGEN UND EINSCHRÄNKUNGEN(a) Fluten: 40 Kn., 15 m(b) Fluten: 40 Kn., 30 m(c) Proaktives Spannbaum-Routing: 40 Kn., 15 m(d) Proaktives Spannbaum-Routing: 40 Kn., 30 m(e) Aktives Spannbaum-Routing: 40 Kn., 15 m(f) Aktives Spannbaum-Routing: 40 Kn., 30 m Abbildung 6.1: Erfolgsquote beim Einsammeln <strong>de</strong>r Daten bzgl. <strong>de</strong>r Einzugsbereiche55


6 AUSWERTUNG(a) Baumgröße: 40 Kn., 15 m(b) Baumgröße: 40 Kn., 15 m(c) Baumgröße: 100 Kn., 15 m(d) Baumgröße: 100 Kn., 15 m Abbildung 6.2: Relative Baumgrößen einmal in Bezug auf <strong>de</strong>n Einzugsbereich (links) un<strong>de</strong>inmal unter Berücksichtigung <strong>de</strong>r Beschränkung aus Tabelle 6.3 bzgl. <strong>de</strong>r verwaltbarenBäume pro Knoten56


6.3 ANMERKUNGEN UND EINSCHRÄNKUNGEN(a) Mögliche relative Baumgrößen: 40 Kn.(b) Mögliche relative Baumgrößen: 100 Kn. Abbildung 6.3: Mögliche relative Baumgrößen durch Limitierungen gemäß Tabelle 6.3(a) Proaktives Spannbaum-Routing: 40 Kn., 15 m(b) Aktives Spannbaum-Routing: 40 Kn., 15 m Abbildung 6.4: Erfolgsquote beim Einsammeln <strong>de</strong>r Daten bzgl. <strong>de</strong>r Spannbaumgrößen57


6 AUSWERTUNG(a) Fluten: 40 Kn., 15 m(b) Fluten: 40 Kn., 15 m(c) Proaktives Spannbaum-Routing: 40 Kn., 15 m(d) Proaktives Spannbaum-Routing: 40 Kn., 15 m(e) Aktives Spannbaum-Routing: 40 Kn., 15 m(f) Aktives Spannbaum-Routing: 40 Kn., 15 m Abbildung 6.5: Verschickte Pakete (links) und Byte (rechts) pro eingesammeltem Datum58


Kapitel 7ZusammenfassungDer Einsatz drahtloser Sensornetze hat sich in <strong>de</strong>n letzten Jahren verän<strong>de</strong>rt: Erste Applikationenbasierten auf <strong>de</strong>m Messen von Daten durch Sensorknoten, die diese dann an eineeinzige Senke schickten. Von dort gelangten die Daten auf einen PC, <strong>de</strong>r dann die Auswertungübernahm. Viele mo<strong>de</strong>rne Anwendungen setzen auf <strong>de</strong>n Datenaustausch zwischenKnoten o<strong>de</strong>r verwen<strong>de</strong>n mehrere Senken, die Daten aus einer lokalen Umgebung einsammelnund autonom verarbeiten.Der Überblick zu aktuellen Ansätzen zur lokalen Datenaggregation in drahtlosen Sensornetzenhat gezeigt, dass noch nicht <strong>für</strong> je<strong>de</strong> <strong>de</strong>nkbare Applikation eine passen<strong>de</strong> Programmierabstraktionexistiert, welche die Daten in einer lokalen Umgebung effizient einsammelt.Dies ist zum Beispiel <strong>für</strong> das Generieren häufig auftreten<strong>de</strong>r verteilter räumlicherEreignismuster in drahtlosen Sensornetzen <strong>de</strong>r Fall. Aus diesem Anlass beschäftigt sichdie vorliegen<strong>de</strong> Arbeit mit einer ersten Entwicklung und Analyse von Routing-Verfahren,die genau auf diesen Anwendungsfall zugeschnitten sind.Beim Design dieser Routing-Algorithmen wer<strong>de</strong>n bekannte Verfahren eingesetzt: Flutenund Spannbaum-Routing. Während das erste Verfahren einfach zu implementieren ist, abervergleichweise wenige Möglichkeiten zur Aggregation bietet, erfor<strong>de</strong>rt das zweite einigenZusatzaufwand wie z.B. die Anwendung von Nachbarschaftsprotokollen und das Aufbauen<strong>de</strong>r Spannbäume. Da<strong>für</strong> ergeben sich gute Aggregationsmöglichkeiten. Bei<strong>de</strong> Variantenunterstützen das periodische (proaktive) Einsammeln von Daten durch die Senken, in<strong>de</strong>mdie Knoten ihre Daten in Richtung <strong>de</strong>r Senken schicken. Der Spannbaum-Ansatz bietethierüber hinaus eine gute Möglichkeit, Daten nur bei Bedarf (aktiv) einzusammeln. DerBaum wird in diesem Fall sowohl zum Benachrichtigen <strong>de</strong>r Knoten in <strong>de</strong>r lokalen Umgebung<strong>de</strong>r Senke als auch zum Einsammeln <strong>de</strong>r Daten verwen<strong>de</strong>t.Ein zentraler Aspekt <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit ist die Anpassung <strong>de</strong>r genannten, grundlegen<strong>de</strong>nVerfahren an die Beson<strong>de</strong>rheiten <strong>de</strong>s Einsammelns lokaler Daten <strong>für</strong> das Generierenvon Ereignismustern. Die entstehen<strong>de</strong>n Algorithmen wer<strong>de</strong>n dabei im Detail be-59


7 ZUSAMMENFASSUNGschrieben. Der zweite Schritt ist die Implementierung dieser Algorithmen als TinyOS-Applikationen. Damit bietet sich einerseits eine einfache Analyse-Möglichkeit in Formvon Simulationen mit TOSSIM an, an<strong>de</strong>rerseits kann <strong>de</strong>r so entstehen<strong>de</strong> Co<strong>de</strong> unmittelbarin realen Sensornetzen eingesetzt wer<strong>de</strong>n.Zur Analyse <strong>de</strong>r in dieser Arbeit entwickelten Algorithmen wer<strong>de</strong>n Simulationen mit<strong>de</strong>n TinyOS-Implementierungen durchgeführt. Als Fehlermo<strong>de</strong>ll beim Paketversand wirddas von TOSSIM bereitgestellte, empirische Mo<strong>de</strong>ll verwen<strong>de</strong>t. Bei <strong>de</strong>n untersuchten Parameternhan<strong>de</strong>lt es sich um die Dichte <strong>de</strong>s Netzes und <strong>de</strong>r Senken, die Größe ihres Einzugsgebietsund die maximale Hopanzahl, die zum Routing verwen<strong>de</strong>t wer<strong>de</strong>n darf.Die Auswertungen haben dabei gezeigt, dass aufgrund von Paketkollisionen insbeson<strong>de</strong>rein Netzen hoher Dichte nur ein kleiner Teil <strong>de</strong>r verfügbaren Daten von <strong>de</strong>n Senkeneingesammelt wer<strong>de</strong>n kann. Selbst bei wenigen Senken in Netzen niedriger Dichte wer<strong>de</strong>nwegen Paketverlusten nur Erfolgsquoten von 70–80 Prozent erreicht. Mit steigen<strong>de</strong>rHopzahl kristallisiert sich eine bessere Erfolgsquote beim Spannbaum-Routing gegenüber<strong>de</strong>m Fluten heraus. Dabei ist zu beobachten, dass hierzu mehr Funkverkehr notwendig ist.Einerseits müssen Paketverluste durch Wie<strong>de</strong>rholungen kompensiert wer<strong>de</strong>n, weil im Gegensatzzum Fluten keine Redundanz durch mehrere mögliche Pfa<strong>de</strong> existiert. An<strong>de</strong>rerseitsbenötigt das Aufbauen <strong>de</strong>r Bäume bereits <strong>de</strong>n Versand vieler Funk-Nachrichten. Für dasaktive Spannbaum-Routing ist festzuhalten, dass sich Paketverluste bereits beim Anfor<strong>de</strong>rn<strong>de</strong>r Daten auswirken, so dass die Erfolgsquote hier geringer ausfällt als beim proaktivenVerfahren. Das Verfahren lohnt sich hinsichtlich <strong>de</strong>r Energieeffizienz erst, wenn die Senkennur selten Daten einsammeln. Schließlich verursacht das Einsammeln weiteren Funkverkehr.Die geringe Ausbeute beim Fluten ist im Wesentlichen auf Paketkollisionen beim Einsammeln<strong>de</strong>r Daten zurückführbar. Der Spannbaum-Ansatz hingegen lei<strong>de</strong>t hauptsächlichdarunter, dass in dichten Netzen nur kleine Spannbäume entstehen. Dies liegt jedoch nurnebensächlich an Paketkollisionen o<strong>de</strong>r -verlusten, <strong>de</strong>nn diese wer<strong>de</strong>n durch Wie<strong>de</strong>rholungen<strong>de</strong>r Pakete häufig kompensiert. Das Problem liegt im Wesentlichen in <strong>de</strong>r Bestimmung<strong>de</strong>r Nachbarschaften, die dann zum Aufbau <strong>de</strong>r Bäume verwen<strong>de</strong>t wer<strong>de</strong>n. Im proaktivenAnsatz ließe sich diese Problematik durch <strong>de</strong>n Verzicht auf die Bestimmung bidirektionalerNachbarschaften umgehen. Allerdings bedürfte es dann eingehen<strong>de</strong>r Überlegungen zurin dieser Arbeit eingesetzten Spannbaumoptimierung durch Link-Qualitäten.Die Ergebnisse dieser Arbeit bereiten <strong>de</strong>n Grund <strong>für</strong> weitere Forschungen auf diesemGebiet. Zu untersuchen sind beispielsweise Metho<strong>de</strong>n, welche die beschriebene Nachbarschaftsproblematiklösen. Dies ist insbeson<strong>de</strong>re <strong>für</strong> Sensornetze hoher Dichte von Relevanz.Des Weiteren bedarf es einer Steigerung <strong>de</strong>r Baumgrößen, um die Datenausbeu-60


te zu verbessern, sowie <strong>de</strong>r Beantwortung <strong>de</strong>r Frage, wie sich <strong>de</strong>r Funkverkehr beimSpannbaum-Routing reduzieren lässt. Hieran schließt sich die Suche nach effizienten Algorithmenzum Aufbau von Spannbäumen an. Diese Thematik wur<strong>de</strong> in <strong>de</strong>r vorliegen<strong>de</strong>nArbeit nicht betrachtet, spielt aber <strong>für</strong> <strong>de</strong>n Einsatz <strong>de</strong>s Spannbaum-Routings eine entschei<strong>de</strong>n<strong>de</strong>Rolle. In diesem Kontext wäre ggf. auch die Entwicklung und Untersuchung einesadaptiven Verfahrens von Vorteil. Ein entsprechen<strong>de</strong>r Algorithmus wür<strong>de</strong> verhin<strong>de</strong>rn, dassein Spannbaum aufgrund von sich än<strong>de</strong>rn<strong>de</strong>n Nachbarschaften vollständig neu aufgebautwer<strong>de</strong>n müsste. Ein vollständiger Neuaufbau wäre mit vergleichsweise hohem Aufwandverbun<strong>de</strong>n, so dass eine automatische und lokale Reaktion auf <strong>de</strong>rartige Än<strong>de</strong>rungen attraktiverscheint.61


7 ZUSAMMENFASSUNG62


Literaturverzeichnis[Beu06][CMP06][CMP07][FR05][FR06][GLCB03]BEUTEL, JAN: Fast-Prototyping Using the BTno<strong>de</strong> Platform. In: Proceedings of theconference on Design, automation and test in Europe (DATE ’06), Seiten 977–982,März 2006.CICIRIELLO, P., L. MOTTOLA und G. P. PICCO: Building Virtual Sensors and Actuatorsover Logical Neighborhoods. In: Proceedings of the international workshopon Middleware for sensor networks (MidSens ’06), Seiten 19–24, 2006.CICIRIELLO, P., L. MOTTOLA und G. P. PICCO: Efficient Routing from MultipleSources to Multiple Sinks in Wireless Sensor Networks. In: Proceedings of the 4thEuropean Conference on Wireless Sensor Networks (EWSN ’07), Januar 2007.FRANK, C. und K. RÖMER: Algorithms for Generic Role Assignment in WirelessSensor Networks. In: Proceedings of the 3rd International Conference on Embed<strong>de</strong>dNetworked Sensor Systems (SenSys ’05), November 2005.FRANK, C. und K. RÖMER: Solving Generic Role Assignment Exactly. In: Workshopon Parallel and Distributed Real-Time Systems (WPDRTS ’06) / IEEE InternationalParallel & Distributed Processing Symposium (IPDPS ’06), April 2006.GAY, D., P. LEVIS, D. CULLER und E. BREWER: nesC 1.1 Language ReferenceManual, Mai 2003.[GLvB + 03] GAY, D., P. LEVIS, R. VON BEHREN, M. WELSH, E. BREWER und D. CULLER: ThenesC Language: A Holistic Approach to Networked Embed<strong>de</strong>d Systems. In: Proceedingsof the ACM SIGPLAN 2003 conference on Programming language <strong>de</strong>sign andimplementation (PLDI ’03), Seiten 1–11, 2003.[HHSH06][HSW + 00][IGE00][KS06]HARTUNG, C., R. HAN, C. SEIELSTAD und S. HOLBROOK: FireWxNet: A Multi-Tiered Portable Wireless System for Monitoring Weather Conditions in Wildland FireEnvironments. In: Proceedings of the 4th international conference on Mobile systems,applications and services (MobiSys ’06), Seiten 28–41, 2006.HILL, J., R. SZEWCZYK, A. WOO, S. HOLLAR, D. CULLER und K. PISTER: SystemArchitecture Directions for Networked Sensors. In: Architectural Support for ProgrammingLanguages and Operating Systems, Seiten 93–104, 2000.INTANAGONWIWAT, C., R. GOVINDAN und D. ESTRIN: Directed Diffusion: A Scalableand Robust Communication Paradigm for Sensor Networks. In: Proceedings ofthe 6th annual international conference on Mobile computing and networking (Mobi-Com ’00), Seiten 56–67, 2000.KIM, K.-H. und K. G. SHIN: On Accurate Measurement of Link Quality in Multi-hopWireless Mesh Networks. In: Proceedings of the 12th annual international conferenceon Mobile computing and networking (MobiCom ’06), Seiten 38–49, 2006.63


LITERATURVERZEICHNIS[Lev06] LEVIS, P.: TinyOS Programming, Juni 2006.[LL03] LEVIS, P. und N. LEE: TOSSIM: A Simulator for TinyOS Networks, September 2003.[LLWC03][Mat][Mat05][MD02][MP06][MPR + 05][MPS + 02][OTL04][PHC04]LEVIS, P., N. LEE, M. WELSH und D. CULLER: TOSSIM: Accurate and ScalableSimulation of Entire TinyOS Applications. In: Proceedings of the 1st internationalconference on Embed<strong>de</strong>d networked sensor systems (SenSys ’03), Seiten 126–137,2003.MATTERN, F.: Allgegenwärtige Informationsverarbeitung – Technologietrends undAuswirkungen <strong>de</strong>s Ubiquitous Computing. Erscheint 2007.MATTERN, F.: Die technische Basis <strong>für</strong> das Internet <strong>de</strong>r Dinge. In: FLEISCH, E. undF. MATTERN (Herausgeber): Das Internet <strong>de</strong>r Dinge – Ubiquitous Computing undRFID in <strong>de</strong>r Praxis, Seiten 39–66. Springer-Verlag, 2005.MARINA, M. K. und S. R. DAS: Routing Performance in the Presence of UnidirectionalLinks in Multihop Wireless Networks. In: Proceedings of the 3rd ACM internationalsymposium on Mobile ad hoc networking & computing (MobiHoc ’02), Seiten12–23, 2002.MOTTOLA, L. und G. P. PICCO: Programming Wireless Sensor Networks with LogicalNeighborhoods. In: Proceedings of the 1st international conference on Integratedinternet ad hoc and sensor networks (InterSense ’06), Seite 8, 2006.MARTINEZ, K., P. PADHY, A. RIDDOCH, H. L. R. ONG und J. K. HART: GlacialEnvironment Monitoring Using Sensor Networks. In: Proceedings of the Workshopon Real-World Wireless Sensor Networks (REALWSN ’05), Stockholm, Swe<strong>de</strong>n, Juni2005.MAINWARING, A., J. POLASTRE, R. SZEWCZYK, D. CULLER und J. ANDERSON:Wireless Sensor Networks for Habitat Monitoring. In: ACM International Workshopon Wireless Sensor Networks and Applications (WSNA ’02), Atlanta, Georgia, USA,September 2002.OGIER, R., F. TEMPLIN und M. LEWIS: Topology Dissemination Based on Reverse-Path Forwarding (TBRPF), 2004.POLASTRE, J., J. HILL und D. CULLER: Versatile low power media access for wirelesssensor networks. In: Proceedings of the 2nd international conference on Embed<strong>de</strong>dnetworked sensor systems (SenSys ’04), Seiten 95–107, 2004.[RM03] RÖMER, K. und F. MATTERN: Drahtlose Sensornetze. Informatik Spektrum,26(3):191–194, Juni 2003.[Röm06a]RÖMER, K.: Distributed Mining of Spatio-Temporal Event Patterns in Sensor Networks.In: Euro-American Workshop on Middleware for Sensor Networks (EA-WMS ’06) / International Conference on Distributed Computing in Sensor Systems(DCOSS ’06), Seiten 103–116, Juni 2006.[Röm06b] RÖMER, K.: Drahtlose Sensornetze. Visionen 02/06, Seiten 32–36, Februar 2006.64


LITERATURVERZEICHNIS[SHC + 04][SLR + 05][SPMC04][TGS06][TRV + 05]SHNAYDER, V., M. HEMPSTEAD, B. CHEN, G. W. ALLEN und M. WELSH: Simulatingthe Power Consumption of Large-Scale Sensor Network Applications. In: Proceedingsof the 2nd international conference on Embed<strong>de</strong>d networked sensor systems(SenSys ’04), Seiten 188–200, 2004.SCHILLER, J., A. LIERS, H. RITTER, R. WINTER und T. VOIGT: ScatterWeb - LowPower Sensor No<strong>de</strong>s and Energy Aware Routing. In: Proceedings of the Proceedingsof the 38th Annual Hawaii International Conference on System Sciences - Track 9(HICSS ’05), Januar 2005.SZEWCZYK, R., J. POLASTRE, A. MAINWARING und D. CULLER: Lessons froma Sensor Network Expedition. In: Proceedings of the 1st European Conference onWireless Sensor Networks (EWSN ’04), Januar 2004.TRIGONI, N., A. GUITTON und A. SKORDYLIS: Routing and Processing MultipleAggregate Queries in Sensor Networks. In: Proceedings of the 4th international conferenceon Embed<strong>de</strong>d networked sensor systems (SenSys ’06), Seiten 391–392, 2006.TURAU, V., C. RENNER, M. VENZKE, S. WASCHIK, C. WEYER und M. WITT: TheHeathland Experiment: Results And Experiences. In: Proceedings of the Workshopon Real-World Wireless Sensor Networks (REALWSN ’05), Stockholm, Swe<strong>de</strong>n, Juni2005.[TUHa] SensorNet - Sensor Networks – Project: Heatland Experiment. http://www.<strong>ti5.tu</strong><strong>harburg</strong>.<strong>de</strong>/projects/SensorNet/heathland.html.[TUHb][TWW06][WM04][Woo04][WSBC04][WTC03][XK04]SensorNet - Sensor Networks – Project: Wireless Neighborhood Exploration (WNX).http://www.<strong>ti5.tu</strong>-<strong>harburg</strong>.<strong>de</strong>/projects/SensorNet/wnx.html.TURAU, V., M. WITT und C. WEYER: Analysis of a Real Multi-hop Sensor NetworkDeployment: The Heathland Experiment. In: Proceedings of the 3rd InternationalConference on Networked Sensing Systems (INSS ’06), Chicago, Illinois, USA, Juni2006.WELSH, M. und G. MAINLAND: Programming Sensor Networks Using Abstract Regions.In: Proceedings of the 1st Symposium on Networked Systems Design and Implementation(NSDI ’04), Seiten 29–42, 2004.WOO, A.: A Holistic Approach to Multihop Routing in Sensor Networks. Universityof California, Berkeley, 2004.WHITEHOUSE, K., C. SHARP, E. BREWER und D. CULLER: Hood: A NeighborhoodAbstraction for Sensor Networks. In: Proceedings of the 2nd international conferenceon Mobile systems, applications and services (MobiSys ’04), Seiten 99–110, 2004.WOO, A., T. TONG und D. CULLER: Taming the Un<strong>de</strong>rlying Challenges of ReliableMultihop Routing in Sensor Networks. In: Proceedings of the 1st International Conferenceon Embed<strong>de</strong>d Networked Sensor Systems (SenSys ’03), Seiten 14–27, 2003.XUE, F. und P. R. KUMAR: The Number of Neighbors Nee<strong>de</strong>d for Connectivity ofWireless Networks. Wireless Networks, 10(2):169–181, 2004.65


LITERATURVERZEICHNIS66


Anhang AVerwen<strong>de</strong>te WerkzeugeZum Testen <strong>de</strong>r verschie<strong>de</strong>nen Algorithmen und zur Beurteilung ihrer Leistungsfähigkeitim Kontext <strong>de</strong>r vorgestellten Data-Mining Applikation erweist sich ein Simulator als nützlich.Aufgrund <strong>de</strong>r vielen verän<strong>de</strong>rlichen Parameter und <strong>de</strong>r Größe <strong>de</strong>r untersuchten Netzewären Entwicklung und Test in einem realen Netz mit großem zeitlichen Aufwand verbun<strong>de</strong>n.Zur grundsätzlichen Analyse <strong>de</strong>r vorgestellen Verfahren bietet es sich daher an, einenSimulator einzusetzen, <strong>de</strong>r eine grundsätzliche und realitätsnahe Analyse und Evaluation<strong>de</strong>r getesteten Verfahren ermöglicht.Bei <strong>de</strong>r Wahl eines Simulators ist es somit von großem Interesse, gewisse Anfor<strong>de</strong>rungenbestmöglich zu erfüllen: So sollte es zum einen möglich sein, die zu testen<strong>de</strong>n Algorithmenbei Bedarf auf realen Sensorknoten ohne große Än<strong>de</strong>rungen betreiben zu können. ZumZweiten ist eine realitätsnahe Umsetzung <strong>de</strong>s Verhaltens <strong>de</strong>r Knoten inklusive <strong>de</strong>s Funkverkehrswünschenswert, weil Paketverluste und -kollisionen großen Einfluss auf die Leistungsfähigkeiteines drahtlosen Sensornetzes haben. Insbeson<strong>de</strong>re letztgenannter Aspekthatte bereits in [TRV + 05] einen erheblichen Einfluss auf die Zuverlässigkeit in Bezugauf <strong>de</strong>n Paketerhalt über mehrere Hops hinweg. Diesen Ansprüchen genügt <strong>de</strong>r SimulatorTOSSIM, weil er einerseits TinyOS-Anwendungen ohne Anpassungen ausführen kann undan<strong>de</strong>rerseits <strong>de</strong>n Funk auf <strong>de</strong>r physikalischen Ebene realistisch mo<strong>de</strong>lliert. Hierbei verwen<strong>de</strong>t<strong>de</strong>r Simulator empirisch gewonnene Bitfehlerwahrscheinlichkeiten [LLWC03]. Zu<strong>de</strong>mist TinyOS auf <strong>de</strong>n an <strong>de</strong>r ETH Zürich verwen<strong>de</strong>ten BTNo<strong>de</strong>s lauffähig, was eine Verwendung<strong>de</strong>r implementierten Algorithmen in <strong>de</strong>r tatsächlichen Anwendungsumgebunggemäß [Röm06a] ermöglicht.TOSSIM steht als Abkürzung <strong>für</strong> „TinyOS Simulator“ und ist integraler Bestandteil <strong>de</strong>sTinyOS-Betriebssystem-Pakets [HSW + 00], das <strong>de</strong>n Anspruch vertritt, eine praktische undübersichtliche Bibliothek zur Programmierung von aktuellen Sensorknoten bereitzustellen.TinyOS wur<strong>de</strong> in nesC geschrieben, einer Spezialisierung und Erweiterung <strong>de</strong>r ProgrammierspracheC <strong>für</strong> <strong>de</strong>n Einsatz in <strong>de</strong>r Programmierung von Sensorknoten bzw. ganzen Net-67


A VERWENDETE WERKZEUGEzen. Ein weiterer interessanter Aspekt am TinyOS-Paket ist <strong>de</strong>r visuelle TOSSIM-AufsatzTinyViz, mit <strong>de</strong>m kleinere Netze grafisch betrachtet und analysiert wer<strong>de</strong>n können. DieseAnsammlung von Tools soll im Folgen<strong>de</strong>n näher vorgestellt und ihre Verwendung erläutertwer<strong>de</strong>n.A.1 nesCDie Sprache nesC wur<strong>de</strong> <strong>für</strong> die Programmierung sogenannter eingebetteter Geräte (hierunterfallen z.B. Sensornetze) an <strong>de</strong>r University of California, Berkeley, unter Mitarbeitvon Intel entwickelt und entworfen. Sie ist an die weit verbreitete Sprache C angelehnt undpasst diese gewissermaßen an die Bedürfnisse drahtloser Sensornetze an.Da eingebettete Geräte Einschränkungen bezüglich Energie und Ressourcen unterliegen,stellen sich an ihre Programmierung beson<strong>de</strong>re Design-Kriterien zum Umgang mitdiesen Restriktionen. Ferner zeichnen sich insbeson<strong>de</strong>re Sensorknoten dadurch aus, dasssie ereignisgesteuert arbeiten, also reaktiv funktionieren. Gleichzeitig eignet sich eine Modularisierungbei <strong>de</strong>r Programmierung von drahtlosen Sensorknoten, um portablen Co<strong>de</strong>produzieren zu können, <strong>de</strong>r auf verschie<strong>de</strong>nen Plattformen läuft. nesC setzt insbeson<strong>de</strong>redie bei<strong>de</strong>n letztgenannten Anfor<strong>de</strong>rungen konsequent um.Bei <strong>de</strong>r Programmierung bietet nesC ein System zur Modularisierung, das einzelneKomponenten kapselt. Dies gilt sowohl <strong>für</strong> reale Komponenten wie Hardwarebausteineals auch <strong>für</strong> logische Komponenten wie z.B. die Trennung von Applikation und Routing.Dabei trennt nesC die einzelnen Komponenten in die Schnittstelle (engl. Interface) unddie Module auf, bei <strong>de</strong>nen es sich um die verschie<strong>de</strong>nen Implementierungen einer Schnittstellehan<strong>de</strong>lt. Hierdurch lassen sich spezifische Anpassungen an verschie<strong>de</strong>ne Hardwareumsetzen, so dass eine Anwendung auf diversen Plattformen einsetzbar ist. Dieses Konzeptwird dadurch ermöglicht, dass <strong>für</strong> eine Schnittstelle mehrere Module existieren dürfen.Die tatsächliche Auswahl <strong>de</strong>s passen<strong>de</strong>n Moduls erfolgt entwe<strong>de</strong>r über das Verdrahten(engl. Wiring, s.u.) o<strong>de</strong>r durch <strong>de</strong>n Compiler. Die Auswahl durch <strong>de</strong>n Compiler istdabei <strong>für</strong> die verschie<strong>de</strong>nen Hardware-Plattformen gedacht, das Verdrahten hingegen <strong>für</strong>die Nutzung alternativer Implementierungen bzw. Module. Des Weiteren <strong>de</strong>finieren dieSchnittstellen Kommandos (engl. Command) und Ereignisse (engl. Event). Dabei entsprechendie Kommandos <strong>de</strong>njenigen Schnittstellen-Funktionen, die ein zugehöriges Modulbereitstellen muss. Die Ereignisse hingegen wer<strong>de</strong>n durch ein Modul <strong>de</strong>r entsprechen<strong>de</strong>nSchnittstelle ausgelöst und müssen von <strong>de</strong>njenigem Modul aufgefangen (d.h. implementiert)wer<strong>de</strong>n, welches die Schnittstelle verwen<strong>de</strong>t.68


A.2 TINYOSinterface Timer {command result_t start (char type, uint32_t interval);command result_t stop ();event result_t fired ();} Listing A.1: Ein TinyOS InterfaceEin kleines Beispiel soll die Begrifflichkeiten näher ausführen: Listing A.1 legt dieSchnittstelle eines einfachen Timers fest. Diese bietet die Kommandos start und stopzum Starten und Anhalten eines Timers. Ein Modul, das diese Schnittstelle implementiert,muss damit diese <strong>de</strong>finierten Kommandos bereitstellen – hier also die eben genanntenKommandos start und stop. Gleichzeitig <strong>de</strong>finiert die Schnittstelle ein Ereignis namensfired. Verwen<strong>de</strong>t ein Modul die Schnittstelle Timer, muss es dieses Ereignis verarbeitenkönnen. Obwohl die Ähnlichkeit zur Sprache C offensichtlich ist, gibt es in Bezugauf Kommandos und Ereignisse kleine Unterschie<strong>de</strong> zu herkömmlichen C-Funktionen: Sower<strong>de</strong>n Kommandos mit <strong>de</strong>m vorangestellten Schlüsselwort call aufgerufen, Ereignissemit signal ausgelöst.Eine weitere interessante, wenn auch in dieser Arbeit nicht explizit verwen<strong>de</strong>te, Eigenschaftvon nesC stellt die einfache Realsierung von Nebenläufigkeit dar. Sie ist unmittelbarerBestandteil <strong>de</strong>r Sprachspezifikation. Neben eigenen Tasks, in Form von speziell<strong>de</strong>klarierten Funktionen, existieren wie auch in C Interrupt-Handler zur Behandlung vonHardware-Ereignissen.Neben weiteren kleinen Spezifika erfolgt die generelle Programmierung mit nesC ansonstenwie je<strong>de</strong> an<strong>de</strong>re Umsetzung einer Anwendung in <strong>de</strong>r Sprache C. Ein kleines, jedochvollständiges, Beispiel im Abschnitt A.2 soll ein wenig näher auf die Programmierungmit nesC eingehen. Eine ausführliche Sprach-Referenz sowie eine Vorstellung <strong>de</strong>r Sprachefin<strong>de</strong>n sich unter [GLCB03] respektive [GLvB + 03].A.2 TinyOSBei TinyOS han<strong>de</strong>lt es sich um ein Open-Source Betriebssystem <strong>für</strong> drahtlose Sensornetze,entwickelt an <strong>de</strong>r University of California, Berkeley. Das gesamte System wur<strong>de</strong> in nesCgeschrieben und basiert damit auf <strong>de</strong>ssen Funktionalitäten und Anfor<strong>de</strong>rungen. Im Folgen<strong>de</strong>nsoll ein kleiner Überblick an Hand eines einfachen Beispiels über die Programmierungmit nesC und TinyOS gegeben wer<strong>de</strong>n.Listing A.2 zeigt eine typische TinyOS-Anwendung. Hinter <strong>de</strong>m Schlüsselwort modulefolgt <strong>de</strong>r Name <strong>de</strong>s Moduls. Im zugehörigen Block wer<strong>de</strong>n die vom Modul bereitgestellten69


A VERWENDETE WERKZEUGEmodule App {provi<strong>de</strong>s {interface StdControl;}uses {interface Timer;interface Leds;}}implementation {/* StdControl hat die drei Kommandos init, start und stop. */command result_t StdControl.init () {call Leds.init();return SUCCESS;}command result_t StdControl.start () {return call Timer.start(TIMER_REPEAT, 1000);}command result_t StdControl.stop () {return call Timer.stop();}}/* Die Schnittstelle Timer ruft das Ereignis fired auf */event result_t Timer.fired () {call Leds.redToggle();return SUCCESS;} Listing A.2: Ein TinyOS Modul(gekennzeichnet durch provi<strong>de</strong>s) sowie die verwen<strong>de</strong>ten (gekennzeichnet durch uses)Schnittstellen bekanntgegeben. Weil das Modul alle Kommandos von bereitgestellten sowiealle Ereignisse von verwen<strong>de</strong>ten Schnittstellen enthalten muss, folgen in <strong>de</strong>r Implementierung(implementation) die Kommandos init, start und stop <strong>de</strong>r SchnittstelleStdControl sowie das Ereignis fired <strong>de</strong>s in Abschnitt A.1 vorgestellten Timers.Im letzten Schritt <strong>de</strong>r Programmierung wird nun die Verdrahtung, wie in Listing A.3 gezeigt,vorgenommen. Sie legt fest, welche Module <strong>de</strong>n bereitgestellten und verwen<strong>de</strong>tenSchnittstellen zugeordnet wer<strong>de</strong>n. Ebenso wie bei <strong>de</strong>r Schnittstelle Timer han<strong>de</strong>lt es sichbei StdControl um einen Bestandteil <strong>de</strong>s TinyOS Betriebssystems, das folglich auchdie zugehörigen Module 1 bereitstellt.1 Streng genomen han<strong>de</strong>lt es sich bei TimerC und LedsC um sogenannte Konfigurationen, die hier abernicht näher erläutert wer<strong>de</strong>n sollen70


A.2 TINYOSconfiguration AppC {}implementation {components Main, App, TimerC, LedsC;/* Verdrahtung <strong>de</strong>s Moduls Main */Main.StdControl -> App.StdControl;Main.StdControl -> TimerC.StdControl;}/* Verdrahtung <strong>de</strong>s Moduls App */App.Timer -> TimerC.Timer[unique("Timer")];App.Leds -> LedsC; Listing A.3: Eine TinyOS Verdrahtung Abbildung A.1: nesC Verdrahtung zu Listing A.3, Module dargestellt durch Kreise, Verdrahtungvon Schnittstellen zu Modulen als gerichtete PfeileDie Applikation aus <strong>de</strong>n Listings A.2 und A.3 bewirkt das Blinken <strong>de</strong>r roten LED. DasModul Main sorgt da<strong>für</strong>, dass StdControl.start aller verbun<strong>de</strong>nen Instanzen amAnfang <strong>de</strong>s Programms automatisch aufgerufen wird. Hierdurch wird <strong>de</strong>r Timer gestartet.Er löst periodisch alle 1000 ms aus, was das Umschalten <strong>de</strong>r LED zur Folge hat.TinyOS bietet <strong>de</strong>n Vorteil, diverse Plattformen zu unterstützen. Hierzu zählen unter an<strong>de</strong>remMica-Knoten, BTno<strong>de</strong>s [Beu06] und auch die ESB-Knoten [SLR + 05]. Relevantsind hierbei im Zusammenhang mit <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit insbeson<strong>de</strong>re die bei<strong>de</strong>n letztgenanntenKnoten-Typen: BTno<strong>de</strong>s wer<strong>de</strong>n an <strong>de</strong>r ETH Zürich eingesetzt, ESB-Knotenan <strong>de</strong>r TU Hamburg-Harburg. Wichtiger als die Plattform-Unterstützung jedoch ist dieMöglichkeit, bestehen<strong>de</strong> Applikationen problemlos simulieren zu können. Hierzu bedarfes in <strong>de</strong>r Regel keiner speziellen Anpassung. Das Programm kann direkt als TOSSIM-Anwendung kompiliert und auf <strong>de</strong>m PC ausgeführt wer<strong>de</strong>n. Im Zusammenspiel mit TinyVizist sogar eine grafische, interaktive Simulation möglich.71


A VERWENDETE WERKZEUGEIn <strong>de</strong>r vorliegen<strong>de</strong>n Arbeit wird die TinyOS Version 1.1.15 verwen<strong>de</strong>t. Zwar existiertmittlerweile die Version 2.0, jedoch ist diese sehr neu. Dies be<strong>de</strong>utet einerseits, dass einVergleich mit ähnlichen Arbeiten kaum möglich ist, da diese allesamt in Version 1.1.x implementiertwur<strong>de</strong>n. An<strong>de</strong>rerseits gibt es <strong>für</strong> TinyOS 2.0 zur Zeit <strong>de</strong>r Anfertigung dieserArbeit noch keinen visuellen Simulator wie TinyViz. Zu<strong>de</strong>m verspricht Version 1.1.15 imVergleich zur taufrischen Version 2.0 eine höhere Stabilität und weniger Fehler im Betriebssystemund seinen Bibliotheken.A.3 TOSSIMMit TOSSIM steht <strong>de</strong>m TinyOS-Paket ein mächtiger Simulator zur Seite [LL03, LLWC03].Es han<strong>de</strong>lt sich hierbei um einen diskreten Ereignis-Simulator von TinyOS-Co<strong>de</strong>. Wegen<strong>de</strong>r Modularität und <strong>de</strong>r daraus entstehen<strong>de</strong>n Hardwareabstraktion von TinyOS bzw. nesCkann TinyOS-Co<strong>de</strong> ohne Anpassung direkt <strong>für</strong> eine TOSSIM-Simulation kompiliert wer<strong>de</strong>n.Daher eignet sich TOSSIM neben <strong>de</strong>m Evaluieren und Vergleichen von Algorithmenzu<strong>de</strong>m als geeignetes Werkzeug zum Debuggen und Testen. Trotz<strong>de</strong>m unterliegt TOSSIMgewissen Einschränkungen im Vergleich zu realen Anwendungen. So liegt beispielsweise<strong>de</strong>r Fokus auf <strong>de</strong>r akkuraten Simulation von TinyOS-Co<strong>de</strong> und nicht auf <strong>de</strong>r vollständigenAbbildung <strong>de</strong>r Realität. Dies äußert sich beispielsweise im Funkverkehr: Dieser wird zwarauf <strong>de</strong>r Bitebene mo<strong>de</strong>lliert, eine Anpassung <strong>de</strong>r Sen<strong>de</strong>leistung ist in TOSSIM aber nichtmöglich. Interferenzen haben einen weitaus stärkeren Einfluss auf Paketkollisionen als inrealen Sensornetzen.Mit <strong>de</strong>r Erweiterung PowerTOSSIM [SHC + 04] bietet <strong>de</strong>r Simulator eine (wenn aucheingeschränkte) Möglichkeit, Aussagen über <strong>de</strong>n Energieverbrauch <strong>de</strong>r beteiligten Knotenzu treffen. Die Einschränkungen begrün<strong>de</strong>n sich durch das verwen<strong>de</strong>te Zustandsmo<strong>de</strong>ll,das u.a. Leckströme in Schlafmodi ignoriert und die angelegte Versorgungsspannung vernachlässigt.Zu<strong>de</strong>m kann eine Auswertung nicht zur Laufzeit durchgeführt wer<strong>de</strong>n, son<strong>de</strong>rnerst im Nachhinein mittels Analyse <strong>de</strong>r Log-Dateien durch zu PowerTOSSIM gehören<strong>de</strong>nPython-Skripten.Trotz dieser Unzulänglichkeiten bietet TOSSIM eine geeignete Simulationsplattform <strong>für</strong>die vorliegen<strong>de</strong> Arbeit. Dies ist zum einen aus <strong>de</strong>r Tatsache heraus begrün<strong>de</strong>t, dass alsRandprodukt einsatzfähiger Co<strong>de</strong> entsteht. Gleichzeitig liegt dieser Co<strong>de</strong> in einer wohlgetestetenForm vor – insbeson<strong>de</strong>re seine korrekte Lauffähigkeit unter TinyOS ist gesichert.An<strong>de</strong>rerseits stellt TOSSIM das Funkverhalten in Bezug auf Paketkollisionen undPaketfehlerwahrscheinlichkeiten realitätsnah dar. Zu<strong>de</strong>m wer<strong>de</strong>n im Rahmen dieser Arbeit72


A.4 TINYVIZAlgorithmen verglichen, die <strong>de</strong>nselben Restriktionen unterliegen, so dass die Ergebnissevergleichbar bleiben.Eine nutzbringen<strong>de</strong> Option von TOSSIM ist die Möglichkeit, fertige Szenarien – Bitfehlerwahrscheinlichkeitenzwischen je zwei Knoten – <strong>für</strong> die Simulation zu la<strong>de</strong>n. Das hier<strong>für</strong>eigens entwickelte Java-Tool „LossyBuil<strong>de</strong>r“ nimmt dabei als Parameter Knotenpositionenentgegen. An Hand von Ergebnissen aus empirischen Messungen in realen Szenarien wer<strong>de</strong>n<strong>für</strong> alle Knotenpaare die Bitfehlerwahrscheinlichkeiten bidirektional bestimmt. Somitlassen sich beson<strong>de</strong>rs realitätsnahe Simulationen vergleichsweise einfach durchführen.A.4 TinyVizDas Tool TinyViz ist eine grafische Erweiterung von TOSSIM [LL03]. Bei<strong>de</strong> Programmestarten prinzipiell separat und kommunizieren dann über Sockets miteinan<strong>de</strong>r. Die Kommunikationzwischen <strong>de</strong>n bei<strong>de</strong>n Anwendungen erfolgt allerdings bidirektional, so dassTinyViz mehr ist als ein rein grafischer Aufsatz <strong>für</strong> TOSSIM.Das Tool ist Bestandteil <strong>de</strong>s TinyOS-Pakets und wur<strong>de</strong> vollständig in Java geschrieben.TinyViz an sich stellt lediglich Grundfunktionalitäten wie die Kommunikation mitTOSSIM, das Applikationsfenster, das Zeichnen <strong>de</strong>r Knoten sowie eine Schnittstelle <strong>für</strong>Plugins bereit. Die tatsächliche Visualisierung übernehmen die Plugins. Dieses Systemhat <strong>de</strong>n nutzbringen<strong>de</strong>n Vorteil, dass auf einfache sowie vergleichsweise schnelle Art undWeise eigene Anfor<strong>de</strong>rungen an die Visualisierung umgesetzt wer<strong>de</strong>n können. Dabei wer<strong>de</strong>ndurch TOSSIM Ereignisse ausgelöst (hierunter fallen z.B. Debug-Ausgaben), die inTinyViz verarbeitet wer<strong>de</strong>n können. Der Anzeigebereich <strong>de</strong>s Anwendungsfensters (vgl.Abbildung A.2) unterteilt sich in zwei Hälften: Rechts befin<strong>de</strong>t sich <strong>für</strong> je<strong>de</strong>s Plugin einReiter, hinter <strong>de</strong>m sich verschie<strong>de</strong>ne Ausgaben <strong>de</strong>s jeweiligen Moduls befin<strong>de</strong>, links ist eineZeichenfläche angeordnet. Diese bietet eine Visualisierung <strong>de</strong>r Sensorknoten und kannvon <strong>de</strong>n einzelnen Plugins verwen<strong>de</strong>t wer<strong>de</strong>n.Obwohl <strong>für</strong> das Sammeln von Mess-Daten im vorliegen<strong>de</strong>n Fall TOSSIM alleine ausreichenwür<strong>de</strong>, wird auf das Zusammenspiel mit TinyViz zurückgegriffen. Dies geschiehteinerseits zur visuellen Verifikation während <strong>de</strong>r Entwicklungsphase sowie an<strong>de</strong>rerseitsauch während <strong>de</strong>r Messungen selbst. Über das TinyViz-Plugin „Location“ existiert nämlicheine einfache Möglichkeit, <strong>de</strong>n Knoten ihre Position bekannt zu machen. Das Pluginsimuliert dabei zwei Sensoren, über die die Knoten ihre Position abfragen können (X-, Y-Koordinaten). Diese Möglichkeit ist <strong>für</strong> die Rahmenapplikation sehr interessant. Überdieskann TinyViz bei Bedarf eine Initialisierungsdatei zur Steuerung <strong>de</strong>r gesamten Simulation73


A VERWENDETE WERKZEUGE Abbildung A.2: TinyViz Visualisierung mit Nachbarschaftsplugin (linke Fensterhälfte)und Debug-Plugin (rechte Fensterhälfte)einlesen. Das La<strong>de</strong>n <strong>de</strong>r Positionen sowie aller an<strong>de</strong>ren Simulationsparameter erfolgt aufdiese Weise und vereinfacht das Setup <strong>de</strong>r Testläufe.A.5 Empirisches Funkmo<strong>de</strong>llTOSSIM und TinyViz bieten verschie<strong>de</strong>ne Funkmo<strong>de</strong>lle an. In <strong>de</strong>r vorliegen<strong>de</strong>n Arbeitwird ein Mo<strong>de</strong>ll verwen<strong>de</strong>t, das sich auf empirisch gewonnene Daten stützt [WTC03]. DiesesMo<strong>de</strong>ll weist einer Verbindung zwischen je zwei Knoten zwei Bitfehlerwahrscheinlichkeitenzu, eine <strong>für</strong> je<strong>de</strong> Kommunikationsrichtung. Je<strong>de</strong> dieser Wahrscheinlichkeiten wirdaus einer Normalverteilung mittels einer Zufallszahl erzeugt. Mittelwert und Standardabweichunghängen dabei von <strong>de</strong>r Distanz <strong>de</strong>r zur Verbindung gehören<strong>de</strong>n Knoten ab. Durchdie zufällige Komponente in <strong>de</strong>r Berechnung ergeben sich asymmetrische Links, wie sichauch in realen Sensornetzen häufig auftreten.Die Bitfehlerwahrscheinlichkeiten ergeben zusammen mit <strong>de</strong>r Paketlänge und <strong>de</strong>r Distanzzwischen zwei Knoten die entsprechen<strong>de</strong> Paketfehlerwahrscheinlichkeit. Abbildung A.3stellt die Paketfehlerwahrscheinlichkeiten <strong>für</strong> verschie<strong>de</strong>ne Knotenentfernungen und Paketgrößenunter Verwendung <strong>de</strong>r Mittelwerte <strong>de</strong>r einzelnen Verteilungen dar. Hieraus lässtsich ablesen, dass in einer Entfernung von maximal 4 Metern die Paketlänge nur einen74


A.5 EMPIRISCHES FUNKMODELLkleinen Einfluss auf eine erfolgreiche Übertragung hat. Bei einer Entfernung von 4 bis6 Metern wird dieser Einfluss jedoch signifikant. Ab ca. 7 bis 8 Metern ergibt sich eineRate von bereits min<strong>de</strong>stens 50 Prozent. Für eine zuverlässige Kommunikation ist damiteine maximale Entfernung von ca. 7–8 Metern, besser 4–5 Metern erfor<strong>de</strong>rlich. Abbildung A.3: Paketfehlerwahrscheinlichkeit in Abhängigkeit <strong>de</strong>r Nutzdaten in Bytesowie <strong>de</strong>r Entfernung in Metern. Darstellung dreidimensional (links) und als vereinfachteIntensitätskontur.75

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!