Header format simplification

IPv6 simplifies the IP header by removing entirely or by moving to an extension header some of the fields found in the IPv4 header. It defines a more flexible format for optional information (the extension headers).

Specifically, note the absence of:

  • header length (length is constant)
  • identification
  • flags
  • fragment offset (moved into fragmentation extension headers)
  • header checksum (upper-layer protocol or security extension header handles data integrity).
Table 1. IPv4 header
Item Description Description Description Description
Version IHL Type of Service Total Length  
Identification Identification Identification Flags Fragment Offset
Time to Live Time to Live Protocol Header Checksum Header Checksum
Source Address Source Address Source Address Source Address Source Address
Destination Address Destination Address Destination Address Destination Address Destination Address
Options Options Options Options Padding
Table 2. IPv6 header
Item Description Description Description Description
Version Prio   Flow Label  
Payload Length Payload Length Payload Length Next Header Hop Limit
Source Address Source Address Source Address Source Address Source Address
Destination Address Destination Address Destination Address Destination Address Destination Address

IPng includes an improved options mechanism over IPv4. IPv6 options are placed in separate extension headers that are located between the IPv6 header and the transport-layer header in a packet. Most extension headers are not examined or processed by any router along a packet delivery path until it arrives at its final destination. This mechanism facilitates a major improvement in router performance for packets containing options. In IPv4 the presence of any options requires the router to examine all options.

Another improvement is that, unlike IPv4 options, IPv6 extension headers can be of arbitrary length and the total amount of options carried in a packet is not limited to 40 bytes. This feature, plus the manner in which it is processed, permits IPv6 options to be used for functions that were not practical in IPv4, such as the IPv6 Authentication and Security Encapsulation options.

To improve the performance when handling subsequent option headers and the transport protocol that follows, IPv6 options are always an integer multiple of eight octets long to retain this alignment for subsequent headers.

By using extension headers instead of a protocol specifier and options fields, newly defined extensions can be integrated more easily.

Current specifications define extension headers in the following ways:

  • Hop-by-hop options that apply to each hop (router) along the path
  • Routing header for loose/strict source routing (used infrequently)
  • A fragment defines the packet as a fragment and contains information about the fragment (IPv6 routers do not fragment)
  • Authentication (See TCP/IP security in Security
  • Encryption (See TCP/IP security in Security
  • Destination options for the destination node (ignored by routers).