Multipath TCP
| Familie: | Internetprotokollfamilie | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Einsatzgebiet: | Zuverlässiger bidirektionaler Datentransport | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Standards: | RFC 6824 (2013)<ref name="RFC6824" /> RFC 6356 (2011)<ref>Vorlage:RFC-Internet</ref> | ||||||||||||||||||||||||
Multipath TCP (MPTCP) ist ein vorgeschlagener Standard der Internet Engineering Task Force. MPTCP soll es erlauben, mehrere Pfade für erhöhte Redundanz und Durchsatz zusammenzuschließen.<ref>Multipath TCP working group.</ref>
Im Januar 2013 publizierte das IETF die Multipfad-Spezifikation als experimentelle Spezifikation im RFC 6824.<ref name="RFC6824" /> Im März 2020 wurde diese durch Veröffentlichung des vorgeschlagenen Standards RFC 8684<ref>Vorlage:RFC-Internet</ref> abgelöst.

Vorteile, Ziele, Einordnung[Bearbeiten]
Durch das logische Zusammenschließen von mehreren TCP-Verbindungen bietet MPTCP erhöhte Redundanz und Durchsatz. Der Durchsatz ist gleich der Summe der zur Verfügung stehenden Bandbreite auf den jeweiligen Netzwerk-Schnittstellen. Multipfad-TCP ist rückwärtskompatibel mit regulärem TCP.
Neben MPTCP befinden sich mit Multipath QUIC und dem Multipath Datagram Congestion Control Protocol (MP-DCCP)<ref>DCCP Extensions for Multipath Operation with Multiple Addresses. Abgerufen am 6. Mai 2021 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> weitere Mehrwege-Daten-Transport-Protokolle in der IETF Standardisierung. Hinzu kommen Verfahren zur Aufteilung von Datenverkehr auf Leitungs- und Netz-Ebene, z. B. LACP und ECMP. Ziel dieser Multipath-Protokolle ist die Zusammenschaltung mehrerer Übertragungskanäle zu einem Hybrid Access, der die gesamte Übertragungskapazität über alle Wege in einem Internet-Anschluss bündelt und ausschöpft.
Mobiles Szenario[Bearbeiten]
Besonders nützlich ist MPTCP in einer mobilen Umgebung, wo mehrere Netzwerk-Technologien gleichzeitig genutzt werden, wie Mobilfunknetze und Wi-Fi-Netze. Ein Mobiltelefon kann z. B. ein Online-Video auf dem Wi-Fi-Netz starten und beim Verlassen der Reichweite ununterbrochen auf dem Mobilfunknetz fortsetzen. Für den Anwender reduzieren sich die Kosten und er kann transparent von Netz zu Netz wechseln. Im Kernnetz von 5G als neuester Mobilfunktechnologie wird MPTCP für solch ein konvergentes (Fixed Mobile Convergence) Szenario als Standard auf Transportebene von 3GPP spezifiziert im Rahmen der ATSSS-Funktionalität zur Auswahl von und Umschaltung oder Aufspaltung von Verkehr auf unterschiedliche Zugangsnetz-Technologien (Access Traffic Steering, Switching and Splitting).
Server-Szenario[Bearbeiten]
Durch das Bündeln von mehreren Pfaden können auch Server mit Multihoming profitieren. Sie können mehrere Pfade gleichzeitig ausnutzen und fällt ein Pfad aus, bleibt die TCP-Verbindung bestehen.
Applikations-Schnittstelle[Bearbeiten]
Benötigt eine Applikation eine TCP-Verbindung, wird diese transparent mit MPTCP aufgebaut, ohne dass die Anwendung davon etwas merkt. So kann MPTCP auf einem System eingeführt werden, ohne Änderungen an den bestehenden Anwendungen vornehmen zu müssen.
Implementationen[Bearbeiten]
Im Juli 2013 berichtete die MPTCP Working Group über 5 unabhängige Implementationen von MPTCP,<ref>MultiPath TCP: From Theory to Practice</ref> inklusive der Referenzimplementation im Linux-Kernel.
Die publizierten Implementationen sind:
- Linux (Kernel) (Referenzimplementation) von Université Catholique de Louvain.<ref>MPTCP – Linux Kernel implementation. multipath-tcp.org</ref>
- FreeBSD (nur IPv4) von Swinburne University of Technology.<ref>Multipath TCP for FreeBSD v0.1. Abgerufen am 23. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
- f5 Networks BIG-IP LTM.<ref name="f5-big-ip">Release Note: BIG-IP LTM and TMOS 11.5.0. f5 Networks, 30. Mai 2014, abgerufen am 30. Mai 2014 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
- Citrix Netscaler.<ref name="citrix-netscaler">John Gudmundson: Maximize mobile user experience with NetScaler Multipath TCP. Citrix, 28. Mai 2013, archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 21. September 2013; abgerufen am 20. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</ref>
- Apple iOS 7, publiziert am 18. September 2013 und ist die erste große Verbreitung von MPTCP.<ref>Apple seems to also believe in Multipath TCP. Abgerufen am 20. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Paketaufbau[Bearbeiten]
Der MPTCP-Paketaufbau ist detailliert beschrieben in RFC 6824.<ref name="RFC6824" />
MPTCP erweitert ein TCP-Paket im TCP-Optionen-Feld um ID 30 (RFC 6824, Abschnitt 8<ref>Vorlage:RFC-Internet</ref>). Die TCP-Option 30 ist registriert bei der IANA.<ref>TCP-Optionen. IANA.</ref>
Zusätzlich besitzen MPTCP-Pakete einen 4-Bit-Subtyp, der auch bei der IANA registriert ist. Die Subtypen sind im Subregister „MPTCP Option Subtypes“ aufgeführt.<ref>TCP-Optionen, MPTCP Subtypen. IANA.</ref> Diese Subtypen haben folgende Bedeutung:
| Wert | Symbol | Name |
|---|---|---|
| 0x0 | MP_CAPABLE | Multipath Capable |
| 0x1 | MP_JOIN | Join Connection |
| 0x2 | DSS | Data Sequence Signal (Data ACK and data sequence mapping) |
| 0x3 | ADD_ADDR | Add Address |
| 0x4 | REMOVE_ADDR | Remove Address |
| 0x5 | MP_PRIO | Change Subflow Priority |
| 0x6 | MP_FAIL | Fallback |
| 0x7 | MP_FASTCLOSE | Fast Close |
| 0x8 | MP_TCPRST | Subflow Reset |
| 0xf | MP_EXPERIMENTAL | Private Use within controlled testbeds |
Die Werte von 0x9 bis 0xe sind noch nicht zugewiesen.
Weblinks[Bearbeiten]
- The Linux Kernel MultiPath TCP project
- Cross-platform Proxy based solution to achieve Multipath TCP like functionality. megaleecher.net
- A clear article explaining the MPTCP implementation. lwn.net
RFC
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
- Vorlage:RFC-Internet
Einzelnachweise[Bearbeiten]
<references> <ref name="RFC6824"> Vorlage:RFC-Internet </ref> </references>