Address Space
| Property | IPv4 | IPv6 |
|---|---|---|
| Address size | 32 bits | 128 bits |
| Total addresses | ~4.3 billion | ~3.4 × 10³⁸ |
| Exhausted? | Yes (since 2019) | No |
| NAT required? | Yes (for private networks) | No (by design) |
IPv4's 32-bit address space gives just over 4 billion unique addresses — far too few for the modern internet. IPv6's 128-bit space provides approximately 340 undecillion (3.4 × 10³⁸) addresses — enough to give every grain of sand on Earth its own address, many times over.
Address Notation
IPv4 addresses are written as four decimal numbers (0–255) separated by dots:
192.168.1.100IPv6 addresses are 128 bits written as eight groups of four hexadecimal digits separated by colons:
Full form: 2001:0db8:0000:0000:0000:0000:0000:0001
Compressed: 2001:db8::1IPv6 compression rules:
- Leading zeros in each group can be omitted:
0db8→db8 - One consecutive run of all-zero groups can be replaced with
:: ::can appear only once in an address
Header Differences
IPv6 has a simpler, fixed-length header (40 bytes) compared to IPv4's variable-length header (20–60 bytes). Key differences:
| Feature | IPv4 | IPv6 |
|---|---|---|
| Header size | 20–60 bytes (variable) | 40 bytes (fixed) |
| Checksum | Yes (computed per hop) | No (handled by transport layer) |
| Fragmentation | Routers can fragment | Source only; path MTU discovery |
| Options | In header | Extension headers |
| Broadcast | Yes | No (uses multicast) |
| ARP | ARP (Address Resolution Protocol) | NDP (Neighbor Discovery Protocol) |
IPv6 Address Types
| Type | Prefix | Purpose |
|---|---|---|
| Global Unicast | 2000::/3 | Public internet addresses (like IPv4 public) |
| Link-Local | fe80::/10 | Auto-configured; used within a single link |
| Unique Local | fc00::/7 | Private use (like RFC 1918 in IPv4) |
| Loopback | ::1/128 | Self-reference (like 127.0.0.1) |
| Multicast | ff00::/8 | One-to-many delivery |
| Unspecified | ::/128 | Not-yet-configured (like 0.0.0.0) |
| Documentation | 2001:db8::/32 | Reserved for examples (RFC 3849) |
IPv6 Subnetting
IPv6 subnetting works on the same CIDR principle as IPv4 — a prefix length defines the network portion. Common IPv6 allocations:
| Prefix | Typical allocation | Addresses |
|---|---|---|
| /32 | ISP allocation from RIR | 2⁹⁶ ≈ 79 octillion |
| /48 | Site/organisation allocation | 2⁸⁰ ≈ 1.2 septillion |
| /56 | Residential customer | 2⁷² |
| /64 | Single network link (standard) | 2⁶⁴ ≈ 18.4 quintillion |
| /128 | Single host (like /32 in IPv4) | 1 |
The /64 boundary is special in IPv6 — it is required for SLAAC (Stateless Address Autoconfiguration), which devices use to configure their own IPv6 addresses without DHCP.
Use our IPv6 calculator to compute prefix addresses, address types, and reverse DNS zones for any IPv6 prefix.
Transition Mechanisms
Since IPv4 and IPv6 cannot communicate directly, several transition techniques exist:
- Dual-stack — devices run both IPv4 and IPv6 simultaneously. The most common approach today.
- 6to4 — tunnels IPv6 packets inside IPv4. Each IPv4 address maps to a
2002::/16prefix. - NAT64/DNS64 — translates IPv6 packets to IPv4, allowing IPv6-only clients to reach IPv4 servers.
- Teredo — tunnels IPv6 over UDP through IPv4 NAT.