IPv6 Extension Headers

  • IPv6 Extension headers carry optional Network Layer information. Extension headers (can be multiple in number) are placed between the fixed header (Length 40Bytes - Check IPv6 Header Details) and the upper-layer protocol header (Transport Layer).
  • For an IPv6 Packet, the Fixed Header contains only necessary information about the packet. An IPv6 packet can carry extra information by using Extension Headers. Each Extension Header is identified by a distinct value. 
  • All extension headers are a multiple of 8 bytes in size whereas some extension headers require internal padding to meet this requirement. 
  • Extension headers are to be examined and processed at the packet's destination only, except for "Hop-by-Hop Options", which need to be processed at every intermediate node on the packet's path, including Source and Destination Node.
  • All extension headers are optional and should only appear at most once, except for the "Destination Options" Extension header, which may appear twice.
  • When Extension Headers are used, IPv6 Fixed Header’s Next Header field points to the first Extension Header. If there is more than one Extension Header used, they point to each other using a chain i.e. the first Extension Header’s ‘Next-Header’ field points to the second one, and so on. The last Extension Header’s ‘Next-Header’ field points to the Upper Layer/Transport Layer Header. Thus, all the headers point to the next one in a linked list manner as shown below.

  • Below are details of Extension Headers:

  • Next Header Value "59" indicates there is no next header present followed by the existing extension header. There is not even the Transport Layer header/Data present.