IPv6 — Scaling The Internet Beyond Billions

Vincent T.
High-Definition Pro
6 min readJul 22, 2019

Every day, new devices are connecting to the Internet. Whether it is a new smartphone or IoT device for home and business, they all require what is called an IP address to connect to the Internet. The Internet uses what are called protocols to establish communications across all devices. The IP address is assigned to the device by the provider (e.g. telecom, ISP, business office, home Wi-Fi router, etc.), and this is used to identify the device on the network. Without an addressing scheme in place, it would not be possible to truly connect two devices together.

An analogy of this would be the postal system. Before you can send a package for delivery, you must specify the address of the recipient and you also need to provide your address as the sender. The address specifies where you want to send the package and where it came from. The mailman then gets the package at the post office and will deliver that package on their next route. Likewise, the Internet needs to have devices that are assigned an address in order to be able to know the source and destination of a data packet.

IP Version 4

Regulatory committees and professional organizations like the IANA (Internet Assigned Numbers Authority) and IETF (Internet Engineering Task Force) got involved in the development of standards to govern how dissimilar systems will communicate on the Internet. The IP address was originally set to 32-bit addresses by the use of a de facto protocol called TCP/IP (Transmission Control Protocol/Internet Protocol). This scheme was originally described by the IETF in RFC 791. This is where we get the IP address from. Currently we use IP version 4 or IPv4 on most Internet connected devices.

An IPv4 address has the following structure:

x.x.x.x -> 172.217.24.78 (example of an IPv4 address)

It consists of 4 parts (separated by periods) called octets. It is called an octet because each part of the address is an 8-bit number. In total, the IP address has 4 parts x 8 bits = 32 bits.

Now binary is the language of computers. When we want to know how many 32 bit addresses we can have, we turn to binary notation once again. That means we have 2 bits (binary can have only 2 states represented by a digital bit of 0 or 1) raised to 32 or 2³². It is a too long to write down, so let me just give the answer 2³² = 4,294,967,296. That is the total number of addresses you can assign for the Internet. We are quickly running out, so a scheme was made to make two types of IP addresses, public and private. I won’t go to any further explaining about IP addressing, please read up more on that here.

IP addresses can either be public (Internet valid routable) or private (non-Internet valid requiring routing). The reason has to do with routing data packets. A public IP address is routable on the Internet and is used by devices that are directly connected to the network. These are routers, gateways, public web servers and firewalls which are infrastructure related devices that provide the backbone to the Internet. Private addresses are non-routable to the Internet and would require a backbone connected device to connect to the Internet. Personal computers and other devices (e.g. tablets, smartphones etc.) can connect to Internet using a router. As a result of this public IP addresses are more scarce thereby more expensive for regular users. It is more suitable for enterprise and commercial providers who run backbone networks.

Since the Internet has grown exponentially, the amount of IP addresses were quickly being consumed. In fact if you take into account the total number of devices throughout the world, there is not enough IP addresses to go around. That is why the vast majority of devices use a non-routable private IP address. They connect to the Internet using a backbone of sorts that routes their data packets across the Internet. One way around this problem was through the use of classless IP addressing. This allowed the use of non-traditional IP addresses (also called classful IP addresses) to make room for more devices called hosts on the network.

CIDR

An implementation of classless IP addressing commonly used is called CIDR (Classless Inter-Domain Routing). To be able to assign more IP addresses to hosts by using private IP addresses instead of the more scarce public IP address, subnets were created. Subnets allow network engineers to borrow bits from the host section of an IP address and create more networks. You can learn more about this process in this article link about subnetting. By creating more networks you are also allowing more devices to connect to the Internet.

Let’s say for example you have 1 network that can only support 254 hosts or devices. If you were to divide it into subnets, to let us say 4 additional networks with 254 hosts each, then you effectively have 1,016 IP addresses for your devices available. All these devices are behind a firewall which uses a public IP address that communicates over the Internet. All data packets are routed through the firewall’s public IP address.

NAT

The use of techniques like NAT (Network Address Translation) and proxy gateways also allow for more devices to be connected. This is because you only need to assign the IP address to the host directly connected to the Internet while the devices without a routable IP address can connect to it. For example, a home user’s laptop doesn’t require an actual public IP address. Instead the user has a Wi-Fi router that uses a public IP address (could also be private in some cases) assigned by the Internet provider or ISP. The Wi-Fi router assigns a private IP address to the laptop. This means that all packets between the laptop and the Internet is routed by the ISP through the Wi-Fi router.

The use of these techniques still cannot address the scaling issue for the Internet. In the next few decades more and more devices will need connections. You cannot continue to stress the current infrastructure to allow backbone devices to handle more loads. New backbone routers and gateways need to be added to manage the load. This is why a new addressing scheme called IP version 6 or IPv6 was introduced by the IETF in RFC 4291.

IP Version 6

The main reason for IPv6 is that it can scale the Internet beyond billions of connected devices. This is because the IPv6 addressing structure uses 128 bits instead of 32 bits. If we take that into binary notation, that is 2¹²⁸ or 2 raised to the power of 128. This is much longer to write down so I will just give the answer to the 2¹²⁸ = 3.403×10³⁸. Now that is more addresses for the foreseeable future, but it is much more complex than current IPv4. Take for example how a typical IPv6 address looks like:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

The IPv6 address structure is divided into 8 parts called groups rather than 4 parts in IPv4. Each part in an IPv6 address consists of hexadecimal numbers while IPv4 uses decimal numbers. Each group is referred to as a hextet and is 16 bits in length. Thus the total length of an IPv6 address is 8 groups x 16 bits = 128 bits. A more comprehensive explanation of IPv6 can be found here.

Synopsis

Most all devices can now connect directly to the Internet. Examples are autonomous vehicles or self-driving cars, tracking systems, home monitoring systems and a vast array of sensors used in IoT devices. After IPv4 addresses are exhausted, IPv6 will become much more common.

Right now it is a mix of IPv4 and IPv6, with IPv4 the majority of existing IP addresses. Some devices even use both an IPv4 and IPv6 address space depending on whether the provider supports it. You can find out if you have an IPv6 address by typing the URL https://whatismyip.com in your browser. Now that IPv6 is in place, scaling the Internet becomes possible.

--

--

Vincent T.
High-Definition Pro

Blockchain, AI, DevOps, Cybersecurity, Software Development, Engineering, Photography, Technology