IPv6 Fragmentation Header
Prerequisite – Internet Protocol version 6 (IPv6) Header In IPv4 fragmentation is done whenever required, at destination or at routers whereas in IPv6 only source is supposed to do fragmentation but not routers. This can only be done when source knows path Maximum Transmission Unit (MTU). In Ipv6 “do not fragment” bit is always 1 where case is not same in IPv4 and ‘More fragment’ bit is only flag in fragmentation header which is of one bit. Two bits are reserved for future use as you can see in picture below. Internet Protocol Version 6 Fragmentation Header –
- Next Header – The Next Header is an 8-bit field that identifies type of header present after Fragmentation header.
- Reserved – It is an 8 bit field which is completely zero as of now. In future, we might find something useful to fill here. Also again an extra 2-bit field is reserved for later purposes.
- Fragment Offset – It is exactly same as than in IPv4 which is of size 13 bits. Just as we did to scale up fragment offset in IPv4 we will do same in IPv6.
- More Fragment (M) – More fragment bit in here is denoted by “M”. It’s a one-bit field that tells us if there are more fragments coming after it. If more fragment bit is zero then it means its last fragment and if 1 then it could be any packet except being last one.
- Identification Number – The identification number field which is same for all fragments of a particular packet is double in size as that of in IPv4. In packet identifier field is of 32 bits and In IPv4 it was of 16 bits.
The IPv6 sender may perform fragmentation at source because an IPv6 router cannot perform a fragmentation, so if packet is too large for next hop, router will generate an ICMP packet to let the source know that packet is too large in size. The fragmentation header tries to minimize use of fragmentation as much as possible by supporting minimum packet size of 1280 Bytes. As shown in above picture how fragmentation is taken place according to MTU that sender knows. IPv6 and other Extension headers are unfragmentable part because every fragment has to go through nodes or routers and at every router, information stored in these extensions headers are required. That is why IPv6 packet is divided into two parts. One is unfragmentable part and other is fragmentable part. The unfragmentable part does not encounter any modification in between and another part being fragmentable is divided into many small fragments as fragment 1, fragment 2, and so on. After small fragments being created fragmentation header and particular fragment ( as fragment 1 ) is connected to unfragmentable part and is send to destination. Payload length may change after fragmentation and after fragmentation header is added corresponding fields like next header, identification number, fragment offset, and more fragment bits are filled appropriately.
-The concept of fragmentation is the same as that in IPv4.
-However, the place where fragmentation occurs differ.
-In IPv4, the source or a router is required to fragment if the size of the datagram is larger than the size of the datagram is larger than the MTU of the network over which the datagram travels.
-In IPv6, only the original source can fragment. A source must use a path MTU Discovery technique to find the smallest MTU supported by any network on the path MTU supported by any network on the path.
-The source then fragments using this knowledge.
-If the source does not use a path-MTU Discovery technique, it fragments the datagram to a size of 1280 bytes or smaller.
-This is the minimum connected to the Internet.
|Next header||Header length||Fragmentation||O||M|
| || ||Offset|
| Fragment identification|