Skip to main content

IPv6

Internet Protocol version 6

Updated 3 min read

Share this page

Send the link, quote the definition with a link back, or show it as a card on your own site.

https://softwaredictionary.org/terms/ipv6

In short

IPv6 is the newest version of the Internet Protocol, using 128-bit addresses that give every device a unique address and replace the exhausted IPv4 pool.

What is IPv6?

IPv6 (Internet Protocol version 6) is the successor to IPv4, the protocol that gives devices addresses and routes packets across the internet. Its biggest change is address size: IPv4 addresses are 32 bits long, which allows about 4.3 billion addresses, while IPv6 addresses are 128 bits long, which allows about 340 undecillion, a 39-digit number. IPv6 was created because the world ran out of new IPv4 addresses, and today a large and growing share of internet traffic uses it.

An IPv6 address is written as eight groups of four hexadecimal digits separated by colons, such as 2001:0db8:0000:0000:0000:0000:0000:0001. Leading zeros in each group can be dropped, and one run of all-zero groups can be replaced with ::, so that address shortens to 2001:db8::1. Devices can configure their own addresses with SLAAC (stateless address autoconfiguration), using a network prefix announced by the router, or receive them from DHCPv6. IPv6 also replaces ARP with the Neighbor Discovery Protocol and drops broadcast in favor of multicast.

Moving from IPv4 to IPv6 is like a phone system switching from short numbers to much longer ones: old phones can't simply dial the new numbers, so both systems run side by side for years. Most networks today are dual-stack, meaning devices have both an IPv4 and an IPv6 address and prefer IPv6 when both ends support it. Because addresses are plentiful, every device can have a globally unique address, which removes the main reason for NAT and makes direct device-to-device connections simpler. Mobile networks and large cloud platforms are among the heaviest IPv6 users.

A common misconception is that IPv6 is just IPv4 with longer addresses and that the two work together automatically. They are separate protocols, so an IPv4-only device can't talk directly to an IPv6-only one without a translation mechanism such as NAT64. Another is that, without NAT, IPv6 devices are exposed to the whole internet; in practice routers run a firewall that blocks unsolicited incoming traffic, which is the protection NAT only gave as a side effect. In URLs, IPv6 addresses go in square brackets, as in http://[2001:db8::1]:8080/, so their colons don't clash with the port number.

Key takeaways

  • IPv6 uses 128-bit addresses, compared with 32 bits in IPv4.
  • Addresses are written in hexadecimal groups, and :: shortens one run of zero groups, as in 2001:db8::1.
  • Devices can configure their own addresses with SLAAC or get them from DHCPv6.
  • IPv4 and IPv6 are separate protocols, so most networks run both side by side (dual-stack).
  • IPv6 largely removes the need for NAT, but a firewall is still needed.

Example

Working with IPv6 addresses in Pythonpython
import ipaddress

addr = ipaddress.ip_address("2001:0db8:0000:0000:0000:0000:0000:0001")
print(addr)           # 2001:db8::1 (the compressed form)
print(addr.exploded)  # 2001:0db8:0000:0000:0000:0000:0000:0001
print(addr.version)   # 6

# A typical IPv6 subnet is a /64: 2^64 addresses for a single network
net = ipaddress.ip_network("2001:db8:abcd:12::/64")
print(net.num_addresses)  # 18446744073709551616
print(ipaddress.ip_address("2001:db8:abcd:12::42") in net)  # True

Readers ask

What is the difference between IPv4 and IPv6?

IPv4 uses 32-bit addresses written in decimal, like 192.168.1.10, while IPv6 uses 128-bit addresses written in hexadecimal, like 2001:db8::1. IPv6 has vastly more addresses, built-in autoconfiguration, and no broadcast, and the two are separate protocols that usually run side by side.

Why hasn't IPv6 fully replaced IPv4?

IPv4 still works for most users thanks to NAT, and every device, application, and network along a path must support IPv6 before IPv4 can be switched off. So networks run both protocols at once, a setup called dual-stack, while the transition continues.

What does :: mean in an IPv6 address?

It stands for one run of consecutive all-zero groups, so 2001:db8::1 means 2001:db8:0:0:0:0:0:1. It may appear only once in an address, because otherwise the address would be ambiguous.

Often compared

See also

Spotted a mistake or something missing on this page?Suggest an edit

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings