Note that the Fragment Offset field is expressed in 8-byte units, not in bytes. That is why the size of the payload within each fragment, with the exception of the last fragment, must be a multiple of 8 bytes.
Since the fragment offset is encoded by 13 bits, this leads to the fact that its range is in the range from 0 to 8191 units of 8 bytes. However, since the IP header is also taken into account in Total Length, the maximum fragment offset limit is 8189 units, not 8191 units, see below:
A total length encoded in 16 bits means that it is limited to 65535 bytes. Then, since the IP header is at least 20 bytes, this results in the payload being limited to a maximum of 65535 bytes β 20 bytes = 65515 bytes. Separating these 65,515 bytes in 8-byte units results in a maximum of 8189 units, so the Fragmentation Offset is limited to a maximum of 8189 units.
An IP fragment having a fragment offset value set to this maximum value of 8189 can have a payload of no more than 3 bytes:
Maximum 65535 bytes - minimum 20 bytes - (8189 units * 8 bytes per unit) = maximum 3 bytes
Rurre
Rurre
source share