Taille d'en-tête IPv4 maximale

8

En-tête IPv4


Je sais que la longueur de l'en-tête IP est d'un minimum de 20 octets et d'un maximum de 60 octets. Mais pourquoi? Pourquoi la longueur d'en-tête IP est-elle limitée à 60 octets? Y a-t-il quelqu'un ici qui peut me l'expliquer? Je vous remercie.

ebyrock
la source
1
Une réponse vous a-t-elle aidé? si c'est le cas, vous devez accepter la réponse afin que la question ne s'affiche pas indéfiniment, à la recherche d'une réponse. Alternativement, vous pouvez fournir et accepter votre propre réponse.
Ron Maupin

Réponses:

14

Le protocole Internet (IP) est défini dans la RFC 791 . Le RFC spécifie le format de l'en-tête IP. Dans l'en-tête se trouve le champ IHL ( Internet Header Length ) qui est long de 4 bits et spécifie la longueur d'en-tête en mots de 32 bits . Le champ IHL peut contenir des valeurs comprises entre 0 (binaire 0000) et 15 (binaire 1111).

Ainsi, la taille de l'en- tête Internet (en-tête IP) la plus longue peut être de 15 * 32 bits = 480 bits = 60 octets . C'est pourquoi l'en-tête a une taille maximale de 60 octets.

La taille d'en-tête la plus courte est de 20 octets, où le champ IHL a la valeur 5 (0101). En effet, tous les champs obligatoires de l'en-tête nécessitent 20 octets d'espace. Donc, alors qu'en théorie, vous pouvez définir le DIH sur une valeur <5, ce serait toujours une valeur incorrecte et donc un en-tête de paquet non valide.

Sebastian Wiesinger
la source
Merci beaucoup Sebastian. C'est la réponse que je cherchais. Maintenant, j'ai compris exactement. Mon analogie était donc correcte également. :)
ebyrock
Mais la valeur la plus courte serait 5 car elle est définie dans la RFC 791? Il ne peut donc pas être défini sur 0 (0000)?
ebyrock
1
Minimum de 5 mots de passe (20 octets) car ce sont les parties requises de l'en-tête. Il peut y avoir zéro ou plusieurs options, donc 20 à 60 octets.
Ricky Beam
1
J'ai ajouté l'explication de la taille minimale pour la compléter.
Sebastian Wiesinger
1
cela signifie qu'il compte la longueur d'en-tête par incréments de 32 bits.
Sebastian Wiesinger
3

Par RFC 791 où il est défini, voir page 12 où il traite des datagrammes:

La longueur totale est la longueur du datagramme, mesurée en octets, y compris l'en-tête Internet et les données. Ce champ permet à la longueur d'un datagramme jusqu'à 65 535 octets. De tels datagrammes longs ne sont pas pratiques pour la plupart des hôtes et des réseaux. Tous les hôtes doivent être prêts à accepter des datagrammes jusqu'à 576 octets (qu'ils arrivent entiers ou en fragments). Il est recommandé que les hôtes n'envoient des datagrammes supérieurs à 576 octets que s'ils ont l'assurance que la destination est prête à accepter les datagrammes plus grands.

Le nombre 576 est sélectionné pour permettre la transmission d'un bloc de données de taille raisonnable en plus des informations d'en-tête requises. Par exemple, cette taille permet à un bloc de données de 512 octets plus 64 octets d'en-tête de tenir dans un datagramme. L'en-tête Internet maximal est de 60 octets, et un en-tête Internet typique est de 20 octets, ce qui permet une marge pour les en-têtes des protocoles de niveau supérieur. "

Fondamentalement, la longueur a été définie entre 20 et 60 pour permettre différentes utilisations de protocole et pour s'adapter à la taille de datagramme recommandée.

Mike Naylor
la source
1
Merci encore Mike mais je ne comprends pas très bien. Dans votre réponse, il est dit que "l'en-tête Internet maximal est de 60 octets" mais n'explique pas pourquoi? J'ai inséré une photo dans ma question. La taille de l'en-tête IP est définie dans le IHL (Internet Header Length) qui est en 4-7 bits et cela signifie ses 4 bits de long. si nous définissons tous les bits sont 1 dans Base2 (1111), ce serait 15 dans Base10. Et la longueur de l'en-tête Internet est de 32 bits. On multiplie 15 x 32 = 480 bits ce qui équivaut à 60 octets (480/8). Je ne suis pas sûr que ce soit une analogie correcte. :(
ebyrock
Ne pas essayer d'être court mais le «pourquoi» est: c'est ainsi qu'il est défini. Tous les protocoles Internet ont des définitions. Ces définitions sont les normes que tous les protocoles de trafic Internet suivent.
Mike Naylor