With the depletion of available IPv4 addresses, knowledge of IPv6 and how it operates has become a vital part of any engineers training. While IPv6 is different from IPv4 in many respects, it should not be a large undertaking for any seasoned engineer to pick up, understand and implement. This article takes a look at the IPv6 header, the fields that exist and how they are used.
As shown in Figure 1, the IPv6 header has been designed to be simple and easy to process. This enables IPv6 devices the ability to spend the majority of their time dealing with the data contained within the packet and not the packet header itself.
Figure 1 – The IPv6 Header
The version field is 4 bits long and is used to tell the processing equipment the version of the IP header that can be expected; when building an IPv6 header the value of the Version field is 6 (0110).
The Traffic Class field is an 8 bit field that is used to signify the importance of the data contained within this specific packet. With IPv4, this information was signified with the TOS field and supported both IP precedence and Differentiated Services Code Point (DSCP). The Traffic Class field used with IPv6 supports DSCP solely; this specification uses the first 6 bits to indicate the Per Hop Behavior (PHB) of the contained data; these PHB’s are defined in RFC 2474 and its additions.
Before understanding the Flow Label the definition of a flow must be understood. Think of a flow as a stream of traffic that is coming from one source and destined for one or more destinations; a flow will contain multiple packets which can each be treated exactly the same way by intermediate routing devices. The Flow Label is used to identify these flows and enables these intermediate routing devices to treat all of the packets within the flow the same, this reduces processing time and because of this delay.
The Payload Length field is used to indicate the total size of the payload contained within the IPv6 packet. This is then used by the processing devices to ensure that the packet has been completely received. It is important to note that this differs from how the Length field is used with the IPv4 header which contains the length for the whole IPv4 packet.
The Next Header field can be used in two different ways depending on the makeup of the specific IPv6 packet. The first is to indicate the protocol that is contained within the packet. The second is a little more complex; IPv6 has the ability to add extension headers after the main IPv6 packet header. These extension headers are used to indicate that the packet has specific options attached to it; this information was contained within the Options (or IP Options) IPv4 header field.
The Hop Limit field is very simple and replaces the Time to Live (TTL) field that is contained within IPv4 packets. The value that is placed within the field limits the total number of hops that the specific packet is allowed to travel, for example if the value was 2, the packet could only travel a total of 2 additional hops before being discarded.
The source and destination fields contain the original IPv6 device source address and the original IPv6 destination address. This information is then used by all intermediate devices to route the packet to its expected destination and to return traffic to the original source should a problem occur.
While the IPv6 header is different in its structure from the IPv4 header, its function is exactly the same. Knowledge of the IPv6 header has become mandatory knowledge for most network engineers as the transition to IPv6 is here for many organizations. Hopefully the information contained within this article will help in becoming more familiar with IPv6 and how it operates.