Address Space

One of the problems faced by the designers of the Internet was the ability for computers to find one another. If a global network of computers were to function in a decentralized way, there needed to be a way for any computer to send information to any other. An address scheme was created in the late 1970s called Internet Protocol. With this system, each computer on the Internet is given a unique address, called an IP address. This address is a 32 bit number, divided into four octets. Each octet narrows the location further, allowing traffic to be efficiently routed between any two computers.
Usually, the octets are written as a sequence of four numbers, each ranging from 0-255. For example, 134.53.7.10 was the server at Miami where Mrs. Schinker and I met. Our web server at school is 208.108.152.49. Theoretically, there are about 4 billion of these addresses, making it possible for the Internet to route traffic among 4 billion computers.

In 1983, when this system first started seeing wide adoption, this was plenty. There were about two million computers in the United States, and almost none of them were connected to this network. At that time, there were about 4 billion people on the planet. The idea that every person on earth would have a computer on this network was inconceivable.

These days, of course, that 4 billion number is looking smaller and smaller. With more cell phones on the planet than people, some estimates indicate that there are as many as 9 billion devices online now. We exhausted that 4 billion address space a long time ago. The thing that has kept the Internet from grinding to a halt for the last decade is a workaround called “network address translation” (NAT). If you compare an IP address to the street addresses we’re all familiar with, then NAT is like assigning apartment numbers. In this online city, though, almost every building is a high-rise apartment.

Take, for example, my school district. We have about 6,000 devices in our schools, almost all of which are connected to the Internet. But because we use NAT, every computer appears to use the same IP address, 208.108.152.6. So, from the Internet’s perspective, it just treats our whole school district as one computer. That’s how we can get 9 billion devices with only 4 billion addresses. But that only goes so far. At some point, we are going to need more addresses.

The smart people who keep the Internet working saw this problem coming twenty years ago. They created a new address scheme, called IPv6, which uses 128 bits instead of 32. That means there are 340 undecillion possible addresses. That’s 3.4 x 10^38 addresses.

The bad news is that much of the current Internet still doesn’t support IPV6. Android devices have a lot of problems. Mac OSX 10.7 – 10.10 tries not to use it. Windows didn’t support it until Vista. Cisco switches didn’t support it until version 15. Hardware manufacturers were slow to adopt it because nobody was using it. Nobody was using it because, well, no devices supported it.

But the time has come. With no more old addresses available, we have to transition. It’s going to be painful and expensive. It’s going to take a lot of time. Hopefully, most people won’t even notice.

8972110324_d45f2ac80b_z

The good news is that we will only ever have to do this once. The new system has plenty of addresses. 340 undecillion is a really big number. It’s enough to give everyone on the planet their own private Internet without even scratching the surface. It’s enough for every grain of sand on earth to have as many addresses are there are grains of sand on the earth. If the old address scheme supported an Internet the size of a golf ball, the new one would be the size of the sun. If every atom on the surface of the Earth had an address, there would be enough left over for 100 more planets. I think you get the point. There are lots of addresses.

I can’t imagine a world where we could ever possibly use that many. Just like they couldn’t in 1983.

Photo credit: Penn State University

 

Advertisements

Author: John Schinker

What else do you want to know?