Maximale IPv4-Headergröße


8

IPv4-Header


Ich weiß, dass die Länge des IP-Headers mindestens 20 Byte und höchstens 60 Byte beträgt. Aber warum? Warum ist die Länge des IP-Headers auf 60 Byte begrenzt? Gibt es hier jemanden, der es mir erklären kann? Vielen Dank.



1
Hat dir eine Antwort geholfen? Wenn ja, sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie Ihre eigene Antwort bereitstellen und akzeptieren.
Ron Maupin

Antworten:


14

Das Internet Protocol (IP) ist in RFC 791 definiert . Der RFC gibt das Format des IP-Headers an. Im Header befindet sich das 4 Bit lange IHL- Feld ( Internet Header Length ), das die Headerlänge in 32-Bit-Wörtern angibt . Das IHL-Feld kann Werte von 0 (Binär 0000) bis 15 (Binär 1111) enthalten.

Die längste Größe des Internet- Headers (IP-Header) kann also 15 * 32 Bit = 480 Bit = 60 Byte betragen . Aus diesem Grund hat der Header eine maximale Größe von 60 Byte.

Die kürzeste Headergröße beträgt 20 Byte, wobei das IHL-Feld den Wert 5 (0101) hat. Dies liegt daran, dass alle erforderlichen Felder im Header 20 Byte Speicherplatz benötigen. Während Sie also theoretisch die IHL auf einen Wert <5 setzen könnten, wäre dies immer ein falscher Wert und somit ein ungültiger Paket-Header.


Vielen Dank Sebastian. Dies ist die Antwort, nach der ich gesucht habe. Jetzt habe ich genau verstanden. Also war meine Analogie auch richtig. :)
Ebyrock

Aber der kürzeste Wert wäre 5, weil er in RFC 791 definiert ist? Es kann also nicht auf 0 (0000) gesetzt werden?
Ebyrock

1
Mindestens 5 Wörter (20 Byte), da dies die erforderlichen Teile des Headers sind. Es kann null oder mehr Optionen geben, also 20 bis 60 Bytes.
Ricky Beam

1
Ich habe die Erklärung für die Mindestgröße hinzugefügt, um sie zu vervollständigen.
Sebastian Wiesinger

1
Dies bedeutet, dass die Header-Länge in 32-Bit-Schritten gezählt wird.
Sebastian Wiesinger

3

Gemäß RFC 791, wo es definiert ist, siehe Seite 12, wo Datagramme erläutert werden:

Die Gesamtlänge ist die Länge des Datagramms, gemessen in Oktetten, einschließlich Internet-Header und Daten. In diesem Feld kann die Länge eines Datagramms bis zu 65.535 Oktette betragen. Solche langen Datagramme sind für die meisten Hosts und Netzwerke unpraktisch. Alle Hosts müssen bereit sein, Datagramme mit bis zu 576 Oktetten zu akzeptieren (unabhängig davon, ob sie ganz oder in Fragmenten ankommen). Es wird empfohlen, dass Hosts nur Datagramme senden, die größer als 576 Oktette sind, wenn sie sicher sind, dass das Ziel bereit ist, die größeren Datagramme zu akzeptieren.

Die Nummer 576 wird ausgewählt, um zu ermöglichen, dass zusätzlich zu den erforderlichen Kopfinformationen ein Datenblock mit angemessener Größe übertragen wird. Mit dieser Größe kann beispielsweise ein Datenblock mit 512 Oktetten plus 64 Header-Oktetten in ein Datagramm passen. Der maximale Internet-Header beträgt 60 Oktette, und ein typischer Internet-Header besteht aus 20 Oktetten, was einen Spielraum für Header von Protokollen höherer Ebene bietet. "

Grundsätzlich wurde die Länge zwischen 20 und 60 definiert, um unterschiedliche Protokollverwendungen zu ermöglichen und in die empfohlene Datagrammgröße zu passen.


1
Nochmals vielen Dank an Mike, aber ich verstehe es nicht ganz. In Ihrer Antwort heißt es: "Der maximale Internet-Header beträgt 60 Oktette", aber es wird nicht erklärt, warum? Ich habe ein Bild zu meiner Frage eingefügt. Die Größe des IP-Headers wird in der IHL (Internet Header Length) definiert, die 4-7 Bit beträgt und dh 4 Bit lang ist. Wenn wir alle Bits auf 1 in Base2 (1111) setzen, wären das 15 in Base10. Die Länge des Internet-Headers beträgt 32-Bit-Wörter. Wir multiplizieren 15 x 32 = 480 Bits, was 60 Bytes (480/8) entspricht. Ich bin mir nicht sicher, ob es eine korrekte Analogie ist. :(
Ebyrock

Nicht versuchen, kurz zu sein, aber das "Warum" ist: So wird es definiert. Alle Internetprotokolle haben Definitionen. Diese Definitionen sind die Standards, denen alle Internet-Verkehrsprotokolle folgen.
Mike Naylor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.