IPv6

In the early 1990s, the 32-bit IPv4 address space was running out.

To solve this, a new protocol called IPv6 (The Internet Protocol version 6) was developed.

Most important changes

IPv6 datagram format

Internet Protocol Version 6 (IPv6)
Offsets
(starting positions)
Octet 0 1 2 3
Octet Bit 0-3 4-7 8-11 12-15 16-23 24-31
0 0 Version Traffic Class Flow Label
4 32 Payload Length Next Header Hop Limit
8 64 Source IP Address
12 96
16 128
20 160
24 192 Destination IP Address
28 224
32 256
36 288
40+ 320+ Data
Field Description

Version

Identifies the IP version number.

Traffic class

  • Can be used to give priority to certain datagrams within a flow.
  • Can be used to give priority to datagrams from certain applications.

Flow label

Identifies a flow of datagrams.

Payload length

Treated as an unsigned integer giving the number of bytes of the payload.

Next header

  • Identifies the protocol to which the contents (data field) of this datagram will be delivered (e.g., TCP or UDP).
  • Uses the same values as the protocol field in the IPv4 header.

Hop limit

  • Decremented by one by each router that forwards the datagram.
  • If the hop limit reaches zero, a router must discard the datagram.

Source and destination addresses

IPv6 128-bit addresses.

Data

Payload portion of the IPv6 datagram.

Several IPv4 fields are no longer present in the IPv6 datagram:

Transitioning from IPv4 to IPv6

The Internet is moving from IPv4 to IPv6 using a method called tunneling (RFC 4213).

Tunneling lets IPv6 networks communicate even when traffic must pass through IPv4-only parts of the Internet:

Transitioning from IPv4 to IPv6

Neighbor solicitation

IPv6 does not use ARP. Instead, it uses the Neighbor Discovery Protocol, which is based on ICMPv6.

Unlike ARP, which uses broadcasts, NDP uses multicast messages:

Network-layer protocols are hard to change

A key lesson from IPv6 is that changing network-layer protocols is very difficult:

In contrast, new application-layer protocols are easy to deploy:

As a result, changes at the network layer happen much more slowly than changes at the application layer.

Previous IPv4 All ⏎ Next IP address space management

A Kemar Joint