The process of dividing an IP datagram into small pieces when they must travel across a network that cannot handle the original datagram size. Each fragment has the same format as a datagram; fields in the IP header specify whether a datagram is a fragment. IP software at the receiving end must reassemble fragments to produce the original datagram. See Identifier, Flags, and Fragment Offset.