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.
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.
Antworten:
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.
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.