Multipath TCP ( MPTCP ) ist eine fortlaufende Initiative der Multipath TCP-Arbeitsgruppe der Internet Engineering Task Force (IETF), die es TCP ermöglichen soll, mehrere Pfade zu verwenden, um die Ressourcennutzung zu maximieren und die Redundanz zu erhöhen und gleichzeitig kompatibel zu bleiben aktuelle Geräte (Firewall, NAT usw.).
Im Januar 2013Die IETF veröffentlichte die Multipath-Spezifikation als experimentellen Standard in RFC 6824.
Die von Multipath TCP angebotene Redundanz macht das umgekehrte Multiplexen von Ressourcen zugänglich, wodurch die Rate (der Durchsatz) von TCP bis zum Erreichen der Summe der Raten verbessert werden kann, indem die Leistung der verschiedenen physischen Kanäle genutzt wird, anstatt sie zu verwenden. nur eine, wie es bei Standard-TCP der Fall ist. Multipath TCP ist auch abwärtskompatibel mit klassischem TCP.
Multipath-TCP ist besonders nützlich im Zusammenhang mit drahtlosen Netzwerken. Eine besonders interessante Verwendung besteht darin, gleichzeitig eine Wi-Fi- Verbindung und ein Mobilfunknetz zu nutzen .
Zusätzlich zu den Gewinnen beim Reverse-Multiplexing-Durchsatz können Verbindungen hinzugefügt oder entfernt werden, wenn der Benutzer einen Abdeckungsbereich betritt oder verlässt, ohne den End-to-End-Betrieb der TCP-Verbindung zu stören. Das Handover- Link-Problem wird daher durch die Abstraktion der Transportschicht gelöst , ohne dass spezielle Mechanismen auf der Netzwerkschicht oder der Datenverbindungsschicht hinzugefügt werden müssen . Die Übergabe kann dann an Client-Stationen implementiert werden, ohne dass spezielle Funktionen in jedem Subnetz gemäß dem im Internet verwendeten End-to-End-Prinzip erforderlich sind .
Multipath TCP bietet auch Leistungsvorteile in Rechenzentren . Im Gegensatz zur Ethernet- Kanalbindung mithilfe der Link-Aggregation (802.3ad) kann Multipath TCP eine einzelne TCP-Verbindung über mehrere Schnittstellen verteilen.
Multipath TCP hat dieselbe Benutzeroberfläche wie TCP. Es modifiziert TCP so, dass es eine Standardschnittstelle für Anwendungen darstellt, wenn tatsächlich Daten über mehrere Unterflüsse übertragen werden, wodurch MPTCP transparent verwendet werden kann.
Im Juli 2013Die MPTCP-Arbeitsgruppe berichtete über fünf unabhängige Implementierungen von Multipath TCP, einschließlich der Referenzimplementierung im Linux-Kernel.
Die derzeit verfügbaren Implementierungen sind:
Im Juli 2014Oracle berichtet, dass sich eine Implementierung unter Solaris in der Entwicklung befindet. ImJuni 2015ist die Arbeit noch im Gange.
Während des Treffens der MPTCP-Arbeitsgruppe auf der IETF 93 gab SungHoon Seo bekannt, dass KT seit Mitte Juni einen kommerziellen Dienst bereitstellt, mit dem Smartphone-Benutzer mithilfe eines Proxy-Dienstes mit MPTCP auf einem Samsung Galaxy S6- Smartphone mit dem einen Durchsatz von 1 Gbit / s erzielen können Android- Betriebssystem .
Die Struktur eines TCP-Mehrwegesegments ist in RFC 6824 ausführlich beschrieben .
Die von Multipath TCP verwendeten Datenstrukturen befinden sich in den TCP-Optionsfeldern in einer Option variabler Länge, deren Kennung die von der IANA reservierte Nummer 30 ist.
Die TCP-Multipath-Option hat die Kennung 30, die variable Länge und den Inhalt, die mit einem 4-Bit-Feld beginnen, für das die IANA ein Unterregister mit dem Titel MPTCP Option of subtypes im Registrierungsframework für Transmission Control Protocol (TCP) erstellt hat und verwaltet ) . Diese Felduntertypen sind wie folgt definiert:
Wert | Symbol | Nachname | Beschreibung |
---|---|---|---|
0x0 | MP_CAPABLE | Multipath-fähig | Gibt an, dass die aktuelle TCP-Sitzung MPTCP unterstützt. |
0x1 | MP_JOIN | Verbinden Sie zwei Verbindungen | Gibt an, dass eine zuvor hergestellte TCP-Verbindung ein Teilstrom der aktuellen MPTCP-Sitzung ist. |
0x2 | DSS | Bestätigungssequenznummern (unter Verwendung eines Zuordnungssystems) | Beschreibt die Position und die Bestätigung der Daten als Ganzes (die klassische Sequenz und die Bestätigungsnummern werden weiterhin verwendet, um die Position in jedem Teilfluss zu beschreiben). |
0x3 | ADD_ADDR | füge eine Adresse hinzu | Anforderung, der MPTCP-Sitzung eine neue Adresse hinzuzufügen. |
0x4 | REMOVE_ADDR | Löschen Sie eine Adresse | Entfernt eine Adresse (angegeben durch ihre Kennung) aus der MPTCP-Sitzung. |
0x5 | MP_PRIO | Ändern der Priorität eines Unterflusses | Ändert die Priorität eines Subflows (z. B. weil eine Verbindung wie eine 3G-Verbindung Nutzungskosten verursacht). |
0x6 | MP_FAIL | Definieren Sie einen Fallback-Link | Fordern Sie die Verwendung eines Links nur im Falle eines Problems an, wenn die anderen Links nicht verfügbar sind. |
0x7 | MP_FASTCLOSE | Schnelles Schließen | Schließt die gesamte MPTCP-Sitzung (da die RST- und FIN-Signale verwendet werden, um die Unterflüsse einzeln zu schließen). |
0xf | (PRIVATGELÄNDE) | Reservierte Verwendung für bestimmte Tests |
Die Werte 0x8 bis 0xe sind derzeit nicht zugewiesen.
Details zu den Protokollspezifikationen finden Sie in RFC 6824 . Mehrere Artikel können eine Einführung in das Protokoll geben.
Die Grundidee von Multipath-TCP besteht darin, eine Möglichkeit zu definieren, eine Verbindung zwischen zwei Hosts und nicht zwischen zwei Schnittstellen herzustellen (wie bei Standard-TCP).
Zum Beispiel hat Alice ein Smartphone mit 3G- und WiFi-Schnittstellen (mit IP-Adressen 10.11.12.13 und 10.11.12.14), während Bob einen Computer mit einer Ethernet-Schnittstelle (mit IP-Adresse 20.21.22.23) hat.
In einer Standard-TCP-Anwendung muss die Verbindung zwischen zwei IP-Adressen hergestellt werden (TCP definiert die Quelle und das Ziel als IP-Adresse, Port-Tupel). Es ist daher möglich, nur einen Link zu verwenden. Eine TCP-Multipath-Anwendung kann verschiedene Pfade verwenden (ein Pfad, der auch als Subflow bezeichnet wird, ist eine Standard-TCP-Verbindung zwischen zwei Schnittstellen), um mit Bob über Alice zu sprechen.
Der Zweck der verschiedenen Protokolloperationen (definiert in RFC 6824 ) ist (unter anderem):
Dies erfolgt durch Hinzufügen neuer Mechanismen zu TCP-Übertragungen:
Für Multipath TCP wurden mehrere Steuerungsmechanismen definiert. Ihr Hauptunterschied zu herkömmlichen TCP-Überlastungskontrollsystemen besteht darin, dass sie auf Überlastungen auf verschiedenen Pfaden reagieren müssen, ohne gegenüber Anwendungen unfair zu sein, die nur von einem TCP-Pfad profitieren (da sie beispielsweise keinen TCP-Mehrweg unterstützen). Derzeit werden in der Referenzimplementierung im Linux-Kernel vier Strategien zur Überlastungskontrolle unterstützt.
Das Stream Control Transmission Protocol (SCTP) ist ein zuverlässiges Transportprotokoll, das ursprünglich zur Signalisierung von Telekommunikation vorgesehen war. Es unterstützt die gleichzeitige Verwendung mehrerer Zugriffsverbindungen und ermöglicht es einer Anwendung, die Auswahl der Zugriffsschnittstellen zu einem Basisstrom zu beeinflussen. Es unterstützt auch die Mobilität durch Neuverhandlung des Zugangs. Daher ist SCTP eine weitere Transportschichtlösung für das Mobilitätsproblem. Es bietet Parallelitätstyp 3-Granularität, jedoch mit mehr Flusskontrolle als TCP-Multipath. Es unterstützt auch die Mobilität auf ähnliche Weise wie Multipath TCP.
Obwohl diese Alternative sehr vorteilhaft erscheint, basiert sie auf einer relativ wenig eingesetzten Technologie (im Vergleich zu TCP) für nicht spezialisierte Anwendungen.
In der Architektur des " IP Multimedia Subsystem (IMS)" kann das Session Initiation Protocol (SIP) die gleichzeitige Verwendung mehrerer Kontakt-IP-Adressen für die Registrierung eines oder mehrerer IMS-Benutzeragenten unterstützen. Dies ermöglicht die Erstellung mehrerer IMS-Signalisierungspfade Auf diesen Pfaden können Signalisierungsnachrichten, die eine SDP- Nachricht ( Session Description Protocol ) enthalten, die Datenflüsse aushandeln. SDP ermöglicht es, die Flüsse einer Mediensitzung auf mehreren Pfaden (erneut) auszuhandeln. Dies ermöglicht daher die Aktivierung eines Transports mit Diesmal mehrere Pfade auf der Ebene der Transportschicht (mit Granularität der Flüsse und gleichzeitigen Zugriffen). Eine Erweiterung auf mehrere Pfade des Echtzeit-Transportprotokolls (RTP) wird derzeit im IETF diskutiert. Multipath RTP kann Flussgranularität mit bieten gleichzeitiger Zugriff und Mobilität (über IMS, SDP-Signalisierung oder RTP-Steuerprotokoll).
Die groß angelegte Bereitstellung für alle Terminaltypen würde jedoch wesentliche Änderungen an der Netzwerkarchitektur erfordern.
Auf Sitzungsebene ist der „Mobile Access Router“ ein 2003 getestetes Projekt, das die Zusammenfassung mehrerer drahtloser Zugriffe mit heterogenen Technologien vorschlägt und dabei einen transparenten Verkehrsausgleich in Bezug auf die Leistung jeder Technologie berücksichtigt.
Parallele Zugriffsschemata zur Beschleunigung von Übertragungen durch Nutzung des Byte-Dienstes zum Herstellen von Verbindungen zwischen mehreren Servern mit demselben replizierten Inhalt entsprechen nicht Multipath TCP, da sie die Verwendung der Anwendungsschicht beinhalten und auf bekannte Inhalte beschränkt sind Größe.