Internet Protocol Version 6 (or IPv6) is a successor of IPv4 Address standard developed by IETF, which is designed to solve IPv4 address exhaustion problem. IPv4 uses a 32-bit numbering scheme to represent an IP address, which has an address space of 232 or 4.3 billion. IPv6, on the other hand, uses 128-bit numbering scheme (2128) which has big enough address space for many decades to come. IPv6 is intended to replace the IPv4, but the introduction of CIDR (Classless Inter-Domain Routing) allocation scheme in 1993 within the IPv4 prolonged lifespan of IPv4 Addresses. With an anticipation of smartphones, tablets, smart appliances and other electronic devices joining Internet every day, IPv4 address space will eventually exhaust. As of May 2014 per Google Statistics, 96% of Internet traffic is IPv4 and only 4% is represented by IPv6. IPv4 and IPv6 are not interoperable by design, so the transition from IPv4 to IPv6 require "transition mechanism" such as Stateless IP/ICMP Translation, Transport Relay, 6rd and other IPv6 transition mechanisms to make them interoperable.
IPv6 Address Types
IPv6 addresses are classified into three categories: unicast, anycast and multicast addressing.
- Unicast Address - An unicast IP address is an identifier for a single network interface. An IPv6 packet sent to an unicast address is delivered to a single interface.
- Anycast Address - An anycast IP address is identifier for a set of interfaces assigned to a group but belonging to different nodes. An IPv6 packet sent to an anycast address is delivered to a single node closest to the sender identified by the routing algorithm.
- Multicast Address - A multicast IP address is identifier for a set of interfaces that may belong to differentn nodes. An IPv6 packet sent to a multicast address is delivered to all interfaces identified by the multicast address.
Unlike IPv4 addressing scheme, the IPv6 addressing scheme does not implement broadcast address. Instead, IPv6 implements multicast address to send packets to a group of nodes and avoids distributing to every nodes in the network. IPv6 also has a scope, which specifies which part of the network it's address is valid and unique.
Decimals with Colons
The IPv6 addresses are comprised of 128-bits (or 8 groups of 4 hexadecimal digits separated by colons), with possibility of omitting zeros to abbreviate the full address. An example of IPv6 address may look like 2001:0db8:0012:0001:3c5e:7354:0000:5db1. For convenience, an IPv6 address can be represented in shorter notation by omitting leading zeros. The example address above can be also be represented as 2001:db8:12:1:3c5e:7354:0:5db1.
When abbreviating IPv6 address, the following rules apply:
- One or more leading zeros in any group of 8 hexadecimal digits can be removed. For example, 0012 can be written 12 and 0000 can be converted to 0. (see example above).
- Consecutive group of zeros are replaced with a double colon ::. The loopback address, 0000:0000:0000:0000:0000:0000:0000:0001 can be abbreviated to ::1.
What are the differences between IPv4 and IPv6?
The IPv4 and IPv6 share a similar architecture, and they will coexist until IPv6 completely replaces the IPv4.
- IPv4 is represented by 32-bit number, and IPv6 is represented by 128-bit number. This translates to 4.3 billion address space for IPv4 and 340 trillion address space for IPv6.
- IPv4 is separated by 4 groups of 2 hexadecimal digits by a dot, whereas IPV6 is separated by 8 groups of 4 hexadecimal digits by a colon.
Why is IPv6 matter?
With an explosive demand for smartphones, tablets and computers, more IP addresses are needed than IPv4 can support. There are over 7 billion people in the world with phones, tablets and computers each requiring an IP address. The IPv4 has an address space of 4.3 billion, which will soon exhaust. The transition from IPv4 to IPv6 is necessary, and they will coexist as they are not interoperable.
The users will not likely notice the difference or even notice it. With over 95% of IP addresses being IPv4, it will be quite some time before we'll see all devices communicating via IPv6.