The internet is gradually transitioning from IPv4 to IPv6 to accommodate the explosive growth of internet-connected devices. Understanding the differences between these protocols helps you prepare for the future of networking.
Quick Comparison
| Feature | IPv4 | IPv6 |
|---|---|---|
| Address Size | 32 bits | 128 bits |
| Address Format | Dotted decimal (192.168.1.1) | Hexadecimal (2001:db8::1) |
| Total Addresses | ~4.3 billion | ~340 undecillion |
| Configuration | Manual or DHCP | SLAAC, DHCPv6, or manual |
| NAT Required | Yes (commonly) | No (not needed) |
| IPSec | Optional | Built-in support |
| Header Size | 20-60 bytes | 40 bytes (fixed) |
Understanding IPv4
IPv4 (Internet Protocol version 4) has been the backbone of the internet since 1983. It uses 32-bit addresses, written as four decimal numbers separated by dots.
IPv4 Address Format
Format: xxx.xxx.xxx.xxx
Each octet: 0-255
Example: 192.168.1.1
Binary: 11000000.10101000.00000001.00000001
└─192───┘└──168───┘└───1────┘└───1────┘
IPv4 Address Classes
| Class | First Octet | Default Mask | Use |
|---|---|---|---|
| A | 1-126 | /8 | Large networks |
| B | 128-191 | /16 | Medium networks |
| C | 192-223 | /24 | Small networks |
| D | 224-239 | N/A | Multicast |
| E | 240-255 | N/A | Reserved |
Understanding IPv6
IPv6 (Internet Protocol version 6) uses 128-bit addresses, providing vastly more unique addresses than IPv4.
IPv6 Address Format
Format: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
Each group: 0000-ffff (hexadecimal)
Full example: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
# Shortened (remove leading zeros, :: for consecutive zero groups)
Shortened: 2001:db8:85a3::8a2e:370:7334
IPv6 Address Types
- Global Unicast (2000::/3) — Public, routable addresses
- Link-Local (fe80::/10) — Used on local network segment only
- Unique Local (fc00::/7) — Private addresses (like IPv4 private ranges)
- Multicast (ff00::/8) — One-to-many communication
- Loopback (::1/128) — Localhost (equivalent to 127.0.0.1)
IPv6 Shortening Rules
# Original
2001:0db8:0000:0000:0000:0000:0000:0001
# Rule 1: Remove leading zeros in each group
2001:db8:0:0:0:0:0:1
# Rule 2: Replace longest consecutive zero groups with ::
2001:db8::1
# Note: :: can only be used once per address
IPv6 provides approximately 340 undecillion addresses (3.4 × 10³⁸). That's enough to assign over 100 addresses to every atom on Earth's surface.
Why We Need IPv6
IPv4 Exhaustion
IPv4's ~4.3 billion addresses seemed adequate in the 1980s, but global internet growth has depleted the pool:
- 2011 — IANA exhausted its free IPv4 pool
- 2012-2019 — Regional registries exhausted their pools
- Today — New IPv4 addresses require purchasing from existing holders
Benefits of IPv6
- Virtually unlimited addresses — Every device can have a unique public IP
- No NAT needed — End-to-end connectivity is restored
- Simpler header — Fixed 40-byte header improves router efficiency
- Built-in security — IPSec support is mandatory
- Better multicast — More efficient group communication
- Auto-configuration — SLAAC allows devices to configure themselves
The Transition
Current State
IPv6 adoption varies globally. Many ISPs now provide dual-stack connectivity (both IPv4 and IPv6), and major content providers fully support IPv6.
Transition Technologies
- Dual-Stack — Running both IPv4 and IPv6 simultaneously (most common)
- Tunneling (6to4, Teredo) — Encapsulating IPv6 in IPv4 packets
- NAT64/DNS64 — Allowing IPv6-only networks to reach IPv4 resources
Check Your IPv6 Status
To see if you have IPv6 connectivity:
# Windows
ipconfig | findstr "IPv6"
# macOS/Linux
ifconfig | grep inet6
# or
ip -6 addr show
Visit WhatIP.ca — if we show an IPv6 address, your connection supports it. Many users have IPv6 without realizing it.