Ci-dessous, les différences entre deux révisions de la page.
|
gabriel_rotella:gabriel_rotella2 [2020/06/02 17:37] Gabriel Rotella créée |
gabriel_rotella:gabriel_rotella2 [2020/06/03 10:05] (Version actuelle) Gabriel Rotella |
||
|---|---|---|---|
| Ligne 7: | Ligne 7: | ||
| MPTCP est un protocole de couche transport qui consiste en un ensemble d'extensions TCP dont le but est de faire fonctionner une connexion TCP sur plusieurs chemins ou sous-flux de données simultanément. De cette façon, en utilisant plusieurs chemins différents, il est possible de maximiser les ressources réseau d'un nœud avec plusieurs interfaces. MPTCP a eu sa première définition formelle par l'IETF en 2013 dans la RFC 6824 et à ce jour de nombreuses études ont été réalisées à cet égard ainsi que plusieurs autres RFC ont été définis. | MPTCP est un protocole de couche transport qui consiste en un ensemble d'extensions TCP dont le but est de faire fonctionner une connexion TCP sur plusieurs chemins ou sous-flux de données simultanément. De cette façon, en utilisant plusieurs chemins différents, il est possible de maximiser les ressources réseau d'un nœud avec plusieurs interfaces. MPTCP a eu sa première définition formelle par l'IETF en 2013 dans la RFC 6824 et à ce jour de nombreuses études ont été réalisées à cet égard ainsi que plusieurs autres RFC ont été définis. | ||
| - | + | {{ :gabriel_rotella:imagenmptcp.jpg?400 |}} | |
| La motivation derrière la création de ce nouveau protocole est d'utiliser toute la capacité offerte par les ressources réseau qu'un nœud peut avoir. TCP limite la communication entre deux extrémités à une seule connexion au niveau du transport. Ces connexions sont établies socket à socket, de sorte que chaque extrémité est associée à une seule paire d'adresses de port IP et donc à une interface unique et à un chemin réseau unique. Mais que se passe-t-il si nous avons plusieurs cartes réseau? Dans ce cas, avec TCP, nous gaspillerions des ressources précieuses. | La motivation derrière la création de ce nouveau protocole est d'utiliser toute la capacité offerte par les ressources réseau qu'un nœud peut avoir. TCP limite la communication entre deux extrémités à une seule connexion au niveau du transport. Ces connexions sont établies socket à socket, de sorte que chaque extrémité est associée à une seule paire d'adresses de port IP et donc à une interface unique et à un chemin réseau unique. Mais que se passe-t-il si nous avons plusieurs cartes réseau? Dans ce cas, avec TCP, nous gaspillerions des ressources précieuses. | ||
| Ligne 45: | Ligne 45: | ||
| La connexion avec MPTCP se fait de manière très similaire à celle qui est effectuée dans TCP; la prise de contact à trois voies est toujours la méthode d'établissement de la connexion. La seule différence est qu'en plus des indicateurs SYN et ACK correspondants, il dispose également d'une option TCP associée qui indiquera qu'il s'agit d'une connexion MPTCP. La figure montre l'échange de messages effectué pour établir la connexion; qui est exactement la même que dans TCP. | La connexion avec MPTCP se fait de manière très similaire à celle qui est effectuée dans TCP; la prise de contact à trois voies est toujours la méthode d'établissement de la connexion. La seule différence est qu'en plus des indicateurs SYN et ACK correspondants, il dispose également d'une option TCP associée qui indiquera qu'il s'agit d'une connexion MPTCP. La figure montre l'échange de messages effectué pour établir la connexion; qui est exactement la même que dans TCP. | ||
| + | {{ :gabriel_rotella:imagen1mptcp.jpg?400 |}} | ||
| Ligne 55: | Ligne 55: | ||
| Cependant, bien que le transfert de données puisse être démarré avec cette connexion, aucun autre sous-flux n'a encore été ajouté pour utiliser TCP sur plusieurs chemins. | Cependant, bien que le transfert de données puisse être démarré avec cette connexion, aucun autre sous-flux n'a encore été ajouté pour utiliser TCP sur plusieurs chemins. | ||
| + | {{ :gabriel_rotella:imagen2mptcp.jpg?400 |}} | ||
| ==== * Ajout de sous-flux ==== | ==== * Ajout de sous-flux ==== | ||
| Ligne 61: | Ligne 62: | ||
| Analogue à l'établissement de la connexion MPTCP, l'ajout de trois flux produit également une prise de contact à trois voies. Cependant, l'option MPTCP utilisée dans ce cas est MP_JOIN. | Analogue à l'établissement de la connexion MPTCP, l'ajout de trois flux produit également une prise de contact à trois voies. Cependant, l'option MPTCP utilisée dans ce cas est MP_JOIN. | ||
| + | {{ :gabriel_rotella:imagen3mptcp.jpg?400 |}} | ||
| Dans le cas de la figure, l'hôte A démarré un nouveau sous-flux entre l'une de ses adresses IP et l'une des adresses IP de l'hôte B. Le jeton utilisé est généré à partir de la clé B et sert à identifier la connexion à laquelle le nouveau sous-flux est ajouté. D'autre part, le HMAC (Hash-based Message Authentication Code), utilisé pour l'authentification, est généré à partir des nonces (« number that can be only used once », nombres aléatoires) avec les clés échangées dans l'établissement de la connexion. De plus, des identifiants d'adresse sont également envoyés qui peuvent être utilisés pour référencer l'adresse source du flux, évitant ainsi d'éventuels problèmes de changement d'adresse IP lors du passage par un NAT (Network Address Translation). | Dans le cas de la figure, l'hôte A démarré un nouveau sous-flux entre l'une de ses adresses IP et l'une des adresses IP de l'hôte B. Le jeton utilisé est généré à partir de la clé B et sert à identifier la connexion à laquelle le nouveau sous-flux est ajouté. D'autre part, le HMAC (Hash-based Message Authentication Code), utilisé pour l'authentification, est généré à partir des nonces (« number that can be only used once », nombres aléatoires) avec les clés échangées dans l'établissement de la connexion. De plus, des identifiants d'adresse sont également envoyés qui peuvent être utilisés pour référencer l'adresse source du flux, évitant ainsi d'éventuels problèmes de changement d'adresse IP lors du passage par un NAT (Network Address Translation). | ||
| Ligne 72: | Ligne 74: | ||
| De cette façon, les mécanismes sont définis pour assurer la livraison fiable des données à la fois au niveau du flux MPTCP (avec le DSN et les données ACK), ainsi qu'au niveau du sous-flux en utilisant les mécanismes TCP. | De cette façon, les mécanismes sont définis pour assurer la livraison fiable des données à la fois au niveau du flux MPTCP (avec le DSN et les données ACK), ainsi qu'au niveau du sous-flux en utilisant les mécanismes TCP. | ||
| + | {{ :gabriel_rotella:imagen4mptcp.jpg?400 |}} | ||
| ==== * Fermeture de conexión ==== | ==== * Fermeture de conexión ==== | ||