All articles

IPv4 vs IPv6: differences explained simply

IPv4 is running out of addresses. IPv6 has practically unlimited supply. Here's what the difference means for you, your privacy, and how the internet works.

April 25, 20266 min read

If you've ever looked at your IP address, you've probably seen one of two formats:

192.0.2.146                    ← IPv4
2001:0db8:85a3::8a2e:0370:7334 ← IPv6

The short version: IPv4 is the old internet addressing system, IPv6 is the new one. Both are running side-by-side. Most users have both right now and never have to think about it.

But the differences matter — for privacy, for performance, and for understanding what your "IP" actually is.

Why we needed IPv6

IPv4 was designed in 1981. At the time, four billion possible addresses (2^32) seemed like absurd overkill — enough for every person on Earth. But by the 2000s, with billions of phones, computers, IoT devices, and cloud servers, the address pool was almost gone.

Engineers patched around the shortage with NAT (Network Address Translation) — letting many devices share one public IP behind a router. Useful, but it added complexity, broke peer-to-peer apps, and pushed the problem down the road.

The real fix is IPv6, which uses 128 bits instead of 32. That gives you 2^128 addresses — about 340 undecillion (a 340 followed by 36 zeros). Even if every star in the visible universe ran a hundred billion devices, you wouldn't run out.

How they look

FeatureIPv4IPv6
Length32 bits128 bits
Format4 decimal numbers8 groups of 4 hexadecimal characters
Example203.0.113.52001:db8:85a3::8a2e:370:7334
Total addresses~4.3 billion~340 undecillion
Year introduced19811998
Default for home?Yes (most ISPs)Yes alongside IPv4 (most modern ISPs)

IPv6 also allows shorthand: groups of zeros can be collapsed with :: (only once per address), and leading zeros within a group can be dropped. So 2001:0db8:0000:0000:0000:0000:0370:7334 becomes 2001:db8::370:7334.

What's actually different (besides the length)?

No more NAT for home users. With IPv4, your router translates many private addresses (192.168.x.x) to one public address. With IPv6, every device on your network can have its own unique public address. This is great for direct connections (gaming, video calls) and worse for the implicit privacy you got from "hiding" behind NAT.

Built-in IPsec. IPv6 ships with IP-level encryption support. Whether or not it's enabled depends on the network — but the protocol design assumes it.

Auto-configuration. IPv6 devices can self-assign an address by combining the network prefix with their hardware MAC. (Most modern OSes randomize this for privacy — see below.)

Larger packet headers. IPv6 packets carry more overhead per packet, but the protocol cuts out other inefficiencies (like checksum recomputation at every hop), so net throughput is comparable.

Privacy: the address that follows you around

Original IPv6 auto-configuration (called SLAAC with EUI-64) generated your address from your device's MAC address — the unique hardware identifier. That meant the same IPv6 suffix would follow you across networks. A site you visited at home and the same site visited from a coffee shop would see two different prefixes but the same suffix. Tracking goldmine.

Modern operating systems fix this with Privacy Extensions (RFC 4941, then RFC 8981), which generate temporary, randomized suffixes that rotate periodically. Windows, macOS, iOS, and Android all enable this by default today. So in practice, IPv6 isn't worse for privacy than IPv4.

You can verify your address rotates by checking your IP, waiting a few hours, and checking again. If your IPv6 suffix changed but the prefix stayed the same, privacy extensions are working.

Which one are you using?

Most likely: both.

Modern operating systems use Happy Eyeballs — they try the IPv6 connection first, and fall back to IPv4 if it's slow or fails. The exact address used depends on the destination server's support and your network's quality.

Look at the homepage of showmyipaddress.io to see which one is showing up. If you see colons, it's IPv6. If you see dots, it's IPv4.

You can force one or the other for testing:

# Force IPv4
curl -4 ifconfig.me

# Force IPv6
curl -6 ifconfig.me

Compatibility — when IPv4 and IPv6 can't talk

IPv4 and IPv6 are not directly compatible. An IPv6-only host can't talk to an IPv4-only host without a translator. This is why most networks today are dual-stack — they support both at once.

Carriers and large ISPs use CGNAT (Carrier-Grade NAT) to keep IPv4 alive, sharing one public IPv4 address among hundreds of subscribers. This works for browsing but breaks peer-to-peer apps unless they use IPv6 or relay through a server.

Should you care?

For day-to-day use, no. The internet hides this from you. Both protocols work; both are fast.

You should care if you're:

  • Running a server — IPv6 lets you skip CGNAT issues and accept inbound connections directly.
  • Diagnosing a connectivity problem — sometimes IPv6 is the issue. Disabling it temporarily on your device can isolate the problem.
  • Hiding your IP via VPN — make sure your VPN tunnels IPv6 too, or your IPv6 traffic may bypass it. (Run a WebRTC leak test to confirm.)
  • Tracking your traffic by IP — IPv6 prefixes are more stable; suffixes (with privacy extensions) rotate. Plan accordingly.

The transition is taking forever, and that's fine

IPv6 was designed in 1998. Twenty-eight years later, it carries roughly 45–50% of internet traffic globally. Adoption is steady — Google's measurements show it grew from under 1% in 2012 to nearly half of their queries today. The internet rolls forward slowly, and you've been quietly using IPv6 for years without noticing.

That's the goal of good infrastructure: invisible.