I was wondering why the IP protocol use fragment offset to define the fragments of an IP datagram instead of using index number (first fragment with index 0, second with index 1, ...). We already know the size of a fragment with the total length field so it look like a duplicate for me to specifie the offset and (maybe) a waste of space. Using index, with 13 bits we could have 8192 fragments, each of 1500 max bit (on Ethernet), and we could have the same max size using only 6 bits (with a size of each fragment of 1500 bits) or with 7 bits (with a size of each fragment of 576 bits) or 10 bits (with a size of each fragment of 68 bits). Am I missing something ? Is it more easy for a router to construct the datagram with the offset ?


  • By the way, fragmentation is nearly obsolete. Smart businesses will drop fragments to prevent a fragmentation attack. IPv6 eliminated the IPv4-type fragmentation in the path as a bad idea because it take a lot of router resources and slows packet forwarding. Today, we have PMTUD to discover the path MTU size.
    – Ron Maupin
    Commented May 26, 2020 at 16:43

2 Answers 2


Keep in mind that a fragmented packet may be further fragmented:

A packet is fragmented once, you now have two fragments, index 0 and 1.

Now packet0 is further fragmented. So you keep index 0 and create a new packet with index 1. (the router that perform this new fragmentation is totally unaware of the existence of the other fragment).

You now have 2 packets with index 1 and the destination router doesn't know how to assemble them.

The fragment offset handle this.


As @JFL says, multiple fragmentation is one reason. With storing offsets there is no extra reassembly code required. If you kept fragment numbers you would have to start numbering at multiple levels e.g. 4.2.5

Another problem is that IP fragments may be delivered out of order. With the offset, you can copy from the NIC to the right place in the buffer immediately.

Finally the maximum size of an IPv4 datagram is 64k. The offset field is as big as it needs to be.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.