IPv4 and its successor IPv6 are crucial for internet connectivity. Here’s what you need to know about how these invisible networking protocols get you online.
The massive number of connected devices in the world need to first be able to communicate with each other before you can connect to the internet.
This is further complicated because connected devices tend to have different firmware versions, various operating systems, and other personalised tweaks that make direct communication between them challenging.
Internet Protocol (IP) addresses help to unify connected devices. Specifically IPv4 and IPv6.
IP addresses are ‘written’ in a numerical language that lets devices communicate with each other and with online servers to ensure the right information gets sent and received between the right places.
Currently, Internet Protocol version 4 (IPv4) is dominant, but it’s slowly being superseded by its replacement, Internet Protocol version 6 (IPv6).
Let’s explore the history and the differences between these two IP versions, and why we needed to start leaving IPv4 behind.
The birth of Internet Protocol was theorised back in 1974.
IPv0 through to IPv3 were treated as experimental versions during IP development between 1977 and 1979.
IPv4 was worked on as early as 1978, before becoming the accepted networking standard in 1981. IPv4 would go on to create the basis of device (and online) connectivity that’s still used today, only receiving minor revisions since its inception.
After IPv4, IPv5 was designed as a private experimental streaming system.
Much more recently, IPv6 entered the scene, intent on replacing IPv4 as the dominant IP version on the planet, but it has a long way to go yet.
In basic terms, an IP address, regardless of the version number, follows a set of rules that dictate how data packets should be exchanged between local and external networks.
To get online, IP works together with the Transmission Control Protocol (TCP) to facilitate what is unsurprisingly called ‘TCP/IP’ networking.
TCP/IP establishes a temporary connection (as long as it’s required) between your client device and a server, so they can exchange data.
This helps bridge home networks with external networks, such as the internet.
An IPv4 address uses a group of four numbers, each of which ranges between 0 and 255, separated by dots.
IPv4 uses a 32-bit addressing system that has an allocation of around 4.29 billion possible IP addresses.
That might sound like a lot, but that 4.29 billion address allocation was exhausted in 2011, thanks the rate at which the number of connected devices is expanding.
To help manage the comparatively limited number of possible IPv4 addresses, two solutions were implemented: Network Address Translation (NAT) and IPv6.
NAT is effectively a necessary stopgap that bridges IP addresses between local (private) and external (public) ones. Basically, it lets devices on your home network communicate with the internet.
An analogy for IP addresses vs NAT could be that the IP address is a lot like the street address written on envelope when sending a letter, with the recipient on the front and the sender on the back.
While there’s no direct link between sender and recipient, the address on the front of the envelope tells the postal service which address to deliver it to, and the recipient can reply using the address on the back of the envelope.
NAT can be thought of as the actual names of the people on the front and back of the letter. Your specific device, such as a smartphone or laptop, can be thought of as the person to whom each name belongs. Where the address will take it to the house, it is the ricipient's name (NAT) which will ensure that whoever’s job it is to fetch the mail (in this analogy the modem/router fetches the mail) will deliver the letter to the correct person (device).
The sender's own name included on the back, along with their address, will ensure that a return letter will, in kind, make its way directly to them and not another member of their household.
NAT numbers do not have to be unique outside of a specific home network, the same way a name does not. If you send a letter to a specific address with the name “Wendy” on it, it’s unlikely that the Wendy living across the street will think it is for her.
However, the street (or IP) address does have to be unique, or your letter might be delivered somewhere else entirely. This is where IPv4 began to ran in to problems.
IPv6 (also called ‘IP next generation’, or IPng) was created out of the concern that demand for IPv4 addresses would exceed availability, especially when internet usage spiked with the introduction of mobile connected devices like smartphones.
The most obvious benefit of IPv6 is that it supports up to 340 trillion, trillion, trillion addresses. That’s 340 with 36 zeroes on the end!
To accommodate the significantly-higher number of addresses, IPv6 uses longer IP addresses than IPv4, with eight groups of four hexadecimal digits, separated by colons. This is as opposed to IPv4’s four numbers, ranging from zero to 255, separated by dots.
Despite the longer IPv6 addresses, the newer networking protocol simplifies address assignment (for computers) and provides additional security features.
This extreme future-proofing against the IPv4 address limitations means that every current household could foreseeably have trillions of connected devices, each with their own individual IP addresses, and there would still be plenty of IPv6 addresses to spare, without the need for NAT.
The shift from IPv4 to IPv6 has been slowly happening over the last decade or so.
For instance, the IPv6 spec was released at the end of 1998, yet almost 20 years later IPv6 has a reportedly 43.8 per cent adoption in Australia (as of March 2017), while IPv4 still dominates with 98.8 per cent.
In 2014, 99 per cent of connected devices were still using IPv4. That’s an only 0.2 per cent drop in around three years – a lifetime in the tech industry.
While IPv6 is the planned future upgrade path for IPv4, and has been for some time, there’s likely still a long road ahead before IPv6 becomes as commonplace as IPv4, let alone supplants it.