Three-way handshake
Selon le protocole de communication TCP, une connexion entre deux hôtes s'établit en trois étapes : c'est le three-way handshake. À la connexion, on définit les numéros de séquence que l'on utilisera pour le transfert de données TCP.
Fonctionnement
modifierComme 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.
- 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.
- 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 augmenté de 1 par rapport au dernier qu'il a envoyé (soit 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
modifierBibliographie
modifier- TCP/IP tutorial and technical overview, IBM International Technical Support Organization, coll. « IBM redbooks », (ISBN 978-0-7384-9468-5), p. 162-163
Notes et références
modifier- TCP/IP tutorial and technical overview, IBM International Technical Support Organization, coll. « IBM redbooks », (ISBN 978-0-7384-9468-5), p. 162-163