Three-way handshake

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Selon le protocole de communication TCP, une connexion entre deux hôtes s'établit en trois étapes : c'est le three-way handshake. Dès la connexion, on définit les numéros de séquence que l'on utilisera pour le transfert de données TCP.

Fonctionnement et théorie[modifier | modifier le code]

Des données sont transmises au serveur, puis du serveur à l'utilisateur qui en renvoie à nouveau.
Schéma de l'établissement d'une connexion TCP

Comme son nom l'indique, le three-way handshake se déroule en trois étapes :

  1. SYN : Le client qui désire établir une connexion avec un serveur va envoyer un premier paquet SYN (synchronized) au serveur. Le numéro de séquence de ce paquet est un nombre aléatoire A.
  2. SYN-ACK : Le serveur va répondre au client à l'aide d'un paquet SYN-ACK (synchronize, acknowledge). Le numéro du ACK est égal au numéro de séquence du paquet précédent (SYN) incrémenté de un (A + 1) tandis que le numéro de séquence du paquet SYN-ACK est un nombre aléatoire B.
  3. ACK : Pour terminer, le client va envoyer un paquet ACK au serveur qui va servir d'accusé de réception. Le numéro de séquence de ce paquet est défini selon la valeur de l'acquittement reçu précédemment (par exemple : A + 1) et le numéro du ACK est égal au numéro de séquence du paquet précédent (SYN-ACK) incrémenté de un (B + 1).

Une fois le three-way handshake effectué, le client et le serveur ont reçu un acquittement de la connexion. Les étapes 1 et 2 définissent le numéro de séquence pour la communication du client au serveur et les étapes 2 et 3 définissent le numéro de séquence pour la communication dans l'autre sens. Une communication full-duplex est maintenant établie entre le client et le serveur.

Articles connexes[modifier | modifier le code]