Packet fragmentation can be extremely difficult to understand.
What
sometimes helps is to spend a few hours reading the output of a good
packet sniffer. That can help a person to get a feeling for how TCP/IP really works.
The fragment offset field tells the receiver the position of a fragment in the original datagram. The fragment offset and length determine the portion of the original datagram covered by this fragment.
The Fragment Offset field is 13 bits in length.
Within the Fragment Offset field, each bit represents 8 octets (64 bits).
So...
0000000000001 means that the packet fragment is offset by 8 bits.
0000000000010 means that the packet fragment is offset by 16 bits.
0000000000011 means that the packet fragment is offset by 24 bits.
This is explained
fairly well in [url=http://www.faqs.org/rfcs/rfc791.html]RFC 791: Internet Protocol: DARPA Internet Program Protocol Specification[/ur].