How IPv6 Headers Are Formed, Compared To IPv4

Profile image of Mattias Geniar

Mattias Geniar, April 09, 2010

Follow me on Twitter as @mattiasgeniar

On the website, there is an excellent write-up on IPv6 headers. The author describes in great detail how the IPv6 packets are created, and how they compare to IPv4.

The IHL – or Internet Header Length – was removed from IPv6, as each IPv6 header will always be 40 bytes in length, despite the content. The Time to Live has been rephrased to “Hop Limit", which more accurately describes its purpose. Each hop the fragment passes, the counter is reduced by value 1. As soon as the counter hits zero, the packet is destroyed. The Header Checksum was removed from IPv6.

The IPv6 looks less cluttered, and holds less fragmented data, but more to-the-point information. The Version holds value 6, to indicate IPv6. The Flow Label can be used to label certain packets belonging to the same stream or session, so they are more easily distinguishable. It could be used by routers to uphold certain Quality of Service settings, without having to analyze the packet entirely.

The Payload Length holds the length of the user data to be transmitted, as well as the length of any additional headers that might be sent along. Since the header has a fixed 40 byte size, the Total Length from IPv4 (which included both the header size + user data size) is no longer needed.

For a more detailed explanation, I’ll refer you to the post on Cisco’s website titled IPv6 internals.

Want to subscribe to the cron.weekly newsletter?

I write a weekly-ish newsletter on Linux, open source & webdevelopment called cron.weekly.

It features the latest news, guides & tutorials and new open source projects. You can sign up via email below.

No spam. Just some good, practical Linux & open source content.