Dans l’article précédent L’établissement d’une connexion TCP/IP, nous avons vu comment une connexion TCP/IP s’établit.
On y trouve les caractéristiques avec l’adresse source et de destination, les ports de connexion TCP.
Enfin, on a vu que la communication se fait par paquets que l’on peut fragmenter.
Dans cet article, nous allons voir la structure et format d’un paquet TCP/IP, avec son en-tête.
Vous trouverez aussi les différences entre un paquet IPv4 et IPv6.
Table des matières
Qu’est-ce qu’un paquet TCP/IP ?
Dans le protocole IP, toutes les données envoyées sur Internet sont décomposées en morceaux plus petits appelés paquets.
Par exemple, lorsqu’une page Web est envoyée d’un serveur Web à l’ordinateur portable d’un utilisateur, les données constitutives de la page Web voyagent sur Internet sous la forme d’une série de paquets.
Les paquets sont ensuite réassemblés par l’ordinateur portable afin de construire ensuite à l’écran la page WEB.
Les paquets de données comportent deux parties principales: l’en-tête (header) et la charge utile (payload).
Ainsi, l’en-tête contient des informations sur les adresses source et de destination du paquet, tandis que la charge utile est le contenu réel du paquet.
Enfin la charge utile stocke les données brutes à envoyer au destinataire.
Quelle est la structure d’un paquet TCP/IP
Ainsi pour que la connexion TCP puisse s’effectuer, un paquet IP contient des données et informations.
Par exemple l’adresse IP source et de destination.
Ces données sont stockées dans l’en-tête du paquet IP.
Je rappelle qu’il existe deux versions du protocole IP : IPv4 et IPv6.
La structure des paquets est différents.
On en parle dans cet article :
Le logiciel de capture réseau Wiresharck permet de récupérer les paquets IP par des captures des trames réseaux.
Sur Linux, on peut utiliser TCPdump.
On peut donc avoir très facilement la structure d’un paquet IPv4.
Ci-dessous l’en-tête d’un paquet IPv4.
IPv4
Voici le contenu d’un paquet IP qui stocke toutes les informations nécessaires à la transmission des données.
Le format d’en-tête IPV4 est de 20 à 60 octets de longueur, contient des informations essentielles au routage et à la livraison, se compose de 13 champs
- Version (4 bits) indique la version d’IP actuellement utilisée.
- Longueur en-tête – IP Header Length (IHL) (4 bits) indique le nombre de mots de 32 bits dans l’en-tête IP
- Type de service – Type-of-service (8 bits) spécifie comment un protocole de couche supérieure particulier voudrait que le datagramme actuel soit traité. Les datagrammes peuvent se voir attribuer différents niveaux d’importance via ce champ
- Longueur totale (16 bits) spécifie la longueur du paquet IP entier, y compris les données et l’en-tête, en octets
- Le champ d’identification (16 bits) contient un entier qui identifie le datagramme actuel. Ce champ est utilisé pour aider à reconstruire des fragments de datagrammes
- Flags (4 bits; un n’est pas utilisé) contrôle si les routeurs sont autorisés à fragmenter un paquet et indique les parties d’un paquet au récepteur.
- TTL – Time-to-live (8 bits) maintient un compteur qui décrémente progressivement à zéro, point auquel le datagramme est rejeté. Cela empêche les paquets de boucler sans fin
- Protocole (8 bits) indique quel protocole de couche supérieure reçoit les paquets entrants une fois le traitement IP terminé
- Header Checksum (16 bits) permet de garantir l’intégrité de l’en-tête IP.
- Adresse IP source (32 bits) spécifie le nœud d’envoi
- Adresse IP de destination (32 bits) spécifie le nœud de réception.
- Options (32 bits) permet à IP de prendre en charge diverses options, telles que la sécurité
- Le champ de données (32 bits) contient des informations de couche supérieure
On retrouve cette structure d’un paquet IP ci-dessous.
Avec au début, la partie IPV4 (Fags, Fragment, adresse source et de destination).
Puis la partie TCP avec le port source, destination, les flags et séquence.
Enfin on termine avec les données (Data).
Enfin l’utilitaire de capture réseau tcpdump permet aussi d’obtenir le contenu des paquets TCP (et autres protocoles comme UDP ou ICMP).
46-242-12-177.ip.moscow.rt.ru.15696 > desktop-93fvsjn.home.8621: Flags [P.], seq 1:47, ack 1, win 1369, length 46
IPv6
L’en-tête d’un paquet IPv6 est simplifié.
En effet des champs ont soit été fusionnés, soit supprimés.