2 | All you need to know about IPv6 | What changed?

In the previous post, we looked at a short history on IPv6 and how discussions and protocols evolved to finally land us here in the v6 world.

Remember that the 32-bit IPv4 address space contains 4.2 billion addresses (2^32). In contrast, the 128-bit IPv6 address space has 340 Undecillion addresses(2^128). Yes, undecillion….take 3 billion, and add 29 zeroes to it!

Undecillion number comparison
Number comparison

General changes

IPv6 has several improvements apart from an expanded address space. These include:

  • A simplified header with some fields removed or implemented as optional information
  • Better support for optional header information via the use of extension headers
  • Flow labelling to improve classification of packets
  • Fragmenting packets by source nodes. Routers along a packet’s delivery path DO NOT 🙂 fragment packets. More on this in upcoming posts

Changes to the IPv6 header

The base IPv6 header is fixed at 40 bytes. The size of the IPv4 header is not fixed i.e. can be between 20 to 60 bytes depending on whether there is optional information.

Here’s a side-by-side comparison of the IPv4 and IPv6 headers. You’ll notice that the v6 header has fewer fields.

IPv4 vs IPv6 Header
IPv4 vs IPv6 Header

Since the IPv6 header is fixed, we don’t need the IHL field. The header checksum field is also eliminated and IPv6 relies on layer 4 (TCP and UDP) and layer 2 for checksum computation. This means that the use of the UDP checksum is no longer optional in IPv6.

IPv4 fragmentation fields (Identification, Flags and Fragment offset) are implemented using extension headers in IPv6.

In with the new, Flow Label

The Flow Label field is the only new kid on the block 🙂 Traditional flow classifiers use 5 tuples i.e. Source Address, Destination Address, Source Port, Destination Port, and the transport protocol type.

The transport protocol, source and destination ports are in different layers and may be unavailable due to encryption or fragmentation.

Classification in IPv6 is efficient with the use of 3 tuples i.e. Flow Label + Source Address + Destination address. However, the flow label field is still not yet widely implemented.

In the next post, we’ll take a deep dive into IPv6 extension headers.

Keep learning!

Share