La mise en réseau

Quelles sont les étapes d'une prise de contact TCP?

Quelles sont les étapes d'une prise de contact TCP?

TCP ou Transmission Control Protocol est un protocole de couche de transport standard qu'Internet utilise pour transmettre des données. Request  For  Comments  (RFC)  793 définit le TCP comme un protocole fiable et orienté connexion. Comme il est orienté connexion, un chemin ou une connexion doit être établi avant de transmettre des données. TCP utilise un mécanisme de poignée de main à trois voies pour établir une connexion entre deux appareils. Dans ce guide, nous verrons comment fonctionne le mécanisme de poignée de main à trois voies. Voyons d'abord les problèmes avec le modèle de poignée de main bidirectionnelle.

Problèmes avec le modèle de prise de contact bidirectionnelle

Le modèle d'établissement de liaison bidirectionnel a échoué en raison d'un ancien problème de paquet en double. Supposons qu'un ancien paquet en double arrive sur la machine serveur. Cet ancien paquet est arrivé d'une connexion précédemment fermée et contient un numéro de séquence « z ». À un moment donné lors de la nouvelle connexion, le serveur accepte un paquet avec un numéro de séquence « z ». Lorsqu'il reçoit cet ancien paquet avec le même numéro de séquence « z », il accepte sans le savoir cet ancien paquet et rejette le paquet réel de la nouvelle connexion.

Dans le cas ci-dessus, si une connexion n'est pas établie entre le client et le serveur, l'arrivée d'un ancien paquet de demande de connexion en double pose toujours des problèmes. Si le serveur reçoit un tel paquet, il répondra avec un paquet SYN+ACK. Ce paquet sera abandonné par le client car il n'avait pas l'intention de se connecter. Mais le serveur entrera dans l'état de blocage, en attendant que le client envoie les données.

Un autre problème est que si un hôte C envoie une demande de connexion au serveur en usurpant l'identité du client, le serveur répondra avec un ACK au client. Le client supprimera ce paquet 'ACK' et demandera au serveur de mettre fin à la connexion. Pendant cet intervalle d'événements, l'hôte C peut lancer une attaque d'usurpation d'identité en envoyant de nombreux paquets.

Le modèle de poignée de main à trois voies dans TCP/IP

Le modèle de poignée de main à trois voies est très important. Si nous ne l'utilisons pas et commençons directement à envoyer des données, l'application réceptrice peut commencer à recevoir des paquets en double. L'attaquant peut avoir une chance de lancer des attaques (comme DDoS) entre une connexion. La procédure de poignée de main à trois voies est lancée par une machine et l'autre côté y répond. La convention suivante est utilisée pour expliquer cette procédure :

"Si un site reçoit un paquet avec le numéro de séquence 'x', il répondra avec le numéro ACK 'x+1'."

Résumons les étapes de la négociation à trois entre un ordinateur client et un ordinateur serveur :

Étape 1. Dans la première poignée de main, le client envoie un paquet de demande de connexion SYN avec un numéro de séquence initial aléatoire (« x ») au serveur.

Étape 2. Dans la deuxième poignée de main, le serveur répond avec un paquet SYN qui a un numéro de séquence aléatoire ('y') et un paquet ACK avec un numéro de séquence ('x+1') pour accuser réception du numéro de séquence initial ('x') envoyé par le client.

Étape 3. Dans la troisième poignée de main, le client enverra un paquet ACK avec un numéro de séquence ('y+1') au serveur pour accuser réception du paquet SYN ('y') envoyé par le serveur.

Étape 4. Les deux extrémités sont maintenant synchronisées et peuvent commencer à transmettre des données indépendamment. [1]

La procédure de négociation à trois voies TCP est toujours valide si les deux côtés démarrent simultanément le processus d'initialisation. Dans une telle situation, chaque machine, après avoir envoyé un paquet "SYN", recevra un segment "SYN" sans acquittement. Si un ancien paquet "SYN" en double arrive au récepteur, il peut apparaître au récepteur qu'un processus d'initiation de connexion est en cours en même temps. On peut utiliser les paquets « reset » pour lever cette ambiguïté.

Terminaison de la connexion TCP

L'un ou l'autre des deux côtés peut mettre fin à une connexion TCP. Pour cela, n'importe quel côté peut transmettre un segment TCP avec le bit FIN défini. Cela signifie que le côté expéditeur n'a plus de données à envoyer. Le côté récepteur accusera réception de ce paquet FIN en envoyant un paquet d'accusé de réception. Cela fermera la connexion d'un côté (côté expéditeur). Maintenant, le récepteur utilisera les mêmes étapes pour mettre fin à la connexion en son nom. Cela fermera complètement la connexion.

Problèmes avec le modèle de poignée de main à trois voies

Dans le cas où un ACK du client au serveur est perdu ou bloqué lors de la troisième étape de la prise de contact, le client ne sera pas au courant de cette situation. Le client supposera que la connexion est établie et commencera à envoyer des données. Le serveur attend toujours l'ACK, qui était déjà perdu, il rejettera donc les données reçues du client. [2]

Conclusion

Dans ce guide, nous avons appris les procédures de connexion TCP à l'aide d'une poignée de main à trois. Nous avons également vu le problème des paquets en double associé à la procédure de prise de contact bidirectionnelle et comment il a été résolu avec un modèle de prise de contact à trois voies. De nombreux chercheurs ont contribué à divers articles de recherche pour améliorer le modèle de poignée de main à trois voies et surmonter les problèmes qui y sont associés.

Les références

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP : un serveur d'établissement de liaison à trois voies pour l'établissement de la connexion TCP. Sciences appliquées, 6(11), 358. https://doi.organisation/10.3390/app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). Protocole TCP à trois voies basé sur l'intrication quantique. Journal des ordinateurs, 27 (3), 33-40, doi:10.3966/199115592016102703004
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...
Contrôlez et gérez le mouvement de la souris entre plusieurs moniteurs dans Windows 10
Gestionnaire de souris à double affichage vous permet de contrôler et de configurer le mouvement de la souris entre plusieurs moniteurs, en ralentissa...
WinMouse vous permet de personnaliser et d'améliorer le mouvement du pointeur de la souris sur un PC Windows
Si vous souhaitez améliorer les fonctions par défaut de votre pointeur de souris, utilisez un logiciel gratuit WinMouse. Il ajoute plus de fonctionnal...