IPv6 Packet Header Format
The IPv6 protocol defines a set of headers, including the basic IPv6 header
and the IPv6 extension headers. The following figure shows the fields that appear
in the IPv6 header and the order in which the fields appear.
Figure 11-3 IPv6 Basic Header Format
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.
Flow label – 20-bit field.
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.
Hop limit – 8-bit unsigned integer. Decremented by one by each node that forwards the packet. The packet is discarded if the hop limit is decremented to zero.
Source address – 128 bits. The address of the initial sender of the packet.
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 Extension Headers
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 provides 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 is not limited to 40 bytes.
This feature, in addition to the manner in which IPv6 options are processed,
permits IPv6 options to be used for functions that are not practical in
IPv4.
To improve performance when handling subsequent option headers, and the transport protocol that
follows, IPv6 options are always an integer multiple of 8 octets long. The
integer multiple of 8 octets retains the alignment of subsequent headers.
The following IPv6 extension headers are currently defined:
Routing – Extended routing, such as IPv4 loose source route
Fragmentation – Fragmentation and reassembly
Authentication – Integrity and authentication, and security
Encapsulating Security Payload – Confidentiality
Hop-by-Hop options – Special options that require hop-by-hop processing
Destination options – Optional information to be examined by the destination node