IPv4 vs IPv6
IPv4 vs IPv6: 32-bit versus 128-bit address space, header differences, the role of NAT and CGNAT, adoption status and why ISPs run dual-stack.
Last updated:
IPv4 and IPv6 are two versions of the Internet Protocol. IPv4 (RFC 791) uses 32-bit addresses, giving about 4.3 billion addresses. IPv6 (RFC 8200) uses 128-bit addresses for a practically unlimited pool on the order of 3.4 × 10^38. Both versions do the same job, namely addressing and routing packets, but they differ in address space, header structure and whether address translation is needed. In practice, carrier networks today run both versions side by side.
| Aspect | IPv4 | IPv6 |
|---|---|---|
| Address length | 32 bits | 128 bits |
| Address pool | About 4.3 billion | About 3.4 × 10^38 |
| Notation | Dotted decimal (192.0.2.1) | Hex with colons (2001:db8::1) |
| NAT | Widespread, often CGNAT at ISPs | Unnecessary, end-to-end addressing |
| Header | Variable length, with checksum | Fixed 40 bytes, no checksum |
| Address assignment | DHCP or manual | SLAAC or DHCPv6 |
| Group addressing | Broadcast and multicast | Multicast and anycast, no broadcast |
| Specification | RFC 791 | RFC 8200 |
Address space
The biggest difference is pool size. IPv4's 32 bits allow about 4.3 billion addresses, and that pool is exhausted. The RIPE NCC now only assigns small blocks from recovered resources. IPv6's 128 bits give a pool so large that a typical operator receives a /32 or larger allocation from its RIR, and a single subscriber usually gets a /48 or /56. Address scarcity disappears at the design level.
- IPv4: 32 bits, about 4.3 billion addresses, pool exhausted.
- IPv6: 128 bits, a pool on the order of 3.4 × 10^38 addresses.
- Typical IPv6 allocation for an operator (LIR): /32 or larger.
- Typical subscriber assignment: /48 or /56.
- IPv6 is written in hexadecimal with colons, e.g. 2001:db8::1.
Header and behaviour
The IPv4 header has a variable length of 20 to 60 bytes and includes fields such as a checksum and fragmentation controls. The IPv6 header is a fixed 40 bytes, carries no checksum (it relies on lower and upper layers) and moves options into separate extension headers. That simplifies router processing. In IPv6, fragmentation is performed only by the source host, not by intermediate routers, which changes how MTU and Path MTU Discovery must be handled across the network.
NAT and CGNAT
Because of IPv4 scarcity, NAT is almost universal, and operators additionally deploy CGNAT (Carrier-Grade NAT) using the shared 100.64.0.0/10 range (RFC 6598) to serve thousands of subscribers behind a handful of public addresses. IPv6 was designed so every host can hold a global address, so NAT in the IPv4 sense is not required. Security comes from firewalling, not from hiding addresses. Migrating to IPv6 reduces the cost and the limitations of CGNAT, such as broken port forwarding, geolocation and logging issues, and a session-per-address ceiling.
Adoption and dual-stack
Global IPv6 traffic to Google users now exceeds 40 percent, but IPv4 is still mandatory because parts of the internet are reachable only over IPv4. The standard approach is dual-stack (RFC 4213): the host and network run IPv4 and IPv6 at the same time, and the application picks a version per connection (Happy Eyeballs). Where pure IPv6 meets IPv4-only resources, transition mechanisms such as NAT64 (RFC 6146) and address translation (RFC 6052) bridge the gap.
IPv4 and IPv6 at AS202520 SkyPass
AS202520 SkyPass delivers IP transit in full dual-stack. We bring up BGP sessions for IPv4 and IPv6 at once, so you announce both kinds of prefixes over a single relationship. The same applies to peering at the Polish internet exchanges (THINX, TPIX, WRIX, 1-IX), where IPv6 exchange is standard. From our PoPs in Warsaw and Wrocław we provide remote IXP access and DDoS protection for both IPv4 and IPv6 traffic, so operators can roll out IPv6 without giving up IPv4 reachability.
Frequently asked questions
Can I drop IPv4 entirely?
Not yet. Parts of the internet are reachable only over IPv4, so an operator must keep IPv4 reachability, usually via dual-stack or transition mechanisms like NAT64. Pure IPv6 is only feasible once all relevant partners support IPv6.
Why is the IPv6 header simpler despite longer addresses?
IPv6 uses a fixed 40-byte header with no checksum and no fragmentation fields, and moves options into extension headers. This lets routers process packets faster even though the addresses themselves are four times longer than in IPv4.
Does IPv6 remove the need for NAT?
Yes in the IPv4 sense: every host can hold a global address, so address translation for conservation is unnecessary. Security is handled by an edge firewall. An optional NPTv6 exists, but it is not NAT for hiding hosts.
What IPv6 block should a subscriber receive?
Following RIR practice, a subscriber is typically assigned a /48 or /56, giving many /64 subnets for segmentation. A single /64 is the minimum for one LAN, because SLAAC requires 64 bits for the interface identifier.
