Bearbeiter | (nur für Mitarbeiter:innen einsehbar) |
Betreuer | Dr. Wolf-Bastian Pöttner |
Professor | Prof. Dr.-Ing. Lars Wolf |
Projekt | µDTN |
µDTN | |
IBR Gruppe | CM (Prof. Wolf) |
Art | Diplomarbeit |
Status | abgeschlossen |
Beginn | 2012-11-01 |
EinleitungIn Wireless Sensor Networks (WSN) werden Daten von kleinen, drahtlosen Sensorknoten (sog. Nodes) erhoben und über mehrere Schritte (sog. Hops) zu einer oder mehreren Senken übertragen. Die Energiereserven der Knoten sind in der Regel knapp, da diese häufig fernab von Infrastruktur installiert werden und daher batteriebetrieben sind. In Delay Tolerant Networks (DTN) werden Daten in Nachrichten über mehrere Schritte übertragen. Sollte der nächste Schritt aktuell nicht zu erreichen sein, so werden die Nachrichten zwischengespeichert und ggfs. später übermittelt. Diese Netzwerke sind daher verzögerungstolerant, da die Übertragung von Quelle zu der Senke unter Umständen sehr lange dauern kann. In Delay Tolerant Wireless Sensor Networks (DTWSNs) werden die Konzepte beider Netzwerktypen vereint, um so einen robusten und energiesparenden Transport der Sensordaten zu ermöglichen. Derartige Netze verwenden in der Regel das sog. Bundle Protocol (RFC 5050) um mit anderen DTNs interoperabel zu sein. uDTN ist eine Implementierung des Bundle Protocols für das Contiki Betriebssystem. Hervorgegangen aus studentischen Arbeiten am IBR bietet sie die Basisfunktionalität für ein DTN. Aktuell ist jedoch die Geschwindigkeit verbesserungsbedürftig. In den Protokollstrukturen verwendet das Bundle Protocol Felder variabler Länge (sog. Self-Delimiting Numeric Values, SDNV) und ist damit flexibel ausgelegt. Die minimale Größe eins Bündels wird jedoch durch die Anzahl der Felder im Primary Bundle Block und dem Bundle Payload Block definiert. In der Praxis hat sich gezeigt, dass in der Regel nicht alle verfügbaren Felder auch wirklich verwendet werden. AufgabenstellungZiel dieser Arbeit ist es, μDTN im Hinblick auf Geschwindigkeit und Funktionalität zu optimieren. Zunächst ist eine Analyse der bestehenden Implementierung notwendig, um Aussagen über ein mögliches Optimierungspotential treffen zu können. Im Fokus steht die Art und Weise, in der Bündel auf den Knoten nicht-flüchtig gespeichert und aus dem Speicher gelesen werden (sog. Storage). Damit eng verbunden ist die Möglichkeit ein Bündel in Segmenten zu übertragen und diese wieder zusammen zu fügen (Segmentierung und Desegmentierung). Um die vorhandene Umsetzung zu analysieren, ist zunächst eine geeignete Mess- und Evaluationsumgebung zu erstellen. Diese soll anfangs zur Bestimmung des „status-quo“ genutzt werden. Auf bestehende Arbeiten kann hier ausdrücklich aufgebaut werden. Im Verlauf der Arbeit sollen die Auswirkungen der Optimierungen in dieser Umgebung quantifiziert werden um so eine kontinuierliche Evaluation der Anpassungen zu ermöglichen. Die Testfälle sollen insbesondere zwei verschiedene Situationen abdecken: Bündel werden von einem Sender an einen Empfänger übertragen – jeweils mit und ohne einen weiteren Knoten als Router in der Mitte. Anschließend ist ein neues Konzept zur Umsetzung der Storage Komponente zu erarbeiten. Dabei ist insbesondere auf die gute Unterstützung von Bündeln größer als 1 Radio Frame zu achten. Nach Möglichkeit sind außerdem Mechanismen zur Umsetzung der Segmentierung und Desegmentierung von Bündeln zu entwerfen, wobei auf den Entwürfen früherer Arbeiten aufgebaut werden soll. Weiterhin sollten in geeigneter Art und Weise bestehende Performanceengpässe in μDTN lokalisiert und dargestellt werden. Konzepte zur Verbesserung der Performance im jeweiligen Bereich sollen erarbeitet und erläutert werden. Die Verbesserungen sind anschließend geeignet zu priorisieren. Im Anschluss sind einige der Optimierungen zu Implementieren und zu Testen. Höchste Priorität hat dabei die Umgestaltung des Storages sowie die Segmentierung und Desegmentierung. Nach jeder Optimierung sind die Auswirkungen zu messen und geeignet darzustellen. In einer abschließenden Gesamtevaluation sollten dann alle umgesetzten Verbesserungen in einem Vergleich zur bisherigen Implementierung dargestellt werden, wobei hier auch die spezifischen Effekte der einzelnen Optimierungen kenntlich gemacht werden sollten. Die Implementierten Komponenten sind zu dokumentieren und Designentscheidungen sind darzustellen und hinreichend zu begründen. Die Softwarequalität ist durch Testfälle sicherzustellen. Links |