SACK Handling for CMT-SCTP in the FreeBSD Kernel

URL
Dokumentart: Bachelor Thesis
Institut: Department Informatik
Sprache: Deutsch
Erstellungsjahr: 2017
Publikationsdatum:
SWD-Schlagwörter: SCTP
DDC-Sachgruppe: Informatik

Kurzfassung auf Deutsch:

In den letzten Jahren hat die Anzahl der mobilen Geräte, wie zum Beispiel Smartphones, die über mehrere Netzwerkschnittstellen verfügen, drastisch zugenommen. Als Folge dieser Enwicklungen hat der Wunsch zugenommen alle verfügbaren Netzwerkschnittstellen für die Übertragung von Applikationsdaten zu nutzen. Die gleichzeitige Nutzung aller verfügbarer Netzwerkschnittstellen für die Datenübertragung kann nicht nur den Durchsatz erhöhen, sondern auch einen besseren Schutz gegen Netzwerkausfälle gewährleisten. Concurrent Multipath Transfer (CMT) ist eine Erweiterung des Transportprotokolls SCTP, welches die gleichzeitige Nutzung aller Netzwerkschnittstellen erlaubt. Sollten sich die Eigenschaften eines Kommunikationspfades (wie zum Beispiel Bandbreite, Delay oder Fehlerrate) jedoch ändern, kann der Durchsatz in einem ungleichen Multi-Path Szenario stark abfallen. Es kann sogar so weit kommen, dass der Durchsatz nur noch einen Bruchteil des möglichen Durchsatzes erreicht, als wenn nur der beste Pfad für die Applikationsdatenübertragung genutzt werden würde. Da mobile Geräte oft in einer Umgebung genutzt werden, in der ungleiche Kommunikationspfade nicht selten sind, ist die effiziente Nutzung von CMT sehr entscheidend. Des Weiteren wird die erste von drei Design Regeln, welche von [1] vorgeschlagen wurden, verletzt. Die erste Design Regel besagt, dass ein Multi-Path Flow wenigstens einen so guten Durchsatz erreichen soll, wie ein Single-Path Flow über den besten Pfad. In dieser Bachelorarbeit werden die Herausforderungen, die durch Load-Sharing mit CMTSCTP über ungleiche Pfade entstehen, dargestellt. Die Gründe für die verminderte Leistung werden diskutiert und Lösungskonzepte werden angeboten1. Für die Untersuchung von CMT-SCTP wird ein Testbed genutzt, welches größtenteils eine voll kontrollierbare Umgebung schafft. Das Testbed erlaubt es den Datenverkehr zwischen den kommunizierenden Endpunkten bzgl. der Linkeigenschaften zu verändern. Des Weiteren werden Router Statistiken, Mitschnitte von Netzwerkverkehr und Zeitmessungen von Kernelroutinen zur Analyse genutzt. Die Analyse der aktuellen Implementierung zeigt, dass die Herausforderungen nicht nur mit der CPU Leistung zusammenhängen. Somit reicht es nicht nur Lösungskonzepte anzubieten, die algorithmisch Effizeienzprobleme lösen ohne die SCTP Spezifikation zu ändern. Die Bachelorarbeit nutzt die bei der IETF als Referenzimplementierung genutzte SCTP Implementierung in FreeBSD. 1 The Ergebnisse dieser Arbeit werden über folgendes GitHub Repository zur Verfügung gestellt: https://github.com/DanSar/ba_sctp

Kurzfassung auf Englisch:

Over the last few years the amount of mobile devices with multiple network interfaces, such as smartphones, has increased dramatically. As a result of this development the urge to use all available network interfaces has emerged. The simultaneous use of network interfaces allows an increase in application data throughput and improves resilience to network failure. Concurrent Multipath Transfer (CMT) is an extension to the transport protocol SCTP that allows the simultaneous use of multiple network paths between two peers. However, if the characteristics (i.e. bandwidth, delay and error rate) of these paths change to be more dissimilar the overall throughput can suffer greatly. It can even reach the point where the throughput plummets to only a fraction of the possible throughput that would be achieved if only the best network path would be used to transfer user data. Since mobile devices often operate in an dissimilar path environment an efficient usage of those paths by CMT is crucial. Moreover, it violates the first of three design goals proposed by In this bachelor thesis, the challenges of load sharing with CMT-SCTP over dissimilar paths focusing on bandwidth, as described in the previous paragraph, are demonstrated. The cause for these issues is identified and solutions are proposed2. To demonstrate and identify this problem a testbed is used in order to have full control over the test environment. The testbed allows to shape traffic on two disjoint paths between two peers. In addition router statistics, network traces and time measurements of internal SCTP routines are utilized to identify the cause. The analysis of the current implementation shows that the issues are not solely CPU related and therefore cannot only be solved algorithmically without altering the SCTP specification. This thesis focuses on the implementation of SCTP in FreeBSD since it is used as the reference implementation for standardization at the IETF. [1] which states that a multi-path flow should perform at least as well as a single-path flow on the best path. 2 The results of this thesis have also been made available on the following GitHub repository: https://github.com/DanSar/ba_sctp

Hinweis zum Urheberrecht

Für Dokumente, die in elektronischer Form über Datenenetze angeboten werden, gilt uneingeschränkt das Urheberrechtsgesetz (UrhG). Insbesondere gilt:

Einzelne Vervielfältigungen, z.B. Kopien und Ausdrucke, dürfen nur zum privaten und sonstigen eigenen Gebrauch angefertigt werden (Paragraph 53 Urheberrecht). Die Herstellung und Verbreitung von weiteren Reproduktionen ist nur mit ausdrücklicher Genehmigung des Urhebers gestattet.

Der Benutzer ist für die Einhaltung der Rechtsvorschriften selbst verantwortlich und kann bei Mißbrauch haftbar gemacht werden.