Multipath TCP
| Multipath TCP | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Familie: | Internetprotokollfamilie | ||||||||||||||||||||||||
| Einsatzgebiet: | Zuverlässiger bidirektionaler Datentransport | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Standards: | RFC 6824 (2013) RFC 6356 (2011) | ||||||||||||||||||||||||
Multipath TCP (MPTCP) ist ein neuer vorgeschlagener Standard des Internet Engineering Task Force, welcher es erlauben soll, mehrere Pfade für erhöhte Redundanz und Durchsatz zusammenzuschließen.[1]
Im Januar 2013 publizierte das IETF die Multipfad-Spezifikation als experimentellen Standard im RFC 6824.
Inhaltsverzeichnis
Vorteile[Bearbeiten | Quelltext 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.
Mobiles Szenario[Bearbeiten | Quelltext bearbeiten]
MPTCP ist besonders nützlich 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.
Server-Szenario[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]
Im Juli 2013 berichtete die MPTCP Working Group über 5 unabhängige Implementationen von MPTCP. [2], inklusive der Referenzimplementation im Linux-Kernel.
Die publizierten Implementationen sind:
- Linux (Kernel) (Referenzimplementation) von Université Catholique de Louvain.[3]
- FreeBSD (nur IPv4) von Swinburne University of Technology.[4]
- f5 Networks BIG-IP LTM.[5]
- Citrix Netscaler.[6]
- Apple iOS 7, publiziert am 18. September 2013 und ist die erste große Verbreitung von MPTCP.[7]
Paketaufbau[Bearbeiten | Quelltext bearbeiten]
Der MPTCP-Paketaufbau ist detailliert beschrieben in RFC 6824.
MPTCP erweitert ein TCP-Paket im TCP-Optionen-Feld um ID 30 (RFC 6824, Abschnitt 8). Die TCP-Option 30 ist registriert bei der IANA[8].
Zusätzlich besitzen MPTCP-Pakete einen 4-Bit-Subtyp, der auch bei der IANA registriert ist. Die Subtypen sind im Subregister "MPTCP Option Subtypes"[9] aufgeführt. 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 |
| 0xf | (PRIVATE) | Private Use within controlled testbeds |
Die Werte von 0x8 bis 0xe sind noch nicht zugewiesen.
Weblinks[Bearbeiten | Quelltext bearbeiten]
- The Linux Kernel MultiPath TCP project
- Cross-platform Proxy based solution to achieve Multipath TCP like functionality
- A clear article explaining the MPTCP implementation
RFC[Bearbeiten | Quelltext bearbeiten]
- RFC 6181 - Threat Analysis for TCP Extensions for Multipath Operation with Multiple Addresses
- RFC 6182 - Architectural Guidelines for Multipath TCP Development
- RFC 6356 - Coupled Congestion Control for Multipath Transport Protocols
- RFC 6824 - TCP Extensions for Multipath Operation with Multiple Addresses
- RFC 6897 - Multipath TCP (MPTCP) Application Interface Considerations
Einzelnachweise[Bearbeiten | Quelltext bearbeiten]
- ↑ Multipath TCP working group
- ↑ MultiPath TCP: From Theory to Practice
- ↑ MPTCP - Linux Kernel implementation
- ↑ Multipath TCP for FreeBSD v0.1. Abgerufen am 23. September 2013.
- ↑ Release Note: BIG-IP LTM and TMOS 11.5.0. f5 Networks. 30. Mai 2014. Abgerufen am 30. Mai 2014.
- ↑ John Gudmundson: Maximize mobile user experience with NetScaler Multipath TCP. Citrix. 28. Mai 2013. Abgerufen am 20. September 2013.
- ↑ Apple seems to also believe in Multipath TCP. Abgerufen am 20. September 2013.
- ↑ IANA TCP-Optionen
- ↑ IANA TCP-Optionen, MPTCP Subtypen