IP fragmentation splits packets larger than the link MTU into smaller fragments for transmission, reassembled at the destination. Fragmentation hurts performance – any single lost fragment requires retransmitting the entire original packet. IPv6 does not allow router fragmentation; only endpoints can fragment.
When an IP packet exceeds the MTU of a link it must traverse, the router can fragment it into smaller pieces (IPv4 only – IPv6 requires the source to size packets correctly). Each fragment carries the same Identification field and an offset indicating where it fits in the original packet. The destination reassembles fragments using these fields. Fragmentation causes problems: losing any single fragment means the entire packet must be retransmitted, fragments increase reassembly buffer usage at the destination, and stateful firewalls must track fragments to apply rules consistently. Path MTU Discovery (PMTUD) avoids fragmentation by probing the path with DF (Don't Fragment) set – routers respond with ICMP Fragmentation Needed if the packet is too large. Setting DF and relying on PMTUD is the modern best practice. Firewalls that block ICMP break PMTUD and cause black-hole symptoms for large packets.
Packet
A packet is a unit of data transmitted over a network. Each packet contains a header (source/destination addresses, protocol info, sequence numbers) and a payload (the actual data). IP packets are limited by MTU – typically 1500 bytes on Ethernet. Larger messages are split into multiple packets.
MTU (Maximum Transmission Unit)
MTU is the largest packet size a network link can carry without fragmentation. Ethernet MTU is 1500 bytes. If a packet exceeds the path MTU, it is fragmented (IPv4) or dropped with ICMP Packet Too Big (IPv6). Path MTU Discovery (PMTUD) finds the lowest MTU along a route.
MSS (Maximum Segment Size)
MSS is the largest TCP payload (excluding headers) that can be sent in a single segment. MSS is negotiated during TCP handshake and derived from MTU: MSS = MTU - IP header (20) - TCP header (20). For 1500-byte Ethernet MTU, MSS is 1460 bytes. MSS avoids IP fragmentation by keeping segments within link MTU.