The IPv6 protocol defines a set of headers, including the basic IPv6 header and the IPv6 extension headers.
The following figure shows the elements that appear in the IPv6 header and the order in which the elements appear.
The following list describes the function of each header field.
Version – 4-bit Version number of Internet Protocol = 6.
Traffic Class – 8-bit traffic class field. See Traffic Class.
Flow Label – 20-bit field. See IPv6 Quality-of-Service Capabilities.
Payload Length – 16-bit unsigned integer, which is the rest of the packet that follows the IPv6 header, in octets.
Next Header – 8-bit selector. Identifies the type of header that immediately follows the IPv6 header. Uses the same values as the IPv4 protocol field. See Extension Headers.
Hop Limit – 8-bit unsigned integer. Decremented by one by each node that forwards the packet. The packet is discarded if Hop Limit is decremented to zero.
Source Address – 128 bits. The address of the initial sender of the packet. See IPv6 Addressing.
Destination Address – 128 bits. The address of the intended recipient of the packet. The intended recipient is not necessarily the recipient if an optional Routing Header is present.
IPv6 includes an improved option 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 IPv6 extension headers are not examined or processed by any router along a packet's delivery path until the packet arrives at its final destination. This feature is a major improvement in router performance for packets that contain options. In IPv4, the presence of any options requires the router to examine all options.
Unlike IPv4 options, IPv6 extension headers can be of arbitrary length. Also, the number of options that a packet carries are not limited to 40 bytes. This feature, plus the manner in which IPv6 options are processed, permits IPv6 options to be used for functions that are not practical in IPv4. A good example of IPv6 options is the IPv6 authentication and security encapsulation options.
To improve performance when handling subsequent option headers, and the transport protocol that follows, IPv6 options are always an integer multiple of eight octets long. The integer multiple of eight octets retains the alignment of subsequent headers.
The following IPv6 extension headers are currently defined.
Routing – Extended routing, like IPv4 loose source route
Fragmentation – Fragmentation and reassembly
Authentication – Integrity and authentication, security
Encapsulation – Confidentiality
Hop-by-Hop Option – Special options that require hop-by-hop processing
Destination Options – Optional information to be examined by the destination node