IPv4 vs. IPv6: Address Exhaustion and the Path Forward
Understand why IPv4 addresses ran out, how IPv6 solves the problem, and what the transition means for users, administrators, and developers.
TL;DR — Key Takeaways
- IPv4 uses 32-bit addresses (~4.3 billion total), and they have been fully allocated since 2011. The internet has been running on workarounds like NAT and CGNAT ever since.
- IPv6 uses 128-bit addresses, providing 340 undecillion unique addresses—enough for every grain of sand on Earth to have its own IP, many times over.
- The two protocols are not directly compatible. Transition mechanisms like dual stack, tunneling, and NAT64 allow them to coexist during the migration.
- Global IPv6 adoption sits around 40–45%, with countries like India and France leading at 70%+ while enterprise networks lag behind.
- Whether you are a casual user, sysadmin, or developer, understanding the ipv4 vs ipv6 differences matters—IPv6 is not optional anymore, it is the present and the future.
Introduction
Every device connected to the internet needs an address. For over four decades, that address came from a pool of roughly 4.3 billion possibilities defined by IPv4. That sounds like a lot until you consider that there are now over 15 billion connected devices worldwide—phones, laptops, smart TVs, thermostats, industrial sensors, and everything in between. The math simply does not work anymore.
IPv6 was designed to fix this. It expands the address space from 32 bits to 128 bits, creating a number of addresses so large that the human brain cannot meaningfully comprehend it. But IPv6 is not just about more addresses. It introduces a simplified header, mandatory security features, and built-in autoconfiguration that reflects lessons learned from decades of running IPv4 at scale.
This guide breaks down the ipv4 vs ipv6 comparison in practical terms. We will cover how each protocol works, why IPv4 ran out, how the transition is happening, where adoption stands today, and what it all means depending on whether you are a regular internet user, a network administrator, or a software developer. If you want to start with the basics of how addresses are structured, our guide to IP address formats is a useful primer.
What Is IPv4?
Internet Protocol version 4 (IPv4) is the fourth version of the Internet Protocol and the first to be widely deployed. Defined in RFC 791 in 1981, it has been the backbone of internet communication for over 40 years.
An IPv4 address is a 32-bit number, typically written in dotted-decimal notation—four octets separated by dots. Each octet represents 8 bits, giving each a range of 0 to 255:
192.168.1.1
In binary: 11000000.10101000.00000001.00000001
With 32 bits, IPv4 provides a theoretical maximum of 232 = 4,294,967,296 addresses. In practice, large blocks are reserved for private networks, loopback, multicast, and documentation, so the usable public address space is significantly smaller.
192 . 168 . 1 . 1
| | | |
Octet 1 Octet 2 Octet 3 Octet 4
Each octet: 8 bits = values 0 through 255
Total: 4 octets × 8 bits = 32 bits
Max value: 255.255.255.255 = 4,294,967,295
Key characteristics of IPv4 include:
- Variable-length header (20–60 bytes) with optional fields that complicate router processing.
- Checksum in the header, recalculated at every hop, adding processing overhead.
- Fragmentation by routers—intermediate routers can fragment packets, which causes reassembly complexity.
- Broadcast support—a single packet can be sent to all devices on a subnet.
- No built-in security—IPsec is available but optional and was retrofitted after the original design.
- Manual or DHCP-based configuration—devices need a DHCP server or static configuration to obtain addresses.
To see how IPv4 addresses translate between decimal, binary, and hex, try our IP to binary converter. For a deeper look at the notation and format rules, see our IP address formats guide.
What Is IPv6?
Internet Protocol version 6 (IPv6) is the successor to IPv4, defined in RFC 8200. It was designed in the 1990s when it became clear that IPv4 addresses would eventually run out, though widespread deployment did not begin until the 2010s.
An IPv6 address is a 128-bit number, written as eight groups of four hexadecimal digits separated by colons:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
With 128 bits, IPv6 provides 2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses—commonly described as 340 undecillion. To put that in perspective, that is roughly 6.5 × 1023 addresses for every square meter of the Earth’s surface.
IPv6 was not just about adding more addresses. It was an opportunity to redesign the protocol header and fix long-standing issues with IPv4:
- Simplified fixed-size header (40 bytes) with no optional fields in the base header—routers process packets faster because they do not need to parse variable-length options.
- No header checksum—link-layer and transport-layer checksums handle error detection, so the per-hop checksum recalculation is eliminated.
- No router fragmentation—only the source host can fragment packets. Routers that receive oversized packets send back an ICMPv6 “Packet Too Big” message, and the source adjusts. This simplifies router design and improves performance.
- Mandatory IPsec support—IPsec was designed alongside IPv6 and is built into the protocol specification, making end-to-end encryption a native capability rather than an afterthought.
- Stateless Address Autoconfiguration (SLAAC)—devices can automatically configure their own addresses using the network prefix advertised by routers, without needing a DHCP server.
- Multicast replaces broadcast—IPv6 has no broadcast address. Instead, it uses multicast and anycast for one-to-many and one-to-nearest communication, reducing unnecessary network traffic.
- Built-in flow labeling—the Flow Label field in the header helps routers identify packet flows for quality-of-service handling without inspecting the payload.
IPv4 vs. IPv6: Key Differences
The following table summarizes the major technical differences between the two protocols. These are the distinctions that matter most in practice—whether you are configuring a network, studying for a certification, or deciding what to support in your application.
| Feature | IPv4 | IPv6 |
|---|---|---|
| Address Length | 32 bits | 128 bits |
| Address Format | Dotted decimal (192.168.1.1) |
Hexadecimal colon (2001:db8::1) |
| Address Space | ~4.3 billion | ~340 undecillion |
| Header Size | 20–60 bytes (variable) | 40 bytes (fixed) |
| NAT Required? | Commonly used (NAT/CGNAT) | Not needed—end-to-end connectivity restored |
| IPsec | Optional (retrofitted) | Built into the specification |
| Autoconfiguration | DHCP or manual | SLAAC (stateless) or DHCPv6 |
| Broadcast | Yes (broadcast address per subnet) | No—replaced by multicast |
| Fragmentation | By routers and source host | By source host only |
| Header Checksum | Yes (recalculated at every hop) | No (handled by other layers) |
The elimination of NAT is one of the most significant practical changes. NAT was a clever workaround that allowed thousands of devices to share a single public IPv4 address, but it broke the end-to-end connectivity model that the internet was built on. Peer-to-peer applications, VoIP, online gaming, and IoT devices all work better when every device has a globally routable address. IPv6 restores that model.
For a hands-on understanding of how addresses break into network and host portions, our subnet calculator lets you work with both IPv4 CIDR notation and subnet masks. If you are new to the concept entirely, start with our beginner’s guide to subnetting.
Why IPv4 Addresses Ran Out
When IPv4 was designed in 1981, 4.3 billion addresses seemed virtually unlimited. The internet was an academic research network with a few hundred hosts. Nobody anticipated smartphones, IoT devices, or the fact that a single household might have 20+ connected devices.
The exhaustion happened gradually, then all at once. Here is the timeline of when each Regional Internet Registry (RIR) exhausted its free pool of IPv4 addresses:
| Year | Event |
|---|---|
| 2011 (Feb) | IANA allocates the last five /8 blocks—one to each RIR. The central pool is empty. |
| 2011 (Apr) | APNIC (Asia-Pacific) reaches its final /8 and enters rationing mode. |
| 2012 (Sep) | RIPE NCC (Europe, Middle East, Central Asia) exhausts its last /8 block. |
| 2014 (Jun) | LACNIC (Latin America and Caribbean) reaches final /10 allocation threshold. |
| 2015 (Sep) | ARIN (North America) completely exhausts its free pool. New requests go on a waiting list. |
| 2020 (Jan) | AFRINIC (Africa)—the last RIR—enters its final phase of IPv4 allocation. |
The internet did not collapse when addresses ran out, because several stopgap measures had been deployed over the preceding decades:
- CIDR (Classless Inter-Domain Routing)—Replaced the wasteful classful allocation system in 1993. Instead of handing out entire Class A, B, or C blocks, CIDR allows allocations of any size using prefix notation (like
/22for 1,024 addresses). This dramatically improved address utilization. For more on variable-length techniques, see our guide to VLSM and supernetting. - NAT (Network Address Translation)—Allows an entire private network to share a single public IP address. Your home router almost certainly uses NAT right now, translating between your private addresses (like
192.168.x.x) and your single public IP. - CGNAT (Carrier-Grade NAT)—Takes NAT a step further. ISPs use CGNAT to put multiple customers behind a single public IP address. This means your home router’s “public” IP might itself be a shared address. CGNAT works but introduces complications for gaming, VoIP, hosting services, and any application that needs inbound connections.
These measures bought time, but they added complexity. NAT breaks the end-to-end model, complicates DNS resolution and peer-to-peer protocols, and creates a maintenance burden that grows as networks scale. IPv6 is the real solution.
How IPv6 Addresses Work
IPv6 addresses look unfamiliar at first, but the notation follows consistent rules that become intuitive with practice.
Notation Rules
An IPv6 address is written as eight groups of four hexadecimal digits, separated by colons:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Two simplification rules make addresses shorter and more readable:
- Leading zeros can be omitted within each group. So
0db8becomesdb8, and0000becomes0. - One consecutive run of all-zero groups can be replaced with
::(double colon). This can only be used once per address to avoid ambiguity.
Applying both rules to our example:
Full: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Drop zeros: 2001:db8:85a3:0:0:8a2e:370:7334
Use ::: 2001:db8:85a3::8a2e:370:7334
Address Types
IPv6 defines several categories of addresses, each serving a specific purpose:
| Type | Prefix | Purpose |
|---|---|---|
| Global Unicast (GUA) | 2000::/3 |
Publicly routable addresses—the IPv6 equivalent of public IPv4 addresses. Assigned by ISPs and RIRs. |
| Link-Local | fe80::/10 |
Automatically assigned to every interface. Valid only on the local network segment. Used for neighbor discovery and router advertisements. Every IPv6 device has one, always. |
| Unique Local (ULA) | fc00::/7 (usually fd00::/8) |
The IPv6 equivalent of RFC 1918 private addresses. Routable within your organization but not on the public internet. |
| Multicast | ff00::/8 |
One-to-many delivery. Replaces IPv4 broadcast and adds scoped multicast (link-local, site-local, global). |
| Loopback | ::1 |
The IPv6 equivalent of 127.0.0.1. Traffic sent here never leaves the device. |
Example Breakdown: Prefix and Interface ID
A typical IPv6 address is divided into two halves:
2001:0db8:85a3:0001:0000:8a2e:0370:7334
|<---- 64-bit Prefix ---->|<-- 64-bit Interface ID -->|
Prefix: 2001:0db8:85a3:0001
Routing prefix (48 bits): 2001:0db8:85a3
Subnet ID (16 bits): 0001
Interface ID: 0000:8a2e:0370:7334
Identifies the specific device on the subnet
Can be derived from the MAC address (EUI-64)
or generated randomly for privacy (RFC 4941)
The 64-bit prefix is analogous to the network portion of an IPv4 address, while the 64-bit interface identifier is analogous to the host portion. In most deployments, ISPs assign a /48 or /56 prefix to customers, giving them 65,536 or 256 subnets respectively—each with 264 addresses. You can see your current address assignment by visiting our What Is My IP tool.
The Transition: Dual Stack, Tunneling, and Translation
IPv4 and IPv6 are not compatible. An IPv4-only device cannot communicate directly with an IPv6-only device. The internet cannot simply flip a switch from one to the other, so three categories of transition mechanisms allow both protocols to coexist during the migration.
Dual Stack
The most straightforward approach: run both IPv4 and IPv6 simultaneously on the same device, interface, and network. The device gets both an IPv4 address and an IPv6 address. When it connects to a destination, it checks whether IPv6 is available (via DNS AAAA records) and prefers it if so, falling back to IPv4 otherwise.
Dual stack is the recommended transition method and the most widely deployed. Most modern operating systems, routers, and applications support it natively. The downside is that network administrators must maintain two complete protocol stacks—two sets of firewall rules, two sets of routing tables, two sets of monitoring configurations.
Tunneling
Tunneling encapsulates IPv6 packets inside IPv4 packets, allowing IPv6 traffic to traverse IPv4-only network segments. Several tunneling protocols exist:
- 6to4—Automatically creates tunnels using a special
2002::/16prefix derived from the device’s IPv4 address. Deprecated (RFC 7526) due to reliability issues but still encountered in legacy configurations. - Teredo—Designed to tunnel IPv6 through IPv4 NAT devices, which 6to4 cannot handle. Uses UDP encapsulation on port 3544. Built into Windows but considered a last-resort mechanism.
- 6in4 (Protocol 41)—A manually configured tunnel that encapsulates IPv6 directly in IPv4. Used by tunnel broker services like Hurricane Electric. Reliable but requires static configuration and does not work behind NAT without port forwarding.
- ISATAP—Intra-Site Automatic Tunnel Addressing Protocol. Designed for enterprise networks to carry IPv6 over an IPv4-only internal infrastructure. Uses the IPv4 address as part of the IPv6 interface identifier.
Translation (NAT64 / DNS64)
NAT64 translates between IPv6 and IPv4 at the network boundary. An IPv6-only client sends traffic to a synthesized IPv6 address that maps to the destination’s IPv4 address. The NAT64 gateway translates the packets and forwards them.
DNS64 works alongside NAT64. When an IPv6-only client performs a DNS lookup for a domain that only has an A record (IPv4), the DNS64 server synthesizes a fake AAAA record (IPv6) by embedding the IPv4 address within a well-known IPv6 prefix (typically 64:ff9b::/96). The client then sends IPv6 traffic to this synthesized address, and the NAT64 gateway handles the translation.
This approach is particularly common on mobile networks. Carriers like T-Mobile in the US run IPv6-only networks for mobile devices and use NAT64/DNS64 to maintain connectivity to the IPv4 internet. Understanding how DNS works is essential for troubleshooting issues in these environments.
IPv6 Adoption Today
As of 2026, global IPv6 adoption sits at approximately 40–45% of internet traffic, according to Google’s IPv6 statistics and APNIC Labs measurements. That number has grown steadily from under 1% in 2012, but adoption is uneven across regions and sectors.
Leading Countries
| Country | Approx. IPv6 Adoption | Key Driver |
|---|---|---|
| India | ~70% | Reliance Jio launched as IPv6-only, bringing hundreds of millions of mobile users online with IPv6 from day one. |
| France | ~75% | Major ISPs (Free, Orange) deployed IPv6 aggressively across both fixed and mobile networks. |
| Germany | ~65% | Deutsche Telekom and other carriers prioritized IPv6 rollout for residential broadband. |
| United States | ~50% | Large carriers (Comcast, AT&T, T-Mobile, Verizon) have deployed IPv6, but enterprise adoption lags. |
The Enterprise Gap
Consumer ISPs and mobile carriers have led IPv6 deployment because they face the most direct pressure from address exhaustion. Enterprise networks, on the other hand, have been slower to adopt. Many run behind NAT with RFC 1918 private addresses and feel no immediate pressure to change. Internal applications, security appliances, and monitoring tools may not fully support IPv6, creating a chicken-and-egg problem where nothing gets upgraded because nothing else has been upgraded yet.
CDNs and Content Providers
Major CDNs and content providers—including Cloudflare, Akamai, Google, Facebook, and Netflix—all support IPv6. This matters because a significant portion of internet traffic flows through these networks. When the content side supports IPv6 and the access network supports IPv6, end-to-end IPv6 connections happen automatically. You can verify your own connectivity with our network tools.
What This Means for You
For Everyday Users
If you are a regular internet user, the IPv4-to-IPv6 transition is mostly invisible. Your ISP handles the dual-stack deployment, your operating system prefers IPv6 when available, and websites serve content over whichever protocol your connection supports. You do not need to do anything manually.
That said, there are a few situations where awareness helps. If you are troubleshooting connectivity issues, knowing whether you are on IPv4 or IPv6 can narrow the problem. If you are setting up a home server, port forwarding, or configuring a VPN, you need to account for both protocols. And if your ISP uses CGNAT, understanding that your “public” IPv4 address is shared with other customers explains why certain services (like hosting a game server) do not work without extra steps.
For System Administrators
Network administrators face the most work during the transition. Key considerations include:
- Firewall rules—IPv6 requires its own set of firewall rules. Simply enabling IPv6 without configuring your firewall creates a security gap. Every rule you have for IPv4 needs an IPv6 equivalent, plus ICMPv6 must be allowed for basic operations like neighbor discovery and path MTU discovery.
- DNS configuration—Add AAAA records alongside A records for all public-facing services. Ensure your recursive resolvers and authoritative servers support both protocols.
- Monitoring and logging—Update monitoring tools to track IPv6 traffic. Ensure that firewalls, IDS/IPS systems, and log analysis tools can handle IPv6 addresses (which are significantly longer than IPv4 addresses and may appear in multiple formats).
- Address planning—Plan your IPv6 addressing scheme before deployment. Unlike IPv4, where you carefully conserve addresses, IPv6 gives you a vast allocation. Use it hierarchically to simplify routing and access control.
For Developers
Software developers must ensure their applications work correctly with both protocols:
- Socket programming—Use protocol-agnostic socket APIs. In most languages, this means using
AF_INET6sockets with dual-stack support or address-family-independent functions likegetaddrinfo()instead of hardcodingAF_INET. - Address storage—IPv6 addresses require more storage space. Database columns sized for IPv4 (15 characters for dotted-decimal or 4 bytes for integer) will not fit IPv6 addresses (up to 39 characters or 16 bytes). Use
INET6orVARBINARY(16)column types where available. - URL formatting—IPv6 addresses in URLs must be enclosed in square brackets:
http://[2001:db8::1]:8080/path. This is defined in RFC 2732 and is a common source of parsing bugs when IPv6 support is added to existing code. - Testing—Test your application on IPv6-only networks, not just dual-stack. Many bugs only surface when IPv4 is unavailable entirely.
Understanding where IP addressing fits in the broader networking model helps contextualize these changes. Our OSI model guide explains how IPv4 and IPv6 operate at Layer 3 and interact with the layers above and below.
Frequently Asked Questions
Is IPv6 faster than IPv4?
In many cases, yes, but not because of the protocol itself. IPv6 connections skip the NAT translation step that IPv4 typically requires, which eliminates a small amount of latency. The simplified IPv6 header is also slightly more efficient for routers to process. Real-world measurements from Facebook and LinkedIn have shown IPv6 connections completing 10–15% faster on average. However, on well-optimized networks where NAT latency is minimal, the difference may be negligible.
Do I need IPv6 right now?
If you are an everyday internet user, your ISP is likely already providing IPv6 alongside IPv4 via dual stack. You benefit from it without needing to do anything. If you run a server or website, enabling IPv6 is increasingly important—some mobile networks are IPv6-only, and visitors from those networks rely on NAT64 to reach IPv4-only sites, which adds latency. For new infrastructure deployments, IPv6 support should be a baseline requirement, not an afterthought.
Will IPv4 stop working?
Not any time soon. IPv4 will remain operational for many years to come. The transition is gradual, and dual-stack networking ensures both protocols coexist. Infrastructure that currently depends on IPv4 will not suddenly break. Eventually, maintaining IPv4 infrastructure will become more expensive than it is worth—but that timeline is measured in decades, not years. The pattern will likely resemble how analog phone networks were gradually decommissioned: slowly, with plenty of overlap.
How do I check if I have an IPv6 address?
The easiest way is to visit an IP address lookup tool, which shows your current public IP address. If it contains colons (like 2601:642:4a02:1210::5), you have IPv6. You can also check locally: on Windows, run ipconfig and look for “IPv6 Address.” On macOS or Linux, run ifconfig or ip -6 addr. If you see a fe80:: address, that is a link-local address—every IPv6-enabled interface has one, but it does not mean you have global IPv6 connectivity.
Why is IPv6 adoption so slow?
Several factors contribute. IPv6 is not backward-compatible with IPv4, so networks must run both protocols simultaneously during the transition, doubling operational complexity. Upgrading routers, firewalls, load balancers, and applications costs money and time. NAT provided a workable (if imperfect) solution to address exhaustion, reducing the urgency to migrate. Many enterprise IT teams have limited IPv6 expertise, creating a skills gap that slows deployment. Despite these hurdles, adoption has accelerated significantly since 2015, driven primarily by mobile carriers and large content providers.
Can IPv4 and IPv6 coexist?
Absolutely. This is exactly how the internet operates today. Dual-stack networking allows devices and networks to run both protocols simultaneously. When a device connects to a destination, it prefers IPv6 if available and falls back to IPv4 otherwise. Translation mechanisms like NAT64 handle the cases where an IPv6-only client needs to reach an IPv4-only server. The coexistence period will continue for many years as the transition progresses.
References
- RFC 791 — Internet Protocol (IPv4). tools.ietf.org/html/rfc791
- RFC 8200 — Internet Protocol, Version 6 (IPv6) Specification. tools.ietf.org/html/rfc8200
- Google IPv6 Statistics. google.com/intl/en/ipv6/statistics.html
- APNIC Labs — IPv6 Measurement Maps. stats.labs.apnic.net/ipv6
- Cloudflare — What Is IPv6? cloudflare.com/learning/network-layer/what-is-ipv6/