IPv6 Specifications

IPv6 Specifications

IPv6 Header Format- An IPv6 header is 40 bytes in length.

Version- 4-bit IPv6 version 6

Traffic class- 8-bit traffic class field

Flow Label- 20-bit flow label field

Payload Length- 16-bit length of the packet payload excluding the standard header. If Extension headers are present, they are included in the payload length.

Next Header- 8-bit selector identifying the type of header following the IPv6 header

Hop Limit- 8-bit unsigned integer decremented by 1 by each node that forwards the packet. If the Hop Limit reaches 0, the packet is discarded.

Source and Destination Addresses- 128-bit addresses of the sender and the receiver.

IPv6 Extension Headers-

In IPv6, the optional IP-layer information is put in seperate Extension Headers. An IPv6 packet may contain 0, 1 or more Extension headers. The type of Extension header to follow is indicated by the Next-Header value in the previous header. These Extension headers are processed in the order they appear in the packet by the destination node only, with one exception. The exception is- if the standard IPv6 header is followed by the Hop-by-Hop Options header (indicated by Next-Header value 0), the information must be examined by every node along the path, including the source and destination nodes.

When more Extension headers appear in the packet, the Next-Header values in preceeding headers are-

The use of Next-Header value and Extension header is shown below-

Each Extension header can appear AT THE MOST once, except Destination Options header which can appear at the most twice- once before the Routing header and once after the Routing header.

The Hop-by-Hop and Destination Options headers are sent by a number of variable-length TLVs.

1. Hop-by-Hop Options Header:

The Hop-by-Hop Options header carry optional information that is used by each node along the path to the destination. This header must immediately follow the IPv6 standard header.

2. Routing Header:

The Source node lists a number of addresses of intermediate nodes that the packet must "visit" along the path to the destination. The Routing Header is processed by the node identified by the Destination address field in the IPv6 header.

3. Fragment Header:

A Source node willing to send a packet to the destination larger than the PATH MTU will fit, uses Fragment header. The Source node fragments the packet if the packet size is larger than the link MTU along the path, sends the fragments in multiple packets and the destination will re-assemble them.

4. Destination Options Header:

The Destination Options header contains options that must be examined by the destination(s) of an IPv6 packet. The Destination Options header can appear twice in an IPv6 packet. When it preceeds the Routing header, it must be examined by the first destination listed in the packet, and subsequently by each node listed in the Routing header along the path. If it appears after the Routing Header (or if no Routing Header is present), it must be examined only by the final destination of the packet.

5. No Next Header:

If the Next-header value of the preceeding header is 59, it indicates that there is nothing following that header.

Traffic Class-

An 8-bit Traffic Class field is present in IPv6 header by sending node &/or forwarding routers to distinguish different classes or priorities of IPv6 packets. It can be used in a similar way to IPv4 DSCP or IP Precedence. It is set to all zeroes by default.

Flow Label-

A 20-bit Flow Label field is available to source node to label sequences of packets which require special handling by IPv6 routers. RSVP can be used as a control protocol to inform the nature of special handling. Host or routers that do not support the function of Flow Label set the field to all zeroes when originating a packet, pass the field unchanged when forwarding a packet, and ignores the field when receiving a packet.

Packet Size Issues:

IPv6 requires that every link have an MTU of 1280 bytes or more. On any link that cannot forward 1280 byte packet in one piece, link-specific fragmentation and reassembly is applied.

Path MTU Discovery mechanism should be implemented on each IPv6 node to take advantage of the Path MTUs greater than 1280 bytes. Packets larger than 1280 bytes can be fragmented and transported using the Fragment Header, however, that is not recommended.

Further reading:

1. RFC 2460: IPv6 Specifications http://www.faqs.org/ftp/rfc/pdf/rfc2460.txt.pdf

2. IPv6 Headers at a Glance from Cisco.com