Accueil🇫🇷Chercher

Multipath TCP

Multipath TCP (MPTCP) est un effort continu du groupe de travail sur Multipath TCP de l'Internet Engineering Task Force (IETF) qui vise Ă  permettre Ă   TCP d'utiliser plusieurs chemins d'accès afin de maximiser l'utilisation des ressources et l'augmentation de la redondance tout en restant compatible avec les Ă©quipements actuels (firewall, NAT, ...)[1].

En , l'IETF a publié les spécifications de Multipath comme une norme expérimentale dans la RFC 6824[2].

Avantages

La redondance offerte par Multipath TCP rend accessible le multiplexage inverse de ressources, ce qui permet d'amĂ©liorer la cadence (throughput) de TCP jusqu'Ă  atteindre la somme des cadences en profitant des performances des diffĂ©rents canaux physiques au lieu de n'en utiliser qu'un seul, comme c'est le cas en TCP standard. Multipath TCP est en plus rĂ©tro-compatible avec le TCP classique. 

Multipath TCP est particulièrement utile dans le contexte des rĂ©seaux sans fil [3] - [4] - une utilisation particulièrement intĂ©ressante est de profiter simultanĂ©ment d'une connexion Wi-Fi et d'un rĂ©seau de tĂ©lĂ©phonie mobile.

Outre les gains en dĂ©bit de multiplexage inverse, des liens peuvent ĂŞtre ajoutĂ©s ou supprimĂ©s lorsque l'utilisateur se dĂ©place dans ou hors d'une zone de couverture sans perturber le fonctionnement de bout en bout de la connexion TCP. Le problème de la liaison de transfert intercellulaire est donc rĂ©solu par l'abstraction de la couche de transport, sans mĂ©canismes spĂ©ciaux Ă  ajouter au niveau de la couche rĂ©seau ou de la couche liaison de donnĂ©es . Le transfert intercellulaire peut ensuite ĂŞtre mise en Ĺ“uvre au niveau des postes clients sans nĂ©cessiter une fonctionnalitĂ© spĂ©ciale dans chaque sous-rĂ©seaux , conformĂ©ment au principe de bout-Ă -bout utilisĂ© sur internet.

Multipath TCP apporte Ă©galement des avantages de performance dans les centres de donnĂ©es[5]. Contrairement Ă  la liaison de canaux Ethernet utilisant l'agrĂ©gation de liens (802.3ad), le Multipath TCP peut Ă©quilibrer une seule connexion TCP Ă  travers de multiples interfaces[6].

Multipath TCP présente la même interface utilisateur que TCP. Il modifie TCP de sorte qu'il présente une interface standard pour les applications, alors qu'en fait, la diffusion de données à travers plusieurs subflows, ce qui permet d'utiliser MPTCP de manière transparente[7].

Implémentation

En , le groupe de travail sur MPTCP a signalé cinq implémentations indépendantes de Multipath TCP[8], y compris l'implémentation de référence[7] dans le noyau Linux[9] - [10].

Les implĂ©mentations actuellement disponibles sont :

En , Oracle rapporte qu'une mise en Ĺ“uvre sur Solaris est en cours d'Ă©laboration. En , le travail est toujours en cours[18].

Au cours de la réunion du groupe de travail sur MPTCP à l'IETF 93, SungHoon Seo a annoncé que KT avait déployé depuis la mi-juin, un service commercial qui permet aux utilisateurs de smartphones, d'atteindre un débit de 1 Gbit/s à l'aide d'un service de proxy utilisant MPTCP sur un smartphone Samsung Galaxy S6 avec le système d'exploitation Android[19].

Structure d'un segment TCP

La structure d'un segment multipath TCP est décrite en détail dans la RFC 6824.

Les structures de données utilisées par Multipath TCP sont situés dans les champs d'options TCP, dans une option de longueur variable dont l'identifiant est le numéro 30 réservé par l'IANA[20].

L'option multipath TCP a l'identifiant 30, une longueur variable et un contenu qui commence par un champ de 4 bits, pour lequel l'IANA a crĂ©Ă© et la volontĂ© de maintenir un sous-registre intitulĂ© MPTCP Option de sous-types dans le cadre du registre sur Protocole de contrĂ´le de transmission (TCP). Ces sous-type de champs sont dĂ©finis comme suit :

Valeur Symbole Nom Description
0x0 MP_CAPABLE Multipath Capable Indique que la session TCP actuelle supporte MPTCP.
0x1 MP_JOIN Joindre deux connections Indique qu'une connexion TCP précédemment établie est un sous-flux de la session MPTCP courante.
0x2 DSS Numéros de séquences de d'acquittement (à l'aide d'un système de mapping) Décrit la position et l'acquittement des données dans son ensemble (les numéros de séquence et d'acquittement classiques restent utilisées pour décrire la position dans chaque subflow).
0x3 ADD_ADDR Ajouter une adresse Demande d'ajouter une nouvelle adresse Ă  la session MPTCP.
0x4 REMOVE_ADDR Supprimer une adresse Supprime une adresse (spécifiée par son identifiant) de la session MPTCP.
0x5 MP_PRIO Changement de la priorité d'un sub-flow Change la priorité d'un subflow (par exemple parce qu'un lien comme une connexion 3G implique des coûts d'utilisation).
0x6 MP_FAIL Définir un lien de secours Demande de n'utiliser un lien qu'en cas de problème, si les autres liens sont indisponibles.
0x7 MP_FASTCLOSE Fermeture rapide Ferme l'ensemble de la session MPTCP (car les signaux RST et FIN servent Ă  fermer les subflows individuellement).
0xf (PRIVÉ) Usage réservé pour certains tests

Les valeurs 0x8 par 0xe sont actuellement non-attribuées.

Opérations du protocole

Spécifications détaillées

Le détail des spécifications du protocole est fourni dans la RFC 6824. Plusieurs articles peuvent fournir une introduction au protocole[21] - [22].

Description simplifiée

Différence entre TCP et MPTCP

L'idée de base de multipath TCP est de définir une façon d'établir un lien entre les deux hôtes et pas entre deux interfaces (comme en TCP standard).

Par exemple, Alice a un smartphone avec des interfaces 3G et WiFi (avec les adresses IP 10.11.12.13 et 10.11.12.14) tandis que Bob a un ordinateur avec une interface ethernet (avec adresse IP 20.21.22.23).

Dans une application TCP standard, la connexion doit être établie entre deux adresses IP (TCP définit la source et la destination comme des tuples adresse IP, port). Il n'est donc possible d'utiliser qu'un seul lien. Une application multipath TCP peut tirer profit de l'utilisation des chemins différents (un chemin, aussi appelé sub-flow est une connexion TCP standard entre deux interfaces) pour parler d'Alice à Bob.

Le but des différentes opérations du protocole (définies dans la RFC 6824) sont (parmi autres) :

  • pouvoir gĂ©rer quand et comment ajouter/supprimer des chemins (par exemple s'il y a une connexion perdue ou fortement congestionnĂ©e) ;
  • ĂŞtre compatible avec les anciens matĂ©riels supportant le TCP classique (tels que certains pare-feu qui peuvent rejeter automatiquement les connexions TCP si les numĂ©ros de sĂ©quence ne sont pas successifs) ;
  • dĂ©finir un juste contrĂ´le de congestion entre les diffĂ©rents liens et les diffĂ©rents hĂ´tes (surtout  ceux qui ne supportent pas MPTCP par rapport Ă  ceux qui le supportent) ;
Illustration d'une session MPTCP complète

Ceci est fait en ajoutant de nouveaux mécanismes aux transmissions TCP :

  • le système de sub-flow est utilisĂ© pour rassembler de multiples connexions TCP standard (qui sont entre deux interfaces). Au cours de la connexion TCP, nous identifions les sous-flux. Lors de la transmission, une application peut ajouter ou de supprimer certains sous-flux (grâce aux sous-type  0x3 et 0x4 dĂ©fini prĂ©cĂ©demment) ;
  • l'ajout de numĂ©ros de sĂ©quences et d'acquittement pour les donnĂ©es, dans le  champ d'option pour restituer les donnĂ©es Ă  partir de plusieurs sous-flux dans le bon ordre et sans corruption (sous-type 0x2) ;
  • un nouveau système de retransmission est utilisĂ© pour mettre en Ĺ“uvre le nouveau système de contrĂ´le de congestion tout en rendant le protocole fiable et rapide. 

ContrĂ´le de congestion

Plusieurs mĂ©canismes de contrĂ´le ont Ă©tĂ© dĂ©finis pour Multipath TCP. Leur principale diffĂ©rence avec les systèmes de contrĂ´le de congestion TCP classiques est qu'ils ont besoin de rĂ©agir Ă  la congestion sur les diffĂ©rents chemins sans ĂŞtre injustes pour les applications qui ne profitent que d'un chemin TCP (car elles ne supportent pas multipath TCP par exemple). Quatre stratĂ©gies de contrĂ´le de congestion sont actuellement supportĂ©es dans l'implĂ©mentation de rĂ©fĂ©rence au sein du noyau Linux. 

  • L'algorithme du linked increase classique, dĂ©fini dans RFC 6356
  • L'algorithme du linked increase opportuniste[23]
  • L'algorithme wVegas de contrĂ´le de congestion basĂ© sur le dĂ©lai
  • L'algorithme de link increase Ă©quilibrĂ© [24]

Alternatives

Stream Control Transmission Protocol

Stream Control Transmission Protocol (SCTP) est un protocole de transport fiable initialement prĂ©vu pour les tĂ©lĂ©communications de signalisation. Il prend en charge l'utilisation simultanĂ©e de plusieurs liens d'accès et permet Ă  une application d'influencer la sĂ©lection des interfaces d'accès Ă  un flux de base. Il prend Ă©galement en charge de la mobilitĂ© via la renĂ©gociation d'accès. Par consĂ©quent, SCTP est une autre solution sur la couche de transport au problème de mobilitĂ©. Il offre une granularitĂ© de type 3 avec concurrence mais avec plus de contrĂ´le du flux que multipath TCP. Il supporte aussi la mobilitĂ© d'une manière similaire Ă  Multipath TCP[25].

Bien que cette alternative puisse paraître très avantageuse, elle se base sur une technologie relativement peu déployée (par rapport à TCP) pour des applications non spécialisées[26].

IMS SIP

Dans l'architecture du "IP multimedia subsystem (IMS), le Protocole d'initiation de session (SIP) peut prendre en charge l'utilisation simultanĂ©e de plusieurs adresses IP de contact pour l'enregistrement d'un ou plusieurs agents utilisateurs IMS. Cela permet la crĂ©ation de plusieurs chemins de signalisation IMS. Sur ces chemins, des messages de signalisation portant un message Session Description Protocol (SDP) peuvent nĂ©gocier les flux de donnĂ©es. SDP permet de (re-)nĂ©gocier des flux d'une session de mĂ©dia sur plusieurs chemins. Cela permet donc d'activer un transport Ă  plusieurs chemins cette fois-ci au niveau de la couche transport (avec granularitĂ© des flux et accès concurrents). Une extension Ă  plusieurs chemins du Real-time Transport Protocol (RTP) est actuellement en cours de discussion au sein de l'IETF. Multipath RTP peut offrir de la granularitĂ© de flux avec des accès concurrents et de la mobilitĂ© (via IMS, la signalisation SDP ou le protocole de contrĂ´le RTP). [25]

Cependant, son déploiement à grande échelle pour une utilisation sur tous types de terminaux nécessiterait de grand changements de l'architecture réseau.

D'autres protocoles et expériences

Au niveau de la couche session, le « Mobile Access Router » est un projet expérimenté en 2003 proposant l'agrégation de plusieurs accès sans fil avec des technologies hétérogènes en respectant un équilibrage du trafic transparent vis-à-vis de la performance de chaque technologie[27].

Les schĂ©mas d'accès parallèles[25] utilisĂ©s pour accĂ©lĂ©rer les transferts en profitant du service d'octet afin d'Ă©tablir des connexions entre de multiples serveurs qui disposent du mĂŞme contenu rĂ©pliquĂ© ne sont pas Ă©quivalents Ă  Multipath TCP car ils impliquent une utilisation de la couche application et car ils sont limitĂ©s Ă  des contenus de taille connue. 

RFC

  • 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
  • RFC 7430 - Analysis of Residual Threats and Possible Fixes for Multipath TCP (MPTCP)

Notes et références

  1. (en) « Multipath TCP working group » (consulté le )
  2. (en) « TCP Extensions for Multipath Operation with Multiple Addresses », Request for comments no 6824, .
  3. (en) Christoph Paasch, Gregory Detal, Fabien Duchene, Costin Raiciu et Olivier Bonaventure, « Proceedings of the 2012 ACM SIGCOMM workshop on Cellular networks: Operations, challenges, and future design - Cell Net '12 », Association for Computing Machinery,‎ , p. 31 (ISBN 9781450314756, DOI 10.1145/2342468.2342476, lire en ligne)
  4. (en) « TCP with feed-forward source coding for wireless downlink networks »
  5. (en) Raiciu, Barre, Pluntke, Greenhalgh, Wischik et Handley, « Improving datacenter performance and robustness with multipath TCP », Sigcomm,‎ (lire en ligne)
  6. (en) C. Paasch, G. Detal, S. Barré, F. Duchêne et O. Bonaventure, « The fastest TCP connection with Multipath TCP » (consulté le )
  7. (en) « The Linux kernel MultiPath TCP project » (consulté le )
  8. (en) « Survey of MPTCP Implementations (Internet-Draft, 2013) » (consulté le )
  9. (en) Barre, Paasch et Bonaventure, « MultiPath TCP: From Theory to Practice », IFIP Networking,‎ (lire en ligne)
  10. (en) Raiciu, Paasch, Barre, Ford, Honda, Duchene, Bonaventure et Handley, « How Hard Can It Be? Designing and Implementing a Deployable Multipath TCP », Usenix NSDI,‎ (lire en ligne)
  11. (en) « Multipath TCP for FreeBSD v0.1 » (consulté le )
  12. (en) « Release Note: BIG-IP LTM and TMOS 11.5.0 », f5 Networks, (consulté le )
  13. (en) John Gudmundson, « Maximize mobile user experience with NetScaler Multipath TCP », Citrix, (consulté le )
  14. (en) « Apple seems to also believe in Multipath TCP » (consulté le )
  15. (en) « MPTCP Roams free (by default!) – OS X Yosemite » (consulté le )
  16. « Agrégation de liens avec OverTheBox », sur ovhtelecom.fr
  17. Hugo Bonnaffé, « Under The Box : découvrez les dessous d’OverTheBox », sur ovh.com,
  18. (en) Shoaib Rao, « Some comments on RFC 6824 » (consulté le )
  19. (en) « Commercial Mobile MPTCP Proxy service launch »
  20. (en) « IANA Protocol Registry TCP Option Kind Numbers » (consulté le )
  21. (en) Christoph Paasch et Olivier Bonaventure, « Multipath TCP », Communications of the ACM, vol. 57, no 4,‎ , p. 51–57 (DOI 10.1145/2578901, lire en ligne)
  22. (en) Costin Raiciu, Janardhan Iyengar, Olivier Bonaventure, Hamed Haddadi (dir.) et Olivier Bonaventure (dir.), Recent Advances in Reliable Transport Protocols, ACM SIGCOMM, (lire en ligne)
  23. (en) Ramin Khalili, Nicolas Gast, Miroslav Popovic, Utkarsh Upadhyay et Jean-Yves Le Boudec, « Proceedings of the 8th international conference on Emerging networking experiments and technologies - CoNEXT '12 », Association for Computing Machinery,‎ , p. 1 (ISBN 9781450317757, DOI 10.1145/2413176.2413178)
  24. (en) Qiuyu Peng, Anwar Walid, Jaehyun Hwang et Steven H. Low, « Multipath TCP: Analysis, Design and Implementation », Association for Computing Machinery,‎ (arXiv 1308.3119, lire en ligne)
  25. (en) P. Rodriguez et E. Biersack, « Dynamic parallel access to replicated content in the Internet » [archive du ], IEEE/ACM Transactions on Networking,
  26. (en) « Why is SCTP needed given TCP and UDP are widely available? », sur isoc.org, (consulté le )
  27. (en) R. Chakravorty, I. Pratt et P. Rodriguez, « Mobile Access Router », University of Cambridge, Microsoft Research,
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.