This toy split shows exact offset and checksum arithmetic, not real-world fragmentation behavior.

highlighted = computed this step

What this toy example shows

This book shows one tiny IP version 4 payload split into exactly two fragments.

fragments=2\text{fragments}=2
Fragment honesty boundaryThe two toy IPv4 fragment headers show MF and offset fields.Fragment 1 header160 bits / 20 bytes0x450000241c4620004006d1feac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000100100byte 4byte 5byte 6byte 700011100010001100010000000000000byte 8byte 9byte 10byte 1101000000000001101101000111111110byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length36identification0x1c46fragment-offset0ttl64protocol6->TCPheader-checksum0xd1fesource172.16.10.99destination172.16.10.12reserved: clear df: clear mf: setFragment 2 header160 bits / 20 bytes0x4500001c1c4600024006f204ac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000011100byte 4byte 5byte 6byte 700011100010001100000000000000010byte 8byte 9byte 10byte 1101000000000001101111001000000100byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length28identification0x1c46fragment-offset2ttl64protocol6->TCPheader-checksum0xf204source172.16.10.99destination172.16.10.12reserved: clear df: clear mf: clear

Checked values

The first payload length is 16, so the second offset is 2.

16÷8=216\div8=2
Fragment honesty boundaryThe two toy IPv4 fragment headers show MF and offset fields.Fragment 1 header160 bits / 20 bytes0x450000241c4620004006d1feac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000100100byte 4byte 5byte 6byte 700011100010001100010000000000000byte 8byte 9byte 10byte 1101000000000001101101000111111110byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length36identification0x1c46fragment-offset0ttl64protocol6->TCPheader-checksum0xd1fesource172.16.10.99destination172.16.10.12reserved: clear df: clear mf: setFragment 2 header160 bits / 20 bytes0x4500001c1c4600024006f204ac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000011100byte 4byte 5byte 6byte 700011100010001100000000000000010byte 8byte 9byte 10byte 1101000000000001101111001000000100byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length28identification0x1c46fragment-offset2ttl64protocol6->TCPheader-checksum0xf204source172.16.10.99destination172.16.10.12reserved: clear df: clear mf: clear

What this does not model

NOTE: toy two-fragment IP version 4 example only; not path MTU discovery, reassembly timeout, overlapping fragments, firewall evasion, transport checksums, or real capture behavior.

toy fragments=2\text{toy fragments}=2
Fragment honesty boundaryThe two toy IPv4 fragment headers show MF and offset fields.Fragment 1 header160 bits / 20 bytes0x450000241c4620004006d1feac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000100100byte 4byte 5byte 6byte 700011100010001100010000000000000byte 8byte 9byte 10byte 1101000000000001101101000111111110byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length36identification0x1c46fragment-offset0ttl64protocol6->TCPheader-checksum0xd1fesource172.16.10.99destination172.16.10.12reserved: clear df: clear mf: setFragment 2 header160 bits / 20 bytes0x4500001c1c4600024006f204ac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000011100byte 4byte 5byte 6byte 700011100010001100000000000000010byte 8byte 9byte 10byte 1101000000000001101111001000000100byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length28identification0x1c46fragment-offset2ttl64protocol6->TCPheader-checksum0xf204source172.16.10.99destination172.16.10.12reserved: clear df: clear mf: clear

Summary

Fragment offsets count in eights, MF marks whether more fragments follow, and each header checksum is recomputed.

second offset=2\text{second offset}=2
Fragment honesty boundaryThe two toy IPv4 fragment headers show MF and offset fields.Fragment 1 header160 bits / 20 bytes0x450000241c4620004006d1feac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000100100byte 4byte 5byte 6byte 700011100010001100010000000000000byte 8byte 9byte 10byte 1101000000000001101101000111111110byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length36identification0x1c46fragment-offset0ttl64protocol6->TCPheader-checksum0xd1fesource172.16.10.99destination172.16.10.12reserved: clear df: clear mf: setFragment 2 header160 bits / 20 bytes0x4500001c1c4600024006f204ac100a63ac100a0cbyte 0byte 1byte 2byte 301000101000000000000000000011100byte 4byte 5byte 6byte 700011100010001100000000000000010byte 8byte 9byte 10byte 1101000000000001101111001000000100byte 12byte 13byte 14byte 1510101100000100000000101001100011byte 16byte 17byte 18byte 1910101100000100000000101000001100version4ihl5dscp-ecn0x00total-length28identification0x1c46fragment-offset2ttl64protocol6->TCPheader-checksum0xf204source172.16.10.99destination172.16.10.12reserved: clear df: clear mf: clear