Guide
IPv4 vs IPv6
Why two address systems exist, what actually changed, and how to tell what you have.
One protocol ran out of numbers
IPv4 gives every address 32 bits, which allows roughly 4.3 billion distinct values. That was an extraordinarily generous number in 1981 and an obviously insufficient one by the mid-1990s. The regional registries began exhausting their free pools in 2011, and today an IPv4 address is a traded asset with a market price.
IPv6 uses 128 bits. The number of addresses that produces is not usefully expressible in ordinary language — it is about 340 undecillion, which is enough to assign a unique address to every atom on the surface of the Earth several times over. The point of that absurd headroom is that allocations can be generous and hierarchical without anybody ever needing to economise again.
Everything else about IPv6 follows from having enough addresses. Once you are not rationing them, a household can have billions rather than one, network address translation stops being necessary, and every device can hold a genuinely globally routable address.
The differences that actually show up
| Aspect | IPv4 | IPv6 |
|---|---|---|
| Address length | 32 bits | 128 bits |
| Total addresses | About 4.3 billion | About 340 undecillion |
| Notation | Four decimal octets — 93.184.216.34 | Eight hex groups — 2606:2800:220:1:248:1893:25c8:1946 |
| Typical home allocation | One shared address | A /64 or larger, per device addresses |
| Address translation | Nearly always (NAT) | Normally none |
| Broadcast | Yes | None — multicast instead |
| Header size | 20 bytes, variable | 40 bytes, fixed |
| Fragmentation | Routers may fragment | Sender only |
| Address configuration | DHCP, usually | SLAAC or DHCPv6 |
| Reserved for docs | 192.0.2.0/24 | 2001:db8::/32 |
Reading an IPv6 address
The notation looks intimidating and is not. An address is eight groups of four hexadecimal digits, separated by colons. Two abbreviation rules make it manageable: leading zeros within a group may be omitted, and exactly one run of consecutive all-zero groups may be collapsed to a double colon.
So 2001:0db8:0000:0000:0000:ff00:0042:8329 may be written
2001:db8::ff00:42:8329. The double colon is permitted only once in an address,
because two of them would leave no way to tell how many zero groups each one stood for.
The prefix length works exactly as it does in IPv4 CIDR notation. A /64 is the standard
size for a single network segment, and it is not a small allocation: it contains 18 quintillion addresses,
which is why stateless autoconfiguration can simply derive an address without any risk of collision.
Home connections are typically delegated a /56 or a
/48, giving hundreds or thousands of separate /64 segments.
Autoconfiguration replaces DHCP for most devices
In IPv4, a device asks a DHCP server for an address and is given one from a pool. IPv6 devices normally use stateless address autoconfiguration instead: the router advertises the network prefix, and each device generates its own host portion and checks that nothing else is using it. No server tracks the assignment, which is possible only because the address space is large enough that random selection essentially never collides.
Privacy addresses, and why yours keeps changing
Early IPv6 derived the host portion from the network interface’s hardware address. That produced a stable, globally unique identifier that followed a laptop from home to office to café — a tracking identifier by accident, and a serious one.
Privacy extensions fixed it. Modern operating systems generate a random temporary address for outbound connections and rotate it, typically once a day, keeping a stable address available for inbound connections. The practical consequence is that the IPv6 address a site sees for you today will usually differ from the one it saw last week, even though nothing about your connection changed. That is working as intended.
Dual stack and Happy Eyeballs
Almost nobody runs one protocol exclusively. The normal arrangement is dual stack: both protocols configured on the same connection, with the operating system choosing between them per destination. When a name resolves to both an A record and an AAAA record, the client has to pick.
Browsers implement an algorithm known as Happy Eyeballs for exactly this. Rather than committing to IPv6 and waiting for a timeout if it is broken, the browser starts an IPv6 connection, gives it a short head start measured in tens of milliseconds, then starts an IPv4 connection in parallel and uses whichever completes first. The result is that a badly deployed IPv6 path degrades to a barely perceptible delay rather than to a failure — which is a large part of why IPv6 could be rolled out at all.
What NAT costs, and what removing it changes
Address translation was a workaround that became permanent. It works well enough that most people never think about it, but it has real costs: inbound connections need explicit port forwarding, peer-to-peer protocols need elaborate hole-punching, every connection consumes an entry in a shared state table, and logs on the far side cannot distinguish devices behind one address.
Carrier-grade NAT makes all of that worse by putting many customers behind a single address. Port forwarding becomes impossible, one abusive customer can get an address blocked for everybody sharing it, and geolocation becomes less accurate. IPv6 removes the need for any of it, which is the most concrete day-to-day benefit of having it.
Checking what you actually have
The reliable test is not what your settings claim but what an outside server observes. A probe that can only be reached over IPv4 and a second that can only be reached over IPv6 will each answer only if that protocol genuinely works end to end — which is the difference between IPv6 being configured and IPv6 being functional.
A common and confusing state is having an IPv6 address assigned locally while having no working IPv6 route to the internet. Your device reports an address, your settings look correct, and every IPv6-only destination times out. Testing against a real external endpoint is the only way to tell the difference.
Frequently asked questions
Do I need IPv6?
Not to browse the web — every IPv6-only service worth reaching is also available over IPv4 through some form of translation, and will be for years. But having it is better than not: it removes a layer of address translation between you and the sites that support it, which measurably improves connection setup for large services, and it is the only path that does not depend on an increasingly strained supply of IPv4 addresses. If your provider offers it, there is no reason to turn it off.
Why does my IPv6 address change so often?
By design. Privacy extensions, defined in RFC 4941 and enabled by default on most operating systems, generate a temporary address for outbound connections and rotate it regularly — often daily. This exists precisely because an address derived from your hardware would follow you between networks and act as a tracking identifier. Your stable address still exists for inbound connections; the changing one is what sites see.
Is IPv6 faster than IPv4?
Not intrinsically — the protocols move bits at the same speed. What often makes IPv6 feel faster in practice is the absence of carrier-grade NAT in the path, which removes a translation step and a shared state table from every connection. Where an ISP has deployed IPv6 well, connection setup to large IPv6-enabled services is frequently a little quicker. Where it has been bolted on badly, it can be slower, which is why browsers implement Happy Eyeballs to race both and use whichever answers first.
Why are IPv6 addresses written with so many colons?
Because 128 bits do not fit comfortably in decimal. The address is written as eight groups of four hexadecimal digits separated by colons, and two rules shorten it: leading zeros in a group may be dropped, and one run of all-zero groups may be replaced by a double colon. So 2001:0db8:0000:0000:0000:0000:0000:0001 becomes 2001:db8::1. The double colon may appear only once, otherwise the length would be ambiguous.
Can an IPv4-only device reach an IPv6-only site?
Only through a translator, and one has to exist in the path. Mechanisms such as NAT64 and DNS64 make this work and are widely deployed on mobile networks — many phones today are IPv6-only internally and reach IPv4 services through the carrier’s translator. There is no direct interoperability between the two protocols; they are separate address families that happen to share the same wires.
Does having IPv6 mean I no longer need IPv4?
Not yet. A substantial share of the internet is still IPv4-only, and a connection with no IPv4 path at all would fail to reach it without translation. In practice almost everyone runs dual stack: both protocols configured, with the browser preferring IPv6 when both are available and falling back cleanly when they are not.
Try it yourself
Everything above is easier to follow against a real answer.
- IPv4 Checker Check your IPv4 address and confirm whether IPv4 connectivity works.
- IPv6 Checker Test whether your connection supports IPv6 and see your IPv6 address.
- Subnet Calculator Calculate network, broadcast, usable range and masks for IPv4 and IPv6 CIDR.
- IP Lookup Look up geolocation, ISP and ASN details for any public IP address.