Fragmentation is a process in which too large datagram is broken into several smaller ones so that the length of new datagrams matches the size of the MTU (Maximum Transmission Unit). MTU is the maximum datagram length in octets, which the link is able to convey. In the case of IPv6, the minimum value of MTU is 1280 octets. This MTU size is chosen in order to minimize the fragmentation.
Link is a communication facility or medium over which nodes can communicate at the link layer, i.e., the layer immediately below IPv6. Examples are Ethernets, PPP links etc.
Each data path consists of transit nodes and links where each link can have a different size of MTU. The total MTU of all nodes and links is called PMTU (Path MTU). So PMTU is given by the link with the lowest MTU in the path.
Fragmentation is a complex process that unnecessarily loads the transit nodes. This fact was taken into consideration during the development of IPv6. So, IPv6 allows fragmentation only and exclusively on the side of sender. It means that if a link with a smaller MTU than outgoing interface MTU is anywhere in the path, the datagram is discarded and the node that discards the datagram informs the sender about the fact using ICMPv6 Packet Too Big message.
IPv6 datagram is divided into two parts due to the fragmentation:
Fragment header has the following format:
Fragmentation applies only to Fragmentable Part. The Fragmentable Part is broken into smaller parts whose lengths are a multiple of 8-octet units so that these parts are also smaller than the required MTU. These parts are called fragments. Each fragment is composed of:
Fragments can be considered as separate datagrams that are sent to the target node. At the target node, the original datagram is reassembled from the information in Fragment header.