guest@ipterm:~$ man ipv6
IPv4 vs IPv6: what’s the difference?
IPv4 and IPv6 are two versions of the Internet Protocol. Both do the same job, giving every connection an address, but IPv6 has vastly more addresses and writes them differently.
IPv4
An IPv4 address is 32 bits, written as four numbers from 0 to 255, like 8.8.8.8. That allows about 4.3 billion addresses, which turned out to be far too few. The central pool run by IANA ran out in 2011, and the regional registries have since run out of fresh blocks as well.
The internet kept working thanks to NAT: one public address shared by every device in a home, and carrier-grade NAT, which shares one address among many customers.
IPv6
An IPv6 address is 128 bits, written as eight groups of four hexadecimal digits separated by colons. There are enough addresses for every device to have its own public one. Two rules shorten them:
- Leading zeros in a group can be dropped:
0db8becomesdb8. - One run of all-zero groups can be replaced with
::.
So 2001:4860:4860::8888 is short for 2001:4860:4860:0000:0000:0000:0000:8888.
Homes usually receive a whole block of IPv6 addresses (a /64 or larger), and devices often use temporary addresses that change regularly for privacy.
Special IPv6 addresses
| Address | Meaning |
|---|---|
| ::1 | Loopback, this device |
| fe80::/10 | Link-local, only valid on the local network segment |
| fc00::/7 | Unique local, the IPv6 version of private addresses |
| 2001:db8::/32 | Reserved for documentation and examples |
Which one are you using?
Many connections are dual-stack: they have both an IPv4 and an IPv6 address, and your device picks whichever connects faster for each site. whoami shows the address your browser used to reach ipterm, marked IPv4 or IPv6. Neither version is inherently faster; the difference comes from the route your traffic takes.
Try itLook up 2001:4860:4860::8888 to see an IPv6 address expanded and its /64 prefix.