Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-14221
Autor(en): Grohmann, Lorenz
Titel: Design and implementation of a network emulator with stochastic network delay support
Sonstige Titel: Entwurf und Implementierung eines Netzwerk-Emulators für stochastische Netzwerklatenzen
Erscheinungsdatum: 2023
Dokumentart: Abschlussarbeit (Bachelor)
Seiten: 67
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-142405
http://elib.uni-stuttgart.de/handle/11682/14240
http://dx.doi.org/10.18419/opus-14221
Zusammenfassung: Network delays strongly impact time-sensitive distributed systems that communicate over the network. Today, many distributed systems are still using wired network connections. However, with larger installations, wired connections become less feasible, and the need for wireless communication over WIFI or 5G/6G systems becomes greater. These communication methods bring new challenges as messages experience higher network delay, jitter, and packet errors. Therefore, it is necessary to test these systems and their performance reliably. For these tests, network emulation is a promising method. With network emulation, these systems can be tested on wired hardware that behaves like a wireless one. While there are tools available that can emulate networks, there is a lack of flexibility in defining and following stochastic delay distributions, for example, to emulate the unpredictable behavior of wireless connections. This bachelor thesis presents the design and implementation of a tool that specializes in emulating network delays, which can be adapted flexibly and dynamically. This tool is implemented as a Linux Queueing Discipline, which allows it to be used on all Linux-based systems. To achieve the mentioned flexibility, we present a design that separates the generation of new delays from the enforcement. While the Queueing Discipline runs in the restricted kernel space and delays packets, the delays are calculated outside Kernel Space in User Space and then sent as a message to the Queueing Discipline. This separation allows developers to customize how delays are generated more easily or even write their own applications that interact with the Queueing Discipline. To prove the viability of our tool and explore its limitations, we tested and evaluated it. This evaluation showed that, within the limits of software network emulation, our tool can accurately and reliably delay packages both statically and following stochastic distributions.
Netzverzögerungen wirken sich stark auf zeitabhängige verteilte Systeme aus, die über das Netz kommunizieren. Heute verwenden viele verteilte Systeme noch kabelgebundene Netzwerkverbindungen. Bei größeren Installationen werden kabelgebundene Verbindungen jedoch weniger praktikabel, und der Bedarf an drahtloser Kommunikation über WIFI- oder 5G/6G-Systeme wird größer. Diese Kommunikationsmethoden bringen neue Herausforderungen mit sich, da Nachrichten eine höhere Netzwerkverzögerung, Jitter und Paketfehler aufweisen können. Daher ist es notwendig, diese Systeme und ihre Leistung zuverlässig zu testen. Für diese Tests ist die Netzwerkemulation eine vielversprechende Methode. Mit Netzwerkemulation können diese Systeme auf kabelgebundener Verbindung getestet werden, die sich wie eine drahtlose Verbindung verhält. Es gibt zwar Werkzeugs, die Netzwerkeigenschaften emulieren können, aber es mangelt an Flexibilität, wenn es darum geht, beliebige Verzögerungsverteilungen zu definieren und zu verfolgen, um zum Beispiel das unvorhersehbare Verhalten von drahtlosen Verbindungen zu emulieren. Diese Bachelorarbeit stellt den Entwurf und die Implementierung eines Werkzeugs vor, das auf die Emulation von Netzwerkverzögerungen spezialisiert ist, die flexibel und dynamisch angepasst werden können. Dieses Werkzeug ist als Linux Queueing Discipline implementiert und kann somit auf allen Linux-basierten Systemen eingesetzt werden. Um die erwähnte Flexibilität zu erreichen, präsentieren wir ein Design, das die Erzeugung neuer Verzögerungen von der Durchsetzung trennt. Während die Queueing Discipline im beschränkten Kernel Space läuft und Pakete verzögert, werden die Verzögerungen außerhalb des Kernel Space im User Space berechnet und dann an die Queueing Discipline gesendet. Diese Trennung ermöglicht es Entwicklern, die Art und Weise, wie Verzögerungen erzeugt werden, einfacher anzupassen oder sogar eigene Anwendungen zu schreiben, die mit der Queueing Discipline interagieren. Um die Tauglichkeit unseres Werkzeugs zu zeigen und seine Grenzen zu ermitteln, haben wir es getestet und evaluiert. Diese Evaluierung hat gezeigt, dass unser Werkzeug, innerhalb der Grenzen der Software-Netzwerkemulation, in der Lage ist, Pakete sowohl statisch als auch nach stochastischen Verteilungen genau und zuverlässig zu verzögern.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
BA_Grohmann_22_11_2023.pdf7,31 MBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.