Que signifie la poignée de main à trois ?
Une négociation à trois est une méthode utilisée dans un réseau TCP/IP pour créer une connexion entre un hôte/client local et un serveur.
Il s'agit d'une méthode en trois étapes conçue pour permettre aux deux extrémités communicantes d'initier et de négocier les paramètres de la connexion réseau socket TCP en même temps avant la transmission de données telles que HTTP et SSH.
Plusieurs connexions socket TCP peuvent être transmises simultanément dans les deux sens. Une prise de contact à trois voies est également connue sous le nom de prise de contact TCP ou SYN-SYN-ACK, et nécessite que le client et le serveur échangent des paquets SYN (synchronisation) et ACK (accusé de réception) avant le début de la communication de données réelle.
En fait, son nom provient des trois messages transmis par TCP avant qu'une session entre les deux extrémités ne soit initiée.
Weendoz explique la poignée de main à trois
Une négociation à trois voies est principalement utilisée pour créer une connexion socket TCP afin de transmettre de manière fiable des données entre les appareils. 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 d'établissement de liaison à trois voies initie le trafic TCP en suivant trois étapes.
Les trois étapes d'une poignée de main à trois
Étape 1 : Une connexion entre le serveur et le client est établie
Tout d'abord, une connexion entre le serveur et le client est établie, le serveur cible doit donc disposer de ports ouverts capables d'accepter et d'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 souhaite utiliser pour la communication (par exemple, X). L'objectif de ce paquet est de demander/déduire si le serveur est ouvert à de nouvelles connexions.
Étape 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 (Acknowledgement Sequence Number) ou paquet SYN/ACK. Ce paquet comprend deux numéros de séquence.
Le premier est ACK un, qui est défini par le serveur sur un numéro 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 reconnu le paquet du client et qu'il envoie également le sien pour être accusé de réception.
Étape 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. Encore une fois, chaque côté doit accuser réception du numéro de séquence reçu en l'incrémentant de un.
C'est donc maintenant 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.
Une fois ce processus terminé, 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 émis des deux côtés, garantissant ainsi la stabilité de la connexion.
Étant donné que les deux hôtes doivent reconnaître les paramètres de connexion de l'autre côté, un segment manquant ou en panne peut être rapidement détecté avant que le processus de transfert de données proprement dit ne soit lancé.