Useful Articles


IPv6 Extension Header

IPv6 Extension Header

Every IPv6 packet at a minimum has a basic packet header, 40 bytes (320 bits) long. They optionally may have extension headers. For IPv6 packets, flow processing parses the extension headers and transport layer headers in the following way.
  • If the software encounters a TCP, a UDP, an ESP, an AH, or an ICMPv6 header, it parses the header and assumes that the packet payload corresponds to the specified protocol type.
  • If the software encounters a hop-by-hop header, a routing and destination header, or a fragment header, it continues to parse the next extension header.
  • If it encounters the no-next-header extension header, the software detects that the packet is that of an unknown protocol (protocol equals 0).
  • For other extension headers, the software parses the header and identifies the packet as belonging to the protocol indicated by the extension header.

IPv6 Packet Header Extensions - Basics and Understanding

IPv6 extension headers contain supplementary information used by network devices (such as routers, switches, and endpoint hosts) to decide how to direct or process an IPv6 packet. The length of each extension header is an integer multiple of 8 octets. This allows subsequent extension headers to use 8-octet structures. Any header followed by an extension header contains a Next Header value that identifies the extension header type.

IPv6 Extension Headers - Important Points

  • 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.
IPv6 Extension Headers
  • Below are details of Extension Headers:
IPv6 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.

If you understood the concept and like this article, kindly share the same with your friends.


For Further Reading