x--- ---- ---- ---- = RF flag: Reserved -x-- ---- ---- ---- = DF flag: Don't fragment. When set to 1, indicates that the datagram should not be fragmented. --x- ---- ---- ---- = MF flag: More Fragments. When set to 0, indicates that this is the last fragment in a message. When set to 1, indicates that more fragments for this message are to come. If no fragmentation is used, then there will always only be one fragment, and this flag will always be 0. ---x xxxx xxxx xxxx = Fragment offset: When fragmentation of a message occurs, this field specifies the the offset, or position, in the overall message where the data in this fragment goes. It is specified in units of 8 bytes (64 bits). The first fragment has an offset of 0.
This field contains a 16 bit value that is common to each of the fragments beloning to a particular message. For datagrams originally sent unfragmented, it is still filled out, so it can be used if the datagram must be fragmented by a router during delivery. This field is used by the recipient to reassemble without accidentally mixing fragments from different messages. This is needed because fragments may arrive from multiple messages mixed together, since IP datagrams can be received out of order from any device.