What Is the Difference Between IPv4 and IPv6?
As a web developer or website owner it is always good to stay informed about how changing protocols, such as IPv4, IPv6, and even HTTP/2 affect us. IPv4 addresses are pretty much exhausted now which means the world is transitioning to IPv6. This enables the internet to continue to grow and ensure that as many devices as possible can connect to the internet. Today, we want to dive into the difference between IPv4 and IPV6, and also touch on the subject of what happened with IPv5.
What is IPv4?
IPv4 (Internet Protocol Version 4) is a binary number used to identify computers and other devices on a TCP/IP network. The first version of it was used in production in 1983 and was defined by the Internet Engineering Task Force (IETF) in RFC 791, an updated version of RFC 760.
IPv4 addresses are 32 bits long and have five classes, named A, B, C, D and E. Classes A, B and C have different bit lengths for addressing the network hosts. Class D addresses are reserved for multicasting, and class E addresses are reserved for future use. IPv4 uses A resource records in DNS to map host names to IPs.
The following is an example of an IPv4 address for www.google.com:
172.16.254.1. The decimal number in each and every set is in the range of 0 to 255. Each and every set is called an octet. So, there are 4 octets in an IP address.
Since there are 4 octets in an IP address, the total possible combination of unique IPv4 address is a little over 4.2 billion. That sounds like a lot, but ever since the mid-1980's, and the boom of the internet, this known limitation has become a problem, as there are almost no more addresses left, except for in the private spaces and under certain circumstance. For example, ARIN's free pool of IPv4 address space was depleted on 24 September 2015. You can see some more actual and projected exhaustion dates below, taken from http://www.potaroo.net/tools/ipv4/ as of 29-Jul-2016.
|RIR||IPv4 projected exhaustion date||IPv4 remaining addresses in RIR pool (/8s)|
|RIPE NCC:||14-Sep-2012 (actual)||0.8652|
|ARIN:||24 Sep-2015 (actual)|
To get one, you now have to go through a whole special process to see if you quality. This is why the IETF created IPv6.
IPv4 ping tests and tools
To ping an IPv4 address you can simply open up the command prompt or terminal and use the following command:
If you are wanting to better measure ping times, you can always utilize KeyCDN's free Ping Test tool, which allows you to ping simultaneously from 14 locations. Ping is a utility used to send out ICMP packets to an address to see how fast the response is (and if one even exists). Ping is important when it comes to website latency as it corresponds with the delay time (in milliseconds) for how long it takes the data to travel across the internet, to its destination address, and then back to you. A faster ping means a more responsive connection.
What is IPv6?
IPv6 (Internet Protocol Version 6) is the latest internet protocol designed to replace IPv4 due to the network shortage of addresses. It was first defined by the Internet Engineering Task Force (IETF) in 1996 in RFC 1883. IPv6 addresses are 128 bits (16 bytes) long, as opposed to 32 bits. With IPv4, there was only about 4.2 billion addresses available, with IPv6 there 2 to the power of 128, which if laid out in numbers ends up looking like this: 340,282,366,920,938,000,000,000,000,000,000,000,000. That is a lot of additional addresses!
IPv6 uses AAAA resource records in DNS to map host names to IPs, instead of A name records and require IPSec support. The following is an example of an IPv6 address for www.google.com:
2607:f8b0:4005:804::200e. Leading zeros can be truncated and this is because IPv6 addresses can be written in compressed, uncompressed and fully uncompressed modes.
It is also interesting to take a look at the IPv6 connectivity among Google users. As you can see it is skyrocketing. According to Google's data, Belgium is leading the pack at over a 45% adoption rate, with the United States coming in second at 29%.
IPv6 ping tests and tools
To ping an IPv6 address, you can simply open up your command prompt or terminal and use the following command.
It might be required to specify the interface with the argument
-I eth0 (replace
eth0 with the appropriate interface).
ping google.com -6
Testing to see if your ISP has IPv6 connectivity yet? There are a couple free tools such as test-ipv6.com and ipv6test.google.com in which you can test your connection. A lot of ISPs have yet to adopt IPv6 as this requires large infrastructure changes.
If you are wanting to better measure ping times, you can always utilize KeyCDN's free IPv6 Ping Test tool that allows you to ping simultaneously from 14 locations. The IPv6 Ping test is very similar to our ping test tool but in this case, it allows you to ping an IPv6 host or IP.
Additional benefits to IPv6
Besides just the number of addresses that are now available with IPv6, there are also a number of additional benefits such as:
- More efficient routing
- Auto-configuration abilities for easier management. (No more DHCP)
- No more NAT (better transparency for every device)
- No more duplicate IP addresses
- IPSEC is built into IPv6
- Better multicast routing
- Simplified header formats
What happened to IPv5?
You never hear about IPv5 and the main reason for that is that it was already being used for something else. Raffi Krikorian over at O'Reilly Media wrote up a great little article on what happened to IPv5. Essentially, a protocol called Internet Stream Protocol was developed in the 1970's for the transmission of voice and video. In 1990, it was revised and became known as ST2. ST2 distinguishes its own packets with an internet protocol version number 5, although it was never officially known as IPv5.
As you can see above, IPv6 allows for many more devices to connect to the internet and will allow us to assign new IPs for many years to come. Hopefully, this post has helped clarify what the difference between IPv4 and IPv6 really is. Rest assured, deploying IPv6 support is on the KeyCDN road map and we will keep you informed once it is up and running. Have anything to add about the difference between IPv4 and IPv6? If so, feel free to add it in the comments below!