Any computer or device that wants to communicate with the Internet Protocol needs an IP address to uniquely identify the device.

And some devices could have multiple IP addresses. There needs to be at least one IP address for each network card or interface that the computer or device uses to connect. For example, you could have a single computer with three network cards, two wired, and one wireless. Each one of these would need at least one IP address and could have more.

This episode will explain two types of IP addresses, version 4 and version 6. I’m not sure what happened to versions 1, 2, 3, or 5. Version 4 has been in use since the beginning of the internet and version 6 is struggling to gain acceptance. Normally, version 4 is called IPv4 and version 6 is called IPv6. We’re going to have to all move to version 6 eventually just because we’re running out of version 4 addresses.

The biggest problem with IPv4 addresses is there are so few of them. You might think that 4 billion addresses are a lot and that’s just what the early designers thought too. That’s just not enough for every computer in the world to have it’s own address though.

We’ve managed to stretch IPv4 addresses a lot over the years. While researching this episode, I checked on the current state of IP addresses remaining that haven’t been assigned yet. You might still be able to get some IPv4 addresses in Africa but the rest of the world is already out of luck.

We no longer divide addresses into class A, B, or C ranges because the size differences between the ranges is just too much that it led to a lot of addresses being wasted. Imagine it like this. Let’s say that the grocery store only sells eggs in containers of ten, a hundred, or a thousand eggs. If you need to make an omelet with 15 eggs and can only purchase one container, then you have no choice but to buy a hundred. Maybe you can use the other 85 eggs but you’ll probably waste a few.

Another method that’s been used very well to extend addresses has been to stop assigning public IP addresses to each computer in a company or in your home. It’s these public IP addresses that we’re running out of. It’s more common for a computer to look for a service called the Dynamic Host Configuration Protocol or DHCP for short. This is a service that can run on a router or even on a dedicated computer. When your computer joins a network, then it can look for this service and ask it for an IP address. This address is temporary and can change if the computer is restarted.

Listen to the full episode for more ways that we’ve managed to extend the usefulness of IPv4 and how IPv6 can help. You can also read the full transcript below.

Transcript

And some devices could have multiple IP addresses. There needs to be at least one IP address for each network card or interface that the computer or device uses to connect. For example, you could have a single computer with three network cards, two wired, and one wireless. Each one of these would need at least one IP address and could have more.

This episode will start tying together various distributed computing concepts that I’ve been explaining over the last several previous episodes. If you want the best chance to understand what all this means, make sure that you listen to episodes 155, 156, and 157. I’ll need at least another future episode to finish and maybe more.

This episode will explain two types of IP addresses, version 4 and version 6. I’m not sure what happened to versions 1, 2, 3, or 5. Version 4 has been in use since the beginning of the internet and version 6 is struggling to gain acceptance. Normally, version 4 is called IPv4 and version 6 is called IPv6. We’re going to have to all move to version 6 eventually just because we’re running out of version 4 addresses.

I’m getting a bit ahead of myself though. Let me start with the basics of IPv4.

◦ These are 32 bit addresses consisting of 4 groups of 8 bit numbers separated by dots. Each group is written in base 10 and can go from 0 up to 255. Listen to episode 3 for more information about how 8 bits can count up to 255.
◦ This gives an address range of 0.0.0.0 up to 255.255.255.255. All four groups must be specified even if they are zero.

IPv4 addresses are not all available to be used. Some are reserved for special use. And of the ones that are available, you can’t just pick one and start using it. I’ll just mention one very special address here:

◦ 127.0.0.1 is called the loopback or sometimes home. Any connection made to this address just connects back to the same computer. It’s sort of like talking to yourself. I sometimes see t-shirts that say, “There’s no place like 127.0.0.1” Hopefully, you’ll understand the joke now.

The reason you can’t just pick an address is because there are ranges that have been assigned to companies and people. I won’t go into all the details with all the ranges. for now, just remember that the ranges are called subnets and are managed by an organization called the Internet Assigned Numbers Authority or IANA for short along with several regional authorities around the world.

The biggest problem with IPv4 addresses is there are so few of them. You might think that 4 billion addresses are a lot and that’s just what the early designers thought too. That’s just not enough for every computer in the world to have it’s own address though.

We’ve managed to stretch IPv4 addresses a lot over the years. While researching this episode, I checked on the current state of IP addresses remaining that haven’t been assigned yet. You might still be able to get some IPv4 addresses in Africa but the rest of the world is already out of luck.

The last time I had to personally apply for a range of IP addresses, I was helping a friend apply for a block of 256 addresses. They were getting rare back then when 256 addresses was called a class C range and companies already had to show a definite need or the application would be rejected. And that was almost 20 years ago.

We no longer divide addresses into class A, B, or C ranges because the size differences between the ranges is just too much that it led to a lot of addresses being wasted. Imagine it like this. Let’s say that the grocery store only sells eggs in containers of ten, a hundred, or a thousand eggs. If you need to make an omelet with 15 eggs and can only purchase one container, then you have no choice but to buy a hundred. Maybe you can use the other 85 eggs but you’ll probably waste a few.

Another method that’s been used very well to extend addresses has been to stop assigning public IP addresses to each computer in a company or in your home. It’s these public IP addresses that we’re running out of. It’s more common for a computer to look for a service called the Dynamic Host Configuration Protocol or DHCP for short. This is a service that can run on a router or even on a dedicated computer. When your computer joins a network, then it can look for this service and ask it for an IP address. This address is temporary and can change if the computer is restarted.

This address can also be private and that means it can be repeated on different networks as long as they aren’t exposed directly to the internet. You might wonder, “How can that be? I have an internet connection.” Well, what happens is that your router or cable modem or whatever device you use to connect to the internet may have a public IP address and it translates between it’s address and all the private addresses of the devices connected to it. This way, a single family home with several laptops, a couple desktop computers, a wireless printer, some wireless security cameras, a wireless thermostat, a couple iPads, and several smart phones can all access the internet using private IP addresses for each of the devices while only a single public IP address is needed for the whole family.

I also remember a long time ago when each website needed it’s own IP address. Sure, you could have a single server computer that was responsible for multiple websites but the only way for the server to know which website a visitor was interested in was based on the IP address. As of HTTP version 1.1 released in about 1997 though, any request contains a hostname. A web server can use just one public IP address now and still know which website is being requested by examining the requested hostname.

Imagine if every website in the Internet, and every computer, and practically every other wireless device needed a unique address so it could be found on the internet. The number of things that want to join the Internet these days is far beyond what the original designers imagined and is a lot more than 4 billion. It’s just going to keep expanding too. We need a way to address all this growth without resorting to tricks.

And that’s the reason the new IPv6 was created.

◦ These are 128 bit addresses consisting of 8 groups of 16 bit numbers separated by colons. Each group is written in hexadecimal and can go from 0000 up to ffff. Multiple groups of all zeros can be left out by writing a double colon. Listen to episode 50 for more information about hexadecimal numbers.

IPv6 still supports private address, loopback, reserved, and assigned addresses. The main difference is that we should finally have enough addresses available. And now that we’ve run out of IPv4 addresses, there should be a bigger incentive to upgrade networks and devices to support the new standard.

Feedback

What's on your mind?
On a scale of 0 to 10, how likely are you to refer us to friends?