Une prise de main à trois voies est principalement utilisée pour créer une connexion socket TCP afin de transmettre des données de manière fiable entre des périphériques. Par exemple, il prend en charge la communication entre un navigateur Web côté client et un serveur chaque fois qu’un utilisateur navigue sur Internet.
Dès qu’un client demande une session de communication avec le serveur, un processus de poignée de main à trois voies initie le trafic TCP en suivant trois étapes.
Les trois étapes d’une poignée de main à trois voies
Etape 1 : Une connexion entre le serveur et le client est établie
D’abord, une connexion entre le serveur et le client est établie, donc le serveur cible doit avoir des ports ouverts qui peuvent accepter et initier de nouvelles connexions. Le nœud client envoie un paquet de données SYN (Synchronize Sequence Number) sur un réseau IP à un serveur sur le même réseau ou sur un réseau externe.
Ce paquet SYN est un numéro de séquence aléatoire que le client veut utiliser pour la communication (par exemple, X). L’objectif de ce paquet est de demander/inférer si le serveur est ouvert à de nouvelles connexions.
Etape 2 : Le serveur reçoit le paquet SYN du nœud client
Lorsque le serveur reçoit le paquet SYN du nœud client, il répond et renvoie un accusé de réception – le paquet ACK (Accusation de numéro de séquence) ou paquet SYN/ACK. Ce paquet comprend deux numéros de séquence.
Le premier est le ACK one, qui est fixé par le serveur à un de plus que le numéro de séquence qu’il a reçu du client (par exemple, X+1).
Le second est le SYN envoyé par le serveur, qui est un autre numéro de séquence aléatoire (par exemple, Y).
Cette séquence indique que le serveur a correctement accusé réception du paquet du client, et qu’il envoie le sien pour qu’il soit également accusé réception.
Etape 3 : le nœud client reçoit le SYN/ACK du serveur et répond avec un paquet ACK
Le nœud client reçoit le SYN/ACK du serveur et répond avec un paquet ACK. Une fois encore, chaque partie doit accuser réception du numéro de séquence reçu en l’incrémentant de un.
C’est donc au tour du client d’accuser réception du paquet du serveur en ajoutant un au numéro de séquence (dans ce cas, Y+1), et de le renvoyer au serveur.
A l’issue de ce processus, la connexion est créée et l’hôte et le serveur peuvent communiquer.
Toutes ces étapes sont nécessaires pour vérifier les numéros de série provenant des deux côtés, garantissant ainsi la stabilité de la connexion.
Puisque les deux hôtes doivent accuser réception des paramètres de connexion de l’autre côté, un segment manquant ou hors d’ordre peut être rapidement détecté avant que le processus de transfert de données proprement dit ne soit lancé.
La connexion est établie par le serveur.
0 commentaire