IPv6 Header Details
This blog helps you understanding and grasping IPv6 Header Details. IPv6
is the replacement Internet protocol for IPv4. It corrects some of the
deficiencies of IPv4 and simplifies the way that addresses are
configured and how they are handled by Internet hosts. IPv4 has
proven to be robust, easily implemented, and interoperable, and has
stood the test of scaling an inter-network to a global utility the size
of the Internet. However, the initial design did not anticipate the
following conditions:
- Recent exponential growth of the Internet and the impending exhaustion of the IPv4 address space.
- The ability of Internet backbone routers to maintain large routing tables.
- Need for simpler auto-configuration and renumbering.
- Requirement for security at the IP level (IPSec).
- Need for better support for real-time delivery of data, known as quality of service (QoS).
Why is IPv6 required?
With
its 32-bit address format, IPv4 can handle a maximum 4.3 billion unique
IP addresses. While this number may seem very large, it is not enough
to sustain and scale the rapidly rising growth of the Internet. Although
improvements to IPv4, including the use of NAT, have allowed the
extended use of the protocol, address exhaustion is inevitable and could
happen as soon as 2012.
With its 128-bit address format, IPv6 can support 3.4
x 1038 exchange unique IP addresses. This number of
addresses is large enough to configure a unique address on every node in
the Internet and still have plenty of addresses left over. It is also
large enough to eliminate the need for NAT, which has its own inherent
problems.
A few countries, governmental agencies, and
multinational corporations have either already deployed or mandated
deployment of IPv6 in their networks and software products. Some
emerging nations have no choice but to deploy IPv6 because of the
unavailability of new IPv4 addresses.
Advantages of IPv6
Besides
providing an almost limitless number of unique IP addresses for global
end-to-end reachability and scalability, IPv6 has the following
additional advantages:
- Simplified header format for efficient packet handling
- Larger payload for increased throughput and transport efficiency
- Hierarchical network architecture for routing efficiency
- Support for widely deployed routing protocols (OSPF, BGP, etc.)
- Autoconfiguration and plug-and-play support
- Elimination of need for network address translation (NAT) and application layered gateway (ALG)
- Increased number of multicast addresses .
IPv6 Header Details
Traffic Class (8 bits): This field defines the prioritization of the Traffic. This field is Similar to the "TOS" field in IPv4 Header. 8 bits are divided into two parts. The most significant 6 bits are used for Type of Service (or DSCP). The least significant 2 bits are used for Explicit Congestion Notification (ECN).
Flow Label (20 bits): This a new field included in IPv6 header basically used to distinguish the flow of packets. A source device can label the packets by setting a non zero value in the Flow Label field. The packets marked with the same Flow Label value would be given the same treatment by various devices (Routers/L3 Switches) that exist in the path. Multiple active flows may exist from a source to a destination along with packets that are not associated with any flow i.e with Flow Label value 0.
Payload length (16 bits): This field indicates the size of the payload in bytes, including any extension headers. A Jumbo payload is indicated by the value zero in the Payload Length field, details explained in this field below. This field is similar to the "Total Length" field in IPv4 header but not exactly identical to it.
The total size of an IPv6 packet can be derived by adding 40bytes to the Payload Length field.
IPv6 Payload is also composed of Extension Headers along with Upper layer data. With 16 bits, up to 65535 bytes is the maximum length of Payload, but if the Extension Headers contain Hop-by-Hop Extension Header, then the payload may exceed 65535 bytes and this field is set to 0. You can see more details about Extension Header in my other article "IPv6 Extension Headers".
Next Header (8 bits): This field is similar to the "Protocol Field" in the IPv4 Header. This field identifies the protocol running at the transport layer for e.g. TCP(6)/UDP(17)/OSPF(89)/EIGRP (88) etc. Also, note that This field is used to indicate either the type of Extension Header or if the Extension Header is not present then it indicates the Upper Layer Protocol at Transport layer.
Hop Limit (8 bits): This field is similar to "Time to Live (TTL)" field in IPv4 header. The source device set the value in this field and its value is decremented by one by each node in the path that forwards the packet. The packet is discarded when the hop count gets zero. This field is used to prevent the packet to remain in an indefinite loop due to any routing related errors.
Source address (128 bits): Specifies the IPv6 address of the sending node.
Destination address (128 bits): Specifies the IPv6 address of the destination node.
Hope you have understood the concept and enjoyed reading this Post. Please share your feedback if you liked this post. You can also write to us on networkurge@gmail.com.