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.

  • (I.e. Connaître les quatre types de messages : SYN initie la connexion, ACK la confirme, SYN-ACK combine les deux et FIN la termine.
  • (I.e. Suivez les trois étapes : client SYN → serveur SYN-ACK → client ACK ; la session n'est établie qu'après l'arrivée du troisième paquet.
  • (I.e. Les numéros de séquence sont importants : Chaque partie choisit un numéro de séquence initial ; l'autre partie le confirme en ajoutant un, ce qui maintient le flux d'octets ordonné.
  • 🚪 Plan de démolition : Après le transfert de données, TCP ferme la connexion avec des paires FIN/ACK pour libérer le socket aux deux extrémités.
  • 🤖 Utiliser l'IA pour l'analyse des paquets : Les assistants IA expliquent Wireshark capture, signale les accusés de réception manquants et met en évidence les inondations SYN ou les connexions semi-ouvertes.

Prise de contact TCP à 3 voies

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 prise de contact TCP en trois étapes

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

Exemple concret de négociation TCP en trois étapes

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.

FAQ

Deux messages ne suffisent pas à prouver que les deux parties se sont entendues sur les numéros de séquence initiaux et sont prêtes à envoyer des données. Le troisième accusé de réception (ACK) confirme la réception de l'accusé de réception SYN du serveur, garantissant ainsi que les deux points de terminaison atteignent l'état ESTABLISHED avant le transfert des données.

SYN est un signal unique qui initie la communication et propose un numéro de séquence initial. SYN-ACK combine un SYN avec un accusé de réception du SYN précédent du pair, finalisant ainsi la synchronisation en un seul paquet.

Une attaque par inondation SYN submerge un serveur en envoyant de nombreux paquets SYN sans que la négociation SYN ne soit achevée. Les connexions partiellement ouvertes saturent la file d'attente et bloquent les utilisateurs légitimes. Les cookies SYN constituent la solution standard pour atténuer ce problème.

Le protocole TCP ferme une connexion par une poignée de main en quatre étapes, avec des échanges FIN et ACK. Chaque sens de connexion est fermé indépendamment, ce qui permet à une extrémité de terminer l'envoi des données même après que l'autre extrémité a terminé la sienne.

Le numéro de séquence initial est une valeur aléatoire de 32 bits choisie par chaque point de terminaison pour son propre flux d'octets. Il initialise le compteur utilisé pour détecter les segments manquants ou dupliqués et pour se protéger contre les paquets falsifiés.

Non. Le protocole UDP est sans connexion et envoie des datagrammes sans aucune négociation préalable. Cela le rend plus rapide et plus léger que le protocole TCP, mais les applications doivent gérer elles-mêmes la fiabilité, l'ordonnancement et le contrôle de la congestion.

Les assistants IA annotent les captures de paquets, classent les retransmitIls traitent les s et les RST et détectent les inondations SYN. ​​Ils traduisent Wireshark Les filtres sont traduits en langage clair et la prochaine étape de diagnostic pour les problèmes de connectivité est recommandée.

Oui. Les assistants de codage IA transforment une requête en langage clair en une Python Scapy ou un script netcat qui déclenche et inspecte la poignée de main en trois étapes, puis explique chaque ligne afin que les ingénieurs puissent la vérifier avant de l'exécuter.

Résumez cet article avec :