Maison  >  Article  >  Opération et maintenance  >  A quoi ressemble un datagramme IP - Analyse du format du datagramme IP

A quoi ressemble un datagramme IP - Analyse du format du datagramme IP

齐天大圣
齐天大圣original
2020-12-12 14:24:04205parcourir

Grâce au format du datagramme IP, nous pouvons comprendre plus clairement le rôle du protocole IP. Les datagrammes IPv4 sont généralement décrits en unités de 32 bits. La figure suivante est un diagramme de format de datagramme IP :

Nous vous recommandons d'utiliser des outils de capture de paquets (tels que Wireshark) pour capturer. Prenez quelques datagrammes IP, observez-les attentivement et comparez-les.

Regardons maintenant le rôle de chaque champ dans l'en-tête du datagramme IP :

(1) Version  : 4 bits, faisant référence à la version du protocole IP .

(2) Longueur de l'en-tête  : 4 bits, fait référence à la longueur de l'en-tête (hors partie données), l'unité est de 4 octets. Parce que la partie fixe de l'en-tête est de 20 octets, la valeur minimale de ce champ est de 5 (0101)

(3) Services différenciés  : 8 bits, actuellement de peu d'utilité.

(4) Longueur totale  : 16 bits, la longueur de la partie de données de longueur d'en-tête, en octets. En théorie, la longueur maximale d'un datagramme IPv4 est de 2 puissance 16 moins 1 octet, soit 65 535 octets. Cependant, la longueur maximale d'un datagramme est contrôlée par le MTU (Maximum Transmission Unit) et la longueur d'un datagramme ne peut pas dépasser la valeur de réglage du MTU. Cette valeur de réglage est généralement fixée à 1500. Parce que le datagramme est trop long, la vitesse de transfert du routeur ralentira, mais si le datagramme est trop petit, l'efficacité du transfert n'augmentera pas. Lorsque la longueur d'un datagramme dépasse la MTU, un datagramme long doit être divisé en plusieurs fragments de datagramme.

(5) Identification : occupe 16 bits Il y a un compteur dans le système Chaque fois qu'un datagramme est généré, ce compteur augmente de 1. La valeur du champ d'identification est cet incrément. . nombre. Grâce à cette valeur d'identification, ainsi qu'au champ drapeau et au décalage mentionnés plus loin, le fragment peut être réassemblé dans le datagramme original.

(6) Drapeau : occupe 3 positions, mais actuellement seules les deux dernières ont du sens :

  • Position médiane, Ne pas fragmenter : Ne peut pas être fragmenté. Ce n'est que lorsque ce bit est à 0 que la fragmentation est autorisée

  • Le dernier bit, Plus de fragments : Il y a aussi des fragments. Si la valeur est 0, cela signifie que c'est le dernier fragment, sinon cela signifie qu'il reste encore des fragments plus tard.

(7) Décalage  : 13 bits. Il représente la position relative d'un fragment dans la partie données du paquet d'origine. L'unité est de 8 octets.

(8) Hop limit  : occupe 8 bits. Il s'agit d'empêcher un datagramme de se propager sans restriction dans le réseau. La valeur de ce champ indique le nombre maximum de routeurs par lesquels le datagramme peut passer. Lorsqu'il passe par un routeur, la valeur est décrémentée de 1. Lorsque la valeur atteint 0, le datagramme n'a pas été livré avec succès et le routeur l'écarte. le datagramme.

(9) Protocole  : Indique quel protocole est utilisé pour les données transportées par ce datagramme. Les protocoles couramment utilisés sont :

  • ICMP : Le la valeur est 0

  • IP : la valeur est 4

  • TCP : la valeur est 6

  • UDP : valeur Il est 17

(10) Somme de contrôle de l'en-tête : occupe 16 bits. Ce champ vérifie uniquement l'en-tête du datagramme, mais n'inclut pas la partie données. . Ce champ peut être utilisé pour calculer s'il y a des erreurs dans le datagramme.

(11) Adresse source  : 32 bits.

(12) Adresse de destination : 32 bits.

(13) Pièce optionnelle : Très peu utilisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn