Prise de contact TCP à 3 voies (SYN, SYN-ACK,ACK)
⚡ Résumé intelligent
L'établissement d'une connexion TCP en trois étapes (TCP 3-Way Handshake) est le rituel initial de toute session TCP. Un client et un serveur échangent des paquets SYN, SYN-ACK et ACK pour synchroniser les numéros de séquence et confirmer que les deux parties sont prêtes avant l'envoi du moindre octet de données applicatives.

Qu'est-ce que la poignée de main TCP en trois temps ?
Le Prise de contact TCP à trois voies est la procédure qu'un client et un serveur utilisent sur un Réseau TCP/IP Afin d'établir une connexion fiable avant tout échange de données applicatives, cette opération se déroule en trois étapes : les deux parties échangent des paquets de synchronisation (SYN) et d'accusé de réception (ACK) et conviennent des numéros de séquence initiaux qu'elles utiliseront.
Le protocole d'établissement de liaison permet aux deux extrémités d'initier, de négocier et de fermer des sockets TCP de manière symétrique. Une fois l'établissement de liaison terminé, la connexion est bidirectionnelle (full-duplex) : les deux parties peuvent envoyer et recevoir des données en parallèle jusqu'à ce que l'une d'elles envoie un signal FIN pour fermer la session.
Types de messages TCP
Quatre drapeaux de contrôle apparaissent à plusieurs reprises lors de la phase d'établissement de la liaison et de la phase de démontage.
| Message | Description |
|---|---|
| SYN | Établit une connexion et synchronise les numéros de séquence entre les appareils. |
| ACK | Confirme à l'autre partie que le segment précédent a été reçu. |
| SYN-ACK | Un message combiné — un SYN provenant du périphérique local plus un ACK du SYN précédent du pair. |
| FIN | Utilisé pour mettre fin à une connexion proprement. |
Processus de négociation à trois voies TCP
Le trafic TCP commence toujours par une négociation en trois temps. Le client initie la communication en demandant une session au serveur.
Diagramme de poignée de main en trois étapes.
- Étape 1 — SYN : Le client envoie un segment avec l'indicateur SYN activé. Il indique au serveur « Je souhaite commencer à communiquer » et propose un numéro de séquence initial.
- Étape 2 — SYN-ACK : Le serveur répond par un segment contenant les indicateurs SYN et ACK. L'ACK accuse réception du SYN du client, et le SYN propose le numéro de séquence initial du serveur.
- Étape 3 — ACK : Le client accuse réception du SYN-ACK du serveur par un ACK final. La connexion est désormais établie et les deux parties peuvent commencer. transmitDonnées de l'application de traitement.
Exemple du monde réel
Voici un exemple concret avec des numéros de séquence.
- L'hôte X initie la connexion en envoyant un paquet TCP SYN au serveur. Ce paquet contient un numéro de séquence initial aléatoire, par exemple :
4321— qui marque le début du flux d'octets que l'hôte X enverra. - Le serveur reçoit le SYN et répond par un SYN-ACK. Le numéro d'ACK est le numéro de séquence de l'hôte X incrémenté de 1 (
4322), et le SYN propose le propre numéro de séquence initial du serveur. - L'hôte X répond par un ACK final dont le numéro d'accusé de réception est le numéro de séquence du serveur incrémenté de 1.
Une fois l'échange de données terminé, TCP interrompt la connexion avec une séquence FIN/ACK à quatre voies afin que les deux points de terminaison puissent libérer la socket proprement.
Pourquoi TCP a besoin d'une poignée de main en trois étapes
Cette poignée de main n'est pas qu'une simple formalité : elle résout trois problèmes concrets liés au transport fiable de flux d'octets :
- Synchronisation des numéros de séquence : Les deux pairs apprennent le numéro de séquence initial de l'autre côté, que TCP utilise pour détecter les segments perdus ou désordonnés.
- Accord d'état de connexion : Le troisième ACK confirme que le SYN-ACK du serveur est arrivé ; aucun des deux côtés ne commence donc à envoyer des données tant que les deux ne sont pas dans le système. ÉTABLI Etat.
- Protection contre les paquets dupliqués : Des numéros de séquence initiaux aléatoires et des états de connexion temporisés empêchent l'acceptation par erreur de segments obsolètes d'une session précédente.
Problèmes courants liés à l'établissement de la liaison TCP
La connexion est robuste, mais elle présente des défaillances identifiables. Les ingénieurs réseau constatent généralement l'un des problèmes suivants :
- Attaques par inondation SYN : Un client malveillant envoie des milliers de requêtes SYN sans répondre aux SYN-ACK, saturant ainsi la table de connexions du serveur. Les cookies SYN constituent la défense standard.
- Connexions semi-ouvertes : Lorsque le troisième accusé de réception est perdu, la connexion reste semi-ouverte et est finalement fermée par un délai d'expiration.
- Interruptions en cours de vol dues au pare-feu ou au NAT : Les boîtiers intermédiaires avec état qui perdent leur état peuvent abandonner les paquets SYN-ACK et obliger le client à réessayer.
- Réinitialisations RST : Si le serveur n'écoute pas sur le port demandé, il répond à une requête SYN par une requête RST, ce qui met fin immédiatement à la tentative.


