h1

h2

h3

h4

h5
h6
http://join2-wiki.gsi.de/foswiki/pub/Main/Artwork/join2_logo100x88.png

Harnessing cross-layer design



Verantwortlichkeitsangabevorgelegt von Dipl.-Inform. Ismet Aktaş

ImpressumAachen 2015

Umfang1 Online-Ressource (197 Seiten) : Diagramme


Dissertation, RWTH Aachen, 2015

Veröffentlicht auf dem Publikationsserver der RWTH Aachen University 2016


Genehmigende Fakultät
Fak01

Hauptberichter/Gutachter
;

Tag der mündlichen Prüfung/Habilitation
2015-11-24

Online
URN: urn:nbn:de:hbz:82-rwth-2016-009634
URL: https://publications.rwth-aachen.de/record/567775/files/567775.pdf
URL: https://publications.rwth-aachen.de/record/567775/files/567775.pdf?subformat=pdfa

Einrichtungen

  1. Lehrstuhl für Informatik 4 (Kommunikation und verteilte Systeme) (121710)
  2. Fachgruppe Informatik (120000)

Inhaltliche Beschreibung (Schlagwörter)
Informatik (frei) ; cross-layer design (frei) ; cross-layer architecture (frei) ; jamming detection (frei) ; jamming reaction (frei)

Thematische Einordnung (Klassifikation)
DDC: 004

Kurzfassung
Der Erfolg des Internets ist unter anderem zurückzuführen auf den hierarchischen Entwurf des Protokollstapels. Dieser ist in voneinander unabhängige Schichten unterteilt, deren Interaktion auf direkt benachbarte Schichten beschränkt ist. Die Schichten bestehen aus Protokollen, welche die Regeln der Kommunikation zwischen verschiedenen Kommunikationsentitäten vorgeben. Jedes Protokoll hat eine spezifische Aufgabe und muss diese unabhängig von anderen Protokollen erfüllen. In kabelgebundenen Netzen hat sich dieser geschichtete Ansatz über Jahre hinweg sehr gut bewährt. In mobilen und drahtlosen Netzen jedoch, in der sich die Funkschnittstelle ständig und unvorhersehbar ändert, führt der geschichtete Ansatz häufig zu einer zu langsamen und suboptimalen Anpassbarkeit. Ein bekanntes Beispiel ist der Leistungsabfall von TCP in drahtlosen Netzen. Hierbei geht TCP bei Paketverlusten fälschlicherweise immer von einem Stau im Netz aus, obwohl Paketverluste auch aufgrund schlechter Funkverbindungsqualitäten auftreten können. Im Allgemeinen führt die fehlende Kenntnis bei höheren Schichten über unvorhersehbare Netzbedingungen, die in unteren Schichten auftreten, und bei unteren Schichten das mangelnde Wissen über die Anforderungen, welche von den höheren Schichten vorgegeben werden, zu Fehlinterpretationen und zum Fehlverhalten.Als vielversprechender Lösungsansatz für die oben genannten Probleme hat sich die sogenannte Cross-Layer-Koordination (CLK) erwiesen, die eine schichtenübergreifende Interaktion und Koordination zwischen allen Protokollschichten erlaubt. Viele Ansätze, die sich das Paradigma der CLK zu nutze gemacht haben, demonstrierten bereits in der Vergangenheit das immense Potential der Leistungsverbesserung. Jedoch waren diese Ansätze unsystematisch implementiert und jeweils auf sehr spezielle Probleme fokussiert, die sich meist auf die Interaktion zwischen zwei Schichten beschränkten. Eine direkte Folge solch einer unsystematischen Implementierung ist die Verletzung von Software-Entwicklungsparadigmen wie die Wartbarkeit und die Erweiterbarkeit, welche aber die Hauptantriebsfaktoren für den Erfolg und die Verbreitung von Software und somit auch des heutigen Protokollstapels sind.Als Ergebnis dieser Beobachtung wurden einige statische Cross-Layer-Architekturen vorgeschlagen, die einen allgemeineren Ansatz verfolgen und den systematischen Entwurf und die Integration von mehreren spezifischen Ansätzen unterstützen. Leider sind bei statischen Architekturen die CLKs tief in das Betriebssystem eingebettet und zum Kompilierzeitpunkt erstellt, welches zu diversen Nachteilen führt.Beispielsweise erfordert der Entwurf einer CLK fundierte Systemkenntnisse, um Protokollabläufe, die innerhalb des Betriebssystems ablaufen, zu verstehen und zu modifizieren. Ein anderes Problem ist, dass das Experimentieren mit CLKs mühsam ist, da eine Änderung der Optimierung ein erneutes Kompilieren und einen Neustart des gesamten Systems erfordert. Außerdem sind CLKs immer aktiv, auch wenn diese zeitweise nicht benötigt werden. Des Weiteren können Anwendungs-Entwickler, die am besten über ihre Anwendungsanforderungen und Einschränkungen wissen, nicht ihre eigenen Optimierungen dem System zur Verfügung stellen.In dieser Arbeit wird die flexible Cross-Layer-Architektur Crawler vorgestellt, die je nach Bedarf erlaubt, CLKs zur Laufzeit einzuspeisen, zu entfernen und zu modifizieren. Insbesondere ermöglicht Crawler basierend auf der Erkennung von Umgebungsänderungen, vordefinierte CLKs automatisch ins System zu laden oder wieder zu entfernen. Um den Zugang zu relevanten Anwendungs-, Protokoll- und Systeminformationen zu erleichtern, bietet Crawler zum einen eine deklarative Konfigurationssprache an, um von Systemdetails zu abstrahieren und um CLKs einfach zu beschreiben, und zum anderen eine einheitliche Schnittstelle, um Optimierungen dem System zur Verfügung zu stellen. Ferner erlaubt der generische Entwurf dieser einheitlichen Schnittstelle das umfangreiche Experimentieren mit unterschiedlichen Zusammensetzungen von CLKs. Insbesondere können Anwendungen diese Schnittstelle verwenden, um Informationen mit dem System austauschen, das System zu beobachten oder um eigene Optimierungen dem System bereitzustellen. In diesem Zusammenhang klassifizieren wir auch Probleme wie beispielsweise Konflikte, die entstehen können, wenn mehre Optimierungen in das System eingespeist werden und schlagen Ansätze vor, um diese zu beseitigen. Folglich bietet Crawler ein noch nie dagewesenes Maß an Flexibilität und Komfort, um mehrere CLKs einem System zu Verfügung zu stellen, wenn erwünscht zu experimentieren oder auch das ganze System (inklusive Optimierungen) zu beobachten. Um das Experimentieren noch weiter zu vereinfachen, erlaubt Crawler sogar das netzwerkweite Hinzufügen, Entfernen oder Modifizieren von CLKs und deren Monitoring. Wir demonstrieren Crawler anhand von fünf verschiedenen prototypischen Beispielen aus unterschiedlichen Bereichen der drahtlosen Kommunikation: TCP-Optimierung, VoIP-Code-Wechsel, Jamming-Detektion und -Reaktion.

The success of today’s Internet can partly be attributed to the design of the layered protocol stack. This design organizes communication protocols, that establish the rules of communication between different communicating entities, in hierarchical layers. These layers are strictly separated and offer only limited interfaces among adjacent layers. Essentially, protocols at each layer have a very specific task and they need to fulfill this task independently. Although this self-contained design of protocols worked well in wired networks, several problems appeared with the emergence of wireless and mobile communication. A prominent example is TCP’s performance drop in wireless networks as it misinterprets packet loss, due to poor link conditions, as congestion in the network. In principle, the missing knowledge of higher layers about volatile wireless conditions and in case of lower layers about higher layer requirements leads to misinterpretation and misbehavior causing suboptimal performance.A promising concept that addresses the lack of information availability is the cross- layer design paradigm which in fact circumvent the rules of strict layer separation and allows the interaction across non-adjacent layers. Many specific solutions, i.e., problem-oriented and tailor-made implementations, have demonstrated the utility of this paradigm by highlighting adaptivity advantages and performance improvements of applications and protocols. But a typical consequence of the very specific focus of the tailor-made solutions was the violation of software engineering principles such as maintainability and extensibility which are the major driving factors for the success and proliferation of software in general.As a result of this observation, a few static cross-layer architectures have been proposed that facilitate systematic design and the integration of several specific solutions. Unfortunately, in static cross-layer architectures the cross-layer coordination algorithms are deeply embedded into the operating system (OS) and are realized at compile-time. This static and deep integration into the OS has several drawbacks. First, the design of cross-layer coordination algorithms requires relevant expertise to understand and modify protocols residing in the OS. Second, the experimen- tation with cross-layer coordination algorithms is tedious since their modification requires a recompilation. Third, coordination algorithms are always active even if not needed. Finally, application developers who know best about their application requirements and constraints are prevented from specifying and providing their own set of cross-layer coordination algorithms.In this thesis, we present Crawler, a flexible cross-layer architecture that allows the specification, realization, and adaptation (i.e., addition, removal and modification) of cross-layer coordination algorithms at runtime. Based on the detection of underlying environmental changes, Crawler allows to automatically load the adequate set of coordination algorithms. It alleviates the problem of complicated access to relevant application, protocol, and system information by enabling a declarative and abstract way to describe cross-layer coordination algorithms and by providing a unified interface to inject such abstractions into the system. The generic design of this unified interface further enables the extensive experimentation with diverse compositions of cross-layer coordination algorithms and their adaptions. Moreover, the interface allows applications to provide own coordination algorithms, to share information with the system and system monitoring. In this context, we classify problems such as conflicts when adding multiple cross-layer coordination algorithms and support developers to tackle them. In general, we enable an unprecedented degree of flexibility and convenience to monitor, experiment and run several cross-layer coordination algorithms. To further support the developer while experimenting, we even allow to remotely add, remove, and modify cross-layer coordination algorithms and their monitoring. We demonstrate the usability of Crawler for monitoring and experimentation with cross-layer coordination algorithms in five diverse use cases from different areas of wireless networking such as manipulating TCP behavior, VoIP codec switching, jamming detection and reaction.

OpenAccess:
Download fulltext PDF Download fulltext PDF (PDFA)
(additional files)

Dokumenttyp
Dissertation / PhD Thesis

Format
online

Sprache
English

Externe Identnummern
HBZ: HT018981806

Interne Identnummern
RWTH-2016-00963
Datensatz-ID: 567775

Beteiligte Länder
Germany

 GO


OpenAccess

QR Code for this record

The record appears in these collections:
Document types > Theses > Ph.D. Theses
Faculty of Mathematics, Computer Science and Natural Sciences (Fac.1) > Department of Computer Science
Publication server / Open Access
Public records
Publications database
120000
121710

 Record created 2016-02-09, last modified 2023-04-08