Jan. 27th, 2011

cdybedahl: (Default)
In the coming few weeks, we'll very likely see a lot of more or less informed news reporting about IPv4 and IPv6. A few has already appeared here and there, and mostly they've been of the "less informed" kind. So I thought I'd try to sort things out for those reading here who aren't intimate with the details of TCP/IP.

Let's start at the beginning. "IP" in this context stands for "Internet Protocol". IPv4 stands for "Internet Protocol version 4", and IPv6 logically enough for "Internet Protocol version 6" (version 5 was a failed experiment, and never used in the real world). As the name hints, IP is the language that computers use when they talk to other computers over the Internet. And as is usual for languages, only those who speak the same language can understand each other. Since the 1980s, IPv4 has been the language used by everybody. It still is. But it can't be for very much longer. Thus the news thing.

So why can't it, you ask? The reason you may have seen in other places is that IPv4 is running out of addresses. Which is correct, but if you don't know how this stuff works it probably sounds weird. If we need more addresses, why don't we just add more of them? The answer is that we do -- but in doing so we have to change the language a bit, and computers are very literal and picky about that sort of thing. So we can't do anything to IPv4, because then it wouldn't be IPv4 any more and all the machines that speak IPv4 wouldn't understand. So we end up with a new, slightly different, language that we call IPv6. And then we try to make everyone learn to speak IPv6.

What does it mean that IPv4 is running out of addresses, anyway?

At the surface, it means exactly what it says on the tin: there's a limited number of addresses, and we've used almost all of them. Why there is a limited number gets down to the bit about computers being very literal-minded and inflexible. The way IP works at a low level, is that when a computer wants to send something over the Internet, it stuffs it in a packet, writes a source and a destination address on the outside of the packet and tosses it to another machine. The other machine will look at the destination label and toss it another machine that's closer to the destination, and so on until it gets there. The reason that there is a limited number of addresses is that the places on a packet where the addresses are written down have fixed sizes. You can think of it like there being a few little boxes, and you can only write a single digit in each box. If there are two such boxes, you can only write a hundred different numbers (00 to 99). On IPv4 packets, an address has 32 little boxes, but every box can only hold a one or a zero (that is, they're 32-bit binary numbers). And that means that addresses can be any number from 0 to 4294967295, and nothing else. So when we have 4294967296 things on the Internet, it's full. We can't add any more things, because in order to give them their own unique addresses we'd need a 33rd little box on the address label, and IPv4 only has 32 such boxes.

So the big difference between IPv4 and IPv6 is that IPv6 has much bigger address labels. Instead of 32 binary digits, IPv6 has 128. Which means that yes, there still is a limited, fixed number of possible addresses -- but for IPv6 the number is so staggeringly huge that it's very hard to imagine ever running out. The exact number is 340282366920938463463374607431768211456, or about 340 million million million million million million. And change. It's more than enough to give a unique address to every single atom in the planet Earth. We hope that'll be enough for a reasonably long while.

Summary: We need bigger address labels on the Internet, and every single Internet-connected thing needs to be taught to read the bigger labels.

Profile

cdybedahl: (Default)cdybedahl

July 2021

S M T W T F S
    123
45678910
11121314151617
1819 2021222324
25262728293031

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 14th, 2025 06:14 am
Powered by Dreamwidth Studios