The VikiD Truth

Knowledge base / Computing / Networking & the web

Networking | IPDatagrams <– IPv6

IP Version 6

The orginal RFC 2460 (now superseded by RFC 8200) can be found here.

The following are my notes and interpretations of the document.

IPv6 Header Format

The plain idea

IPv6 is the current version of the Internet Protocol, the system that gives every device an address and routes packets between them. Its headline change is the address size: IPv4 used 32-bit addresses (about 4.3 billion of them), and IPv6 uses 128-bit addresses, an almost unimaginable number, roughly 340 undecillion (3.4 × 10³⁸). It also tidies up the header, builds in features that were bolt-ons in IPv4, and does away with some old complications.

Why it matters

The world ran out of IPv4 addresses. Every phone, laptop, server, camera and smart bulb needs an address, and 4.3 billion was never going to be enough. The stopgap was NAT (many devices hiding behind one public address), which works but breaks the internet’s original promise that any device can talk directly to any other. IPv6 restores that end-to-end model with addresses to spare, which is why, by 2026, a large share of global internet traffic, well over 40% to Google, and the majority in some countries, already runs over IPv6.

An everyday analogy: running out of phone numbers

Imagine a country whose phone numbers filled up, so everyone had to share a single office switchboard (NAT) and dial extensions to reach each other. It works, but you can no longer be called directly from outside. IPv6 is like moving to much longer numbers, so long that every grain of sand could have its own, and handing a unique, directly-dialable number back to every device.

A worked example: reading an IPv6 address

IPv6 addresses are written as eight groups of four hex digits:

2001:0db8:0000:0000:0000:ff00:0042:8329

Two shorthand rules make them bearable: drop leading zeros in each group, and replace one run of all-zero groups with ::. So the address above becomes:

2001:db8::ff00:42:8329

You will also meet ::1 (localhost, the IPv6 equivalent of 127.0.0.1) and addresses starting fe80:: (link-local, auto-configured on every interface). The header fields in my RFC notes above reflect the simplification: a fixed-size header, the old fragmentation and checksum fields removed (handled elsewhere), a Flow Label for prioritising streams, and Hop Limit replacing IPv4’s “Time To Live”. A nice touch is SLAAC (stateless address autoconfiguration): a device can often generate its own valid address from the router’s advertised prefix, no DHCP server required.

A 2026 update

My notes cite RFC 2460; that was obsoleted by RFC 8200 in 2017, which is the current IPv6 specification. Adoption, slow for years, is now substantial and steady. In practice most networks run dual stack (IPv4 and IPv6 together) during the long transition, and mobile networks in particular lean heavily on IPv6. The old IPsec “built-in security” selling point turned out to be optional in practice; real-world security still comes from TLS and configured IPsec, not from IPv6 itself.

Common misconceptions

How it connects

The truth revealed: IPv6 is less a new internet than the old internet given enough room to be itself again, every device with its own address, able to speak directly to any other, the way it was meant to work before we ran out of numbers.

Last edited · 16 revisions

Tags: #Computing