Qu'est-ce que Three-way handshake (établissement en trois temps) ?

Procédure qui établit une connexion TCP. 3 échanges, le SYN du client, le SYN+ACK du serveur et l'ACK du client, confirment le numéro de séquence initial de chaque partie.

Nom japonais: 3ウェイハンドシェイク

« Three-way handshake (établissement en trois temps) » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Bases des réseaux informatiques.

Domaine: Bases des réseaux informatiques

Ce que font les 3 échanges

Le client demande une connexion avec un SYN et annonce son numéro de séquence initial. Le serveur répond par un SYN+ACK, qui accuse réception de ce numéro et annonce son propre numéro de séquence initial. Lorsque le client en accuse réception par un ACK, chaque sens a confirmé que « l'autre partie connaît mon numéro », et les données peuvent circuler. Confirmer les numéros évite les connexions erronées causées par d'anciens paquets qui traînent sur le réseau.

Temps de connexion

Il s'écoule au moins un temps aller-retour (RTT) avant que des données puissent être envoyées. HTTPS nécessite en plus une poignée de main TLS ; une requête ne peut donc être envoyée qu'après 2 allers-retours au total avec TLS 1.3, ou 3 avec TLS 1.2. Plus le serveur est loin, plus le RTT est grand ; on réduit donc le nombre d'allers-retours en réutilisant les connexions (connexions persistantes) ou en combinant les poignées de main, comme le fait QUIC dans HTTP/3.

Fermeture et inondation SYN

La fermeture d'une connexion demande en général 4 échanges, car chaque sens est fermé séparément par un FIN et un ACK. Une attaque qui envoie un grand nombre de SYN avec des adresses source falsifiées, obligeant le serveur à garder des connexions à moitié ouvertes jusqu'à épuisement de ses ressources, s'appelle une inondation SYN (SYN flood). Parmi les contre-mesures figurent les SYN cookies, qui permettent au serveur de répondre sans conserver d'état.

S'entraîner : questions sur Three-way handshake (établissement en trois temps)

Dans le three-way handshake (établissement en trois temps) qui ouvre une connexion TCP, quel est l'ordre correct des paquets échangés ?

  1. ASYN → ACK → FIN
  2. BACK → SYN → SYN+ACK
  3. CSYN → SYN+ACK → ACK
Afficher la réponse et l'explication

Réponse : C. SYN → SYN+ACK → ACK

Dans le three-way handshake, le client demande d'abord une connexion avec un SYN et annonce le premier numéro des données qu'il enverra (son numéro de séquence initial). Le serveur répond par un SYN+ACK : il en accuse réception (ACK) et annonce en même temps son propre numéro de séquence initial. Enfin, le client renvoie un ACK, et les deux sens de communication sont prêts. Confirmer les numéros dans les deux sens en 3 échanges évite par exemple des connexions erronées dues à d'anciens paquets arrivés en retard. Par conséquent, TCP a besoin d'au moins un temps aller-retour (RTT) avant que les données puissent commencer à circuler. FIN sert à fermer une connexion.

Questions fréquentes

Pourquoi faut-il 3 échanges et non 2 ?

Le numéro de séquence initial de chaque partie doit être confirmé comme reçu par l'autre. Avec seulement 2 échanges, le serveur ne pourrait pas confirmer que son numéro est parvenu au client.

UDP a-t-il un three-way handshake ?

Non. UDP n'établit pas de connexion et peut donc envoyer des données immédiatement. QUIC, qui fonctionne au-dessus d'UDP, effectue sa propre poignée de main, combinée à l'échange de clés cryptographiques.

« Three-way handshake (établissement en trois temps) » dans les explications

Questions mentionnant « Three-way handshake (établissement en trois temps) » (2)

  1. Dans le three-way handshake (établissement en trois temps) qui ouvre une connexion TCP, quel est l'ordre correct des paquets échangés ?
  2. Un client établit une nouvelle connexion HTTPS (TLS 1.3 sur TCP) vers un serveur web dont le temps aller-retour (RTT) est de 100 ms. Quelle durée est la plus proche du temps nécessaire jusqu'au début de la réception de la réponse à la première requête ? La résolution DNS est déjà faite, et l'on néglige le temps de traitement du serveur et le temps de transfert des données.

Termes associés

TLS (Transport Layer Security) DNS (Domain Name System) HTTP (Hypertext Transfer Protocol) Adresse MAC ARP (Address Resolution Protocol) CIDR (Classless Inter-Domain Routing) CSMA/CA DHCP (Dynamic Host Configuration Protocol) Masque de sous-réseau Modèle OSI (modèle de référence OSI)

Retour au glossaire