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.
ipv4
protocol-theory
Ebyrock
quelle
quelle
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.
quelle
Gemäß RFC 791, wo es definiert ist, siehe Seite 12, wo Datagramme erläutert werden:
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.
quelle