Analyse TCP 3-Way Handsake dans Wireshark

Analyse Tcp 3 Way Handsake Dans Wireshark



Le protocole de contrôle de transmission est un protocole très important dans la couche de transport pour le modèle OSI ou TCP/IP. Il y a de nombreux avantages dans TCP comme :

  • TCP effectue une retransmission si des données envoyées ne sont pas reconnues par le récepteur dans un certain délai.
  • TCP établit une connexion avant d'envoyer les données. Nous appelons cette connexion une poignée de main à trois.
  • TCP a un mécanisme de contrôle de congestion.
  • TCP peut détecter une erreur en utilisant certaines méthodes.

Apprenons principalement sur la poignée de main TCP à 3 voies. Découvrons également les champs importants de Wireshark pour la poignée de main à 3 voies.







Poignée de main à 3 voies

Il y a trois échanges de trames qui se produisent dans une poignée de main à 3 voies :



  1. SYN
  2. AFFICHER+ACK
  3. ACK

La première trame est toujours envoyée par le client au serveur. Comprenons cela à partir d'un schéma simple:



'SERVEUR CLIENT'

Frame1 : le client envoie une trame SYN au serveur---------------------------------------->

<-----------------------------------------------Le serveur envoie la trame SYN+ACK au client : Frame2

Frame3 : le client envoie une trame ACK au serveur---------------------------------------->

Nous pouvons voir ces trois cadres dans Wireshark. Le filtre 'tcp' peut être utilisé dans Wireshark pour voir toutes les trames TCP. Voici la capture d'écran pour les trois cadres :





Comprenons maintenant les trois cadres en détail :



SYN

Cette trame contient de nombreuses informations sur les capacités du client à informer le serveur. La capture d'écran suivante montre tous les champs importants de la trame SYN :

Voici les champs importants pour la trame SYN :

Port source : 50602
Port de destination : 80
Numéro de séquence : 0
Numéro d'accusé de réception : 0
Longueur de l'en-tête : 32 octets
Drapeaux : 0x002 (SYN) :
Accusé de réception : non défini
Pousser : non défini
Réinitialiser : Non défini
Syn : Définir  -----> Ce bit est défini car il s'agit d'une trame SYN.
Aileron : non défini

Fenêtre : 65535
Pointeur urgent : 0
Option TCP - Taille de segment maximale : 1 460 octets
Option TCP - Échelle de la fenêtre : 3 (multiplier par 8)
Option TCP - SACK autorisé

AFFICHER+ACK

Cette trame contient de nombreuses informations sur les capacités du serveur à informer le client. La capture d'écran suivante montre tous les champs importants de la trame SYN+ACK :

Cette trame accuse également réception de la trame SYN envoyée par le client.

Voici les champs importants pour la trame SYN+ACK :

Port source : 80
Port de destination : 50602
Numéro de séquence : 0
Numéro d'accusé de réception : 1

Longueur d'en-tête : 32 octets (8)
Drapeaux : 0x012 (SYN, ACK)
Accusé de réception : définir
Pousser : non défini
Réinitialiser : Non défini
Son : Set
Aileron : non défini

Fenêtre : 29200
Pointeur urgent : 0
Option TCP - Taille de segment maximale : 1 412 octets
Option TCP - SACK autorisé
Option TCP - Échelle de fenêtre : 7 (multiplier par 128)

Nous pouvons voir que les bits 'Acknowledge' et 'SYN' sont définis dans cette trame. C'est parce que cette trame est SYN+ACK.

ACK

Cette trame est la dernière trame de la poignée de main à trois voies et également l'accusé de réception du SYN + ACK par le client. La capture d'écran suivante montre tous les champs importants de la trame ACK :

Voici les champs importants pour la trame ACK :

Port source : 50602
Port de destination : 80
Numéro de séquence : 1
Numéro d'accusé de réception : 1
Longueur d'en-tête : 20 octets (5)
Drapeaux : 0x010 (accusé de réception)
Urgent : Non défini
Accusé de réception : définir
Pousser : non défini
Réinitialiser : Non défini
Syn : Non défini
Aileron : non défini

Fenêtre : 32768

Ici, seul le bit 'Acknowledge' est défini car il s'agit d'une trame ACK.

Explication de certains champs communs importants

Port 80 : Nous avons observé un port fixe 80 dans ce tutoriel. C'est parce qu'il s'agit d'une capture HTTP et que le port 80 est fixe (côté serveur) pour la communication HTTP.

Numéro de séquence : Le numéro de séquence de cette trame. Sync est la première image, nous avons donc 0 comme numéro de séquence.

Indicateurs TCP :

Reconnaissance – Ce bit est défini si la trame est un ACK. Exemple : SYN+ACK, trame ACK.

SYN – Ce bit est défini si la trame est un SYN. Exemple : SYN.

Fenêtre : Ce champ partage la taille de fenêtre maximale de l'expéditeur en mode réception. Exemple : Nous avons une taille de fenêtre de 65 535 octets dans la trame SYN. Cela signifie que le récepteur peut recevoir un maximum de données TCP de 65535 octets à tout moment.

SAC Autorisé : Ce bit est défini si l'envoi prend en charge SACK [accusé de réception sélectif].

Taille maximale des segments : On peut aussi l'appeler MSS. Cela définit la trame de données maximale que l'expéditeur peut recevoir. Exemple : nous obtenons MSS sous la forme de 1 460 octets dans la trame SYN.

Conclusion

Nous avons découvert la poignée de main TCP à 3 voies et tous les champs utiles pour les trames SYN, SYN + ACK et ACK. Si vous voulez en savoir plus sur TCP, vous pouvez suivre ce lien RFC https://tools.ietf.org/html/rfc793 .