Multipath TCP

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.

Leistungen

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.

Implementierung

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 .

Struktur eines TCP-Segments

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.

Detaillierte Spezifikationen

Details zu den Protokollspezifikationen finden Sie in RFC 6824 . Mehrere Artikel können eine Einführung in das Protokoll geben.

Vereinfachte Beschreibung

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:

Überlastungskontrolle

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. 

Alternativen

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.

IMS SIP

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. 

RFC

Anmerkungen und Referenzen

  1. (in) "  Multipath TCP-Arbeitsgruppe  " (abgerufen am 27. Juni 2016 )
  2. (in) "  TCP - Erweiterungen für Multipath Betrieb mit mehreren Adressen  " Request for Comments n o  6824,Januar 2013.
  3. (in) "  TCP mit Feedforward-Quellcodierung für drahtlose Downlink-Netzwerke  "
  4. (in) Raiciu , Bar , Pluntke , Greenhalgh , Wischik und Handley , "  Verbesserung der Leistung und Robustheit von Rechenzentren mit Mehrweg-TCP  " , SIGCOMM ,2011( online lesen )
  5. (in) C. Paasch G. Detal, S. Barre, F. Duchene und O. Bonaventure, "  Die schnellste TCP-Verbindung mit Multipath TCP  " (abgerufen am 20. September 2013 )
  6. (in) "  Das Linux-Kernel-Projekt MultiPath TCP  " (abgerufen am 28. November 2014 )
  7. (in) "  Übersicht über MPTCP-Implementierungen (Internet-Draft, 2013)  " (abgerufen am 20. September 2013 )
  8. (in) bar , Paasch und Bonaventure , "  MultiPath TCP: Von der Theorie zur Praxis  " , IFIP Networking ,2011( online lesen )
  9. (in) Raiciu , Paasch , Barre , Ford , Honda , Duchene , Bonaventure und Handley : "  Wie schwer kann es sein? Entwerfen und Implementieren eines bereitstellbaren Multipath-TCP  “ , Usenix NSDI ,2012( online lesen )
  10. (in) "  Multipath TCP für FreeBSD v0.1  " (abgerufen am 23. September 2013 )
  11. (in) "  Versionshinweis: BIG-IP LTM und TMOS 11.5.0  " , F5 Networks,30. Mai 2014(abgerufen am 30. Mai 2014 )
  12. (in) John Gudmundson, "  Mobile Maximieren Sie die Benutzererfahrung mit NetScaler Multipath TCP  " , Citrix,28. Mai 2013(abgerufen am 20. September 2013 )
  13. (in) "  Apple scheint an Multipath TCP zu glauben  " (abgerufen am 20. September 2013 )
  14. (in) "  MPTCP Roams kostenlos (standardmäßig!) - OS X Yosemite  " (abgerufen am 16. September 2015 )
  15. "  Aggregation von Links mit OverTheBox  " , auf ovhtelecom.fr
  16. Hugo Bonnaffé, „  Unter der Box: Entdecken Sie OverTheBox Underside  “ , auf ovh.com ,9. Februar 2016
  17. (in) Shoaib Rao , "  Einige Kommentare zu RFC 6824  " (abgerufen am 25. Juni 2015 )
  18. (de) "  Commercial Mobile MPTCP startet Proxy Service  "
  19. (in) "  Art-Nummern der TCP-Option des IANA-Registrierungsprotokolls  " (abgerufen am 24. September 2013 )
  20. (in) Costin Raiciu , Janardhan Iyengar , Olivier Bonaventure , Hamed Haddadi ( Regie ) und Olivier Bonaventure ( Hrsg. ), Jüngste Fortschritte bei zuverlässigen Transportprotokollen , ACM SIGCOMM,2013( online lesen )
  21. (in) Ramin Khalili , Nicolas Gast , Miroslav Popovic , Utkarsh Upadhyay und Jean-Yves Le Boudec , "  Proceedings of the 8th International Conference on Emerging Technologies and Networking Experiments - CoNEXT '12  " , Association for Computing Machinery ,2012, p.  1 ( ISBN  9781450317757 , DOI  10.1145 / 2413176.2413178 )
  22. (in) Qiuyu Peng Anwar Walid , Jaehyun Hwang und Steven H. Low , "  Multipath TCP: Analyse, Design und Implementierung  " , Association for Computing Machinery ,2013( arXiv  1308.3119 , online lesen )
  23. (en) P. Rodriguez und E. Biersack, „  Dynamischer paralleler Zugriff auf replizierte Inhalte im Internet  “ [ archive du27. September 2013] , IEEE / ACM-Transaktionen im Netzwerk,1 st Juli 2002
  24. (in) "  Warum wird SCTP benötigt? TCP und UDP sind weit verbreitet?  » , Auf isoc.org ,10. September 2007(abgerufen am 28. Juni 2016 )
  25. (in) R. Chakravorty, I. Pratt und P. Rodriguez, "  Mobile Access Router  " , Universität Cambridge, Microsoft Research,1 st Juli 2003