A tiny pinned payload is split into two exact fragment payloads.

highlighted = computed this step

One payload becomes two pieces

The toy IP version 4 payload has 24 bytes. We split it into 16 bytes and 8 bytes.

16+8=2416+8=24
Split the payloadThe original toy payload is split into two exact byte runs.Fragment 1 payload128 bits / 16 bytes0x6162636465666768696a6b6c6d6e6f70byte 0byte 1byte 2byte 301100001011000100110001101100100byte 4byte 5byte 6byte 701100101011001100110011101101000byte 8byte 9byte 10byte 1101101001011010100110101101101100byte 12byte 13byte 14byte 1501101101011011100110111101110000payload0x6162636465666768696a6b6c6d6e6f70(cont.)(cont.)(cont.)Fragment 2 payload64 bits / 8 bytes0x7172737475767778byte 0byte 1byte 2byte 301110001011100100111001101110100byte 4byte 5byte 6byte 701110101011101100111011101111000payload0x7172737475767778(cont.)

First fragment carries sixteen bytes

The first fragment payload is 16 bytes long.

first payload=16\text{first payload}=16
Split the payloadThe original toy payload is split into two exact byte runs.Fragment 1 payload128 bits / 16 bytes0x6162636465666768696a6b6c6d6e6f70byte 0byte 1byte 2byte 301100001011000100110001101100100byte 4byte 5byte 6byte 701100101011001100110011101101000byte 8byte 9byte 10byte 1101101001011010100110101101101100byte 12byte 13byte 14byte 1501101101011011100110111101110000payload0x6162636465666768696a6b6c6d6e6f70(cont.)(cont.)(cont.)Fragment 2 payload64 bits / 8 bytes0x7172737475767778byte 0byte 1byte 2byte 301110001011100100111001101110100byte 4byte 5byte 6byte 701110101011101100111011101111000payload0x7172737475767778(cont.)

Second fragment carries eight bytes

The second fragment carries the remaining 8 bytes.

second payload=8\text{second payload}=8
Split the payloadThe original toy payload is split into two exact byte runs.Fragment 1 payload128 bits / 16 bytes0x6162636465666768696a6b6c6d6e6f70byte 0byte 1byte 2byte 301100001011000100110001101100100byte 4byte 5byte 6byte 701100101011001100110011101101000byte 8byte 9byte 10byte 1101101001011010100110101101101100byte 12byte 13byte 14byte 1501101101011011100110111101110000payload0x6162636465666768696a6b6c6d6e6f70(cont.)(cont.)(cont.)Fragment 2 payload64 bits / 8 bytes0x7172737475767778byte 0byte 1byte 2byte 301110001011100100111001101110100byte 4byte 5byte 6byte 701110101011101100111011101111000payload0x7172737475767778(cont.)

Summary

Fragmentation keeps the payload bytes exact; it just sends them in smaller runs.

total payload=24\text{total payload}=24
Split the payloadThe original toy payload is split into two exact byte runs.Fragment 1 payload128 bits / 16 bytes0x6162636465666768696a6b6c6d6e6f70byte 0byte 1byte 2byte 301100001011000100110001101100100byte 4byte 5byte 6byte 701100101011001100110011101101000byte 8byte 9byte 10byte 1101101001011010100110101101101100byte 12byte 13byte 14byte 1501101101011011100110111101110000payload0x6162636465666768696a6b6c6d6e6f70(cont.)(cont.)(cont.)Fragment 2 payload64 bits / 8 bytes0x7172737475767778byte 0byte 1byte 2byte 301110001011100100111001101110100byte 4byte 5byte 6byte 701110101011101100111011101111000payload0x7172737475767778(cont.)