Very nearly full, anyway. When the core protocol of the Internet, TCP/IP was designed, 4 billion addresses seemed like a ludicrous maximum. It would have been hubris to have designed more in, after all. Oops…
Q: Right. So what’s this about the Internet getting full?
A: It’s about IP numbers. We are running out.
Q: These are the numbers that computers use to recognise each other on the Internet, right?
A: Yes. We don’t normally get to see the numbers because we know computers by their domain names, but the numbers are essential to routing data through the network. They look like 4 3-digit numbers joined by dots. A typical one might be 192.168.1.12. Each of those up to three digit numbers that makes up an IP number can be anything between 0 and 255, although in practice 0 and 255 are special so we tend to use 1 to 254.
Q: Can’t we just use bigger numbers? Use numbers that are higher than 255?
A: Sounds like a plan, doesn’t it? Unfortunately it’s really not that simple, or we would have fixed it already. Although they look like four three digit numbers, that’s actually just a way of representing a binary number.
Q: Remind me…
A: Binary is base-two numbers. The numbers we humans use everyday are base ten numbers, because we have ten different number symbols in 0-9. To write the number ten, we need to write two symbols in the right order. So in a base ten number – the kind of number we use everyday – you have hundreds, tens and units digits, or more for larger numbers. If you are using binary – base two – you only have two digits, 0 and 1. To write 2 in binary you write 10. To write 4 you write 100. This is important because its how computers work. Computers use binary exclusively.
Q: My computer seems to add and subtract normal numbers!
A: Yes, but it’s silently converting to binary to do the sums, then converting the results back. And IP numbers are really binary – they are 32 bits or binary digits long.
Q: But you said they were 4 numbers up to 255!
A: A 32 bit number is impossible for us to read out or remember. The 4 lots of three digits format is much easier. But it comes to the same thing. Each of the four numbers represents 8 of the 32 bits, and the biggest an 8 bit binary number can be – row of 8 1s – is 255. The only way to increase the number of addresses on the Internet is to use more than 32 bits for the machine addresses.
Q: How much of a problem is this? It sounds like there are already a lot of numbers.
A: There are about 4 billion. Back when the current iteration of the Internet was designed, that seemed like an unimaginable number. But the Internet really has been the victim of its own success. One of the co-inventors of this – Vint Cerf – said just the other day that only using 32 bits for the address was biggest single mistake he made in designing TCP/IP, which is the core protocol of the Internet.
Q: There are more than 4 billion people in the world.
A: There are indeed. But things are worse than that – some technical limitations and way addresses were given out in the early days of the Internet mean that there are rather fewer that four billion usable addresses, and most of them have now been allocated.
Q: How long have we got?
A: About two to three years before things start to break.
Q: When you say break, what do you mean?
A: Yes, that’s a good question. First of all, you can’t have two computers on the Internet with the same address. Traffic will stop flowing. So, if people were foolish enough to go outside the processes for allocating addresses and just start trying to make addresses themselves, they won’t get on the Net properly and they may well break other people’s connectivity as well.
But there are things that can be done to stretch out the addresses – using one address for multiple computers using a trick called network address translation or NAT. Most people’s broadband modems do that, for instance – your whole house just has one IP address and, if you have several machines in your house, the broadband modem figures out which computer any network is for. That’s the good news. The bad news is that it’s already being done. And it greatly complicates the structure of the Internet – and network engineer will tell you that the Net is designed for each computer to have its own address, and sharing them causes all kinds of nasty consequences.
Q: Hasn’t this problem been predicted? What’s the answer?
A: The answer is a thing called IPv6. That’s the sixth version of the IP protocol – part of the TCP/IP core protocols of the Internet that I mentioned a few minutes ago.
Q: How does that solve the problem?
A: Among a lot of other good stuff like better automatic configuration and far better security, IPv6 allows far more addresses. Instead of the 32 bit binary number that IPv4 has, IPv6 has a 128 bit number.
Q: How many addresses does that allow for?
A: Unbelievably many. 2^128 is about 10^38 – a one with thirty-eight zeros after it. Or, if you like, about a billion billion billion for every person on the planet.
Q: So we could each have a billion billion billion computers?
A: That might be a few too many even for some who likes them as much as I do! In practice, the IPv6 addresses will be given out wastefully, as it were, to make it convenient for people who use them. I expect they’ll be handed out by the million or so.
Q: How do these addresses get handed out – who manages them?
A: Ultimately they are administered by ICANN – that’s the international not-for-proifit that Wellingtonian Peter Dengate Thrush is chair of. In practice, addresses are allocated by five regional registries. The one that New Zealand uses is called APNIC, and it’s based in Brisbane. APNIC is having its annual conference in Christchurch later this year.
Q: What is IP? Is it a computer program?
A: No, it’s a protocol. It standards for Internet Protocol. A protocol is an agreed set of rules on how computers talk to each other. If you join two computers together without a common set of rules there’s no way they can talk. TCP/IP is standard way of doing that – two computers that both run TCP/IP, if they are connected together, can be made to talk to each other and exchange files and email and so forth. And TCP and IP are different things, although they are normally spoken of in the same abbreviation. IP is about moving packets of data through the Internet. Every IP packet is a chunk of data, which starts with the address of the computers its going to and the address of the one its come from. There are some fancy special purpose computers called routers that sit at junctions on the Internet and direct packets based on their destination addresses. You can think of IP as like a postcard you send home from a foreign country – you write an address on the card, send it, maybe it gets there, you don’t know when or how.
Q: You said TCP is different – what is it?
A: All IP does is move a packet from A to B. Nothing else, and it sometimes doesn’t even get there, sometimes it gets lost along the route and ends up getting discarded by a router that can’t figure out what to do with it. TCP – is another protocol, transmission control protocol, and it sets up a conversation between two computers on the Internet. Each party to a TCP session knows whether the other has got its last message. It’s like two computers having a phone conversation.
Q: So you have TCP or IP?
A: No, you have both – that’s the really clever bit. TCP sessions are carried by streams of IP packets. You might lose any given IP packet, but a computer running TCP knows its lost one – they’re all numbered – and its asks the sender for a duplicate. So, using an unreliable IP system that just delivers packets, TCP can set up an actual conversation. Anyway, IPv6 is about doing a better postcard with more room on it for a longer address – and it’s not just a postcard, now it’s got security and its inside and envelope. But all the handling systems have to change, and so do the systems at each end so they can sned and open the letters.
Q: So is IPv6 new?
A: No. IPv6 was finalized in 1994 which is back before the asteroid strike wiped out the dinosaurs, in Internet terms. There has been pressure to adopt it ever since. I went to an international Internet Society conference in 1995 and how we move to IPv6 was a major topic then.
Q: So why haven’t we changed?
A: Why indeed? There has been very little progress towards universal adoption of IPv6. And that’s what it’s going to take – universal adoption.
Q: Why is it such a problem to change? Do we have to change our computers?
A: No, most computers in service today and just about everything bought in the last few years will do IPv6. The problem is more of a human one. It takes real effort to switch things over to IPv6, and the other things on the same network have to change over or nothing works – they don’t talk to each other. And, because most people haven’t changed, networking technicians don’t have much experience with IPv6 and so they aren’t comfortable to use it, either. And, companies aren’t offering it as a product because no-one’s asking for it. How many people or companies are going to ring their ISP and ask for something that they are going to find to get going and will probably cause them no end of telephones calls to technical support?
Q: What’s the answer, then?
A: We don’t really have one yet. Some governments around the world are taking this seriously in their own networks, but even so, not many networks have actually been converted yet. Governments demanding it should push up the number of technicians who are experienced, and that’s a good thing. But I’m really concerned that we aren’t moving anything like fast enough to avoid a nasty address crunch in maybe only a couple of years time.
The Internet is running out of addresses.