Requin filaire

Analyse de capture de paquets TCP

Analyse de capture de paquets TCP

Qu'est-ce que TCP?

TCP (Transmission Control Protocol) est un protocole de couche de transport orienté connexion.

Intention de cet article :

Comprendre tout le TCP n'est pas une tâche facile. Dans cet article nous allons essayer de comprendre les échanges de paquets de base de TCP via Wireshark. La théorie peut être lue via Internet. Nous nous concentrerons davantage sur l'analyse de capture de paquets.

Pourquoi TCP est célèbre?

Il y a plusieurs raisons pour lesquelles TCP est si célèbre :

  1. TCP est un protocole orienté connexion, donc la fiabilité est très élevée.
  2. TCP peut contrôler la congestion par lui-même.
  3. TCP peut détecter une erreur.
  4. TCP utilise le protocole de contrôle de flux.
  5. TCP a des fonctionnalités de retard ACK.
  6. TCP a une fonction ACK sélective.
  7. TCP a une fonction d'appel Windows pour l'amélioration du débit.

Il y a tellement d'autres fonctionnalités qui rendent TCP si célèbre.

Analyse de TCP :

Nous allons suivre quelques étapes pour générer des trames TCP.

Étape 1: Le moyen simple de générer des paquets TCP est d'accéder à n'importe quel site Web HTTP. La raison en est que HTTP est un protocole de couche application et qu'il utilise TCP comme protocole de couche transport sous-jacent.

Pour en savoir plus sur HTTP, suivez le lien ci-dessous

https://linuxhint.fr/http_wireshark/

Étape 2: Démarrer Wireshark.

Étape 3: Ouvrir le lien ci-dessous dans n'importe quel navigateur.

http://gaia.cs.masser.edu/wireshark-labs/alice.SMS

Étape 4: Arrêtez Wireshark et mettez TCP comme filtre.

Étape 5 : ANALYSE

Maintenant, nous devrions voir les paquets TCP 3-way handshake. Voici le schéma simple.

Image 1 : SYN [ Synchronisation ]

SYN est le premier paquet qui vient du client au serveur. Dans notre cas 192.168.1.6 est le client [Le système où nous avons ouvert le navigateur] et gaia.cs.masser.edu est le serveur.

Voici quelques champs importants dans le cadre SYN

La trame SYN est requise pour envoyer les capacités du client au serveur.

Trame 2 : SYN+ACK [ Synchronaziation + Accusé de réception ]

SYN, ACK est le deuxième paquet qui vient du serveur au client.

Voici quelques champs importants dans SYN, trame ACK

La trame SYN, ACK est requise pour envoyer les capacités du serveur au client.

Maintenant, le client et le serveur ont partagé leurs capacités.

Cadre 3 : ACK [Accusé ]

ACK est le troisième paquet qui vient du client au serveur. C'est essentiellement une reconnaissance du client au serveur et c'est aussi une acceptation des capacités envoyées par le serveur.

Voici les champs importants pour ACK.

Vérifions les informations importantes partagées entre le client et le serveur :

ClientServeur

Taille de la fenêtre de réception : 64240 octets                          Taille de la fenêtre de réception : 29200 octets

Taille maximale des segments : 1460 octets                         Taille maximale des segments : 1412 octets

SACK Autorisé : Oui                                                 SACK Autorisé : Oui

Échelle de la fenêtre : 8 (multiplier par 256)                          Échelle de la fenêtre : 7 (multiplier par 128)

Nous avons remarqué qu'il y a des différences dans les valeurs. Si le client ou le serveur accepte les capacités des autres, la négociation à trois est réussie.

En-tête TCP :

Voici les champs importants de l'en-tête TCP :

  1. Port source (16 bits) : C'est le port d'envoi.
Exemple : Port source : 50026 (50026)
  1. Port de destination (16 bits) : C'est le port de réception.
Exemple : Port de destination : http (80)
  1. Numéro de séquence (32 bits) :
Exemple : Numéro de séquence : 0    (numéro de séquence relatif)
  1. Numéro d'accusé de réception (32 bits) : Si le drapeau ACK est défini, la valeur de ce champ est le prochain numéro de séquence que l'expéditeur de l'ACK attend.
Exemple : Numéro d'accusé de réception : 0
  1. Longueur de l'en-tête : La taille de l'en-tête peut varier de 20 octets à 60 octets maximum.
Exemple : 1000… = Longueur de l'en-tête : 32 octets (8)
  1. Drapeaux (9 bits) :
Exemple:
… = Réservé : Non défini
… 0… = Nonce : Non défini
… 0… = Congestion Window Reduced (CWR) : Non défini
… 0… = ECN-Echo : Non défini
… 0… = Urgent : Non défini
… 0… = Acquittement : Non défini
… 0… = Pousser : Non défini
… 0… = Réinitialiser : Non défini
… 1. = Syn : Définir
… 0 = Fin : Non défini
  1. Taille de la fenêtre (16 bits) : C'est la taille de la fenêtre de réception en octets.
Exemple : Valeur de la taille de la fenêtre : 64240
  1. Somme de contrôle (16 bits) :

Il est utilisé pour vérifier les erreurs de l'en-tête.

Exemple : Somme de contrôle : 0x436f
  1. Pointeur urgent (16 bits) :

Il s'agit d'un décalage par rapport au numéro de séquence indiquant le dernier octet de données urgentes.

Exemple : Pointeur urgent : 0
  1. Options:
Exemple:
Option TCP - Taille de segment maximale : 1460 octets
Option TCP - Aucune opération (NOP)
Option TCP - Echelle de fenêtre : 8 (multiplier par 256)
Option TCP - SACK autorisé

Observation:

La taille de l'en-tête TCP de SYN est de 32 octets.

Taille de l'en-tête TCP de SYN, ACK est de 32 octets.

La taille de l'en-tête TCP de l'ACK est de 20 octets car il n'a pas de champs d'option.

Données TCP :

Voici la capture d'écran avec explication pour les données TCP et TCP ACK. Ici, nous pouvons voir la fonction TCP delay ACK. Le serveur a envoyé trois paquets de données TCP au client et le client a envoyé un ACK de délai pour indiquer au serveur qu'il a reçu les trois paquets de données TCP. C'est pourquoi dans TCP ACK [numéro de paquet 96 dans la capture d'écran], nous voyons ACK = 14121, ce qui signifie que le client a reçu jusqu'à 14121 octets.

Référence:

Pour la théorie de base de TCP se référer

https://fr.Wikipédia.org/wiki/Transmission_Control_Protocol

Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...