IPv6 should solve the problems with overcrowding on the Internet. Tim Dean delves into the guts of the next generation protocol.
IPv6 should solve the problems with overcrowding on the Internet. Tim Dean delves into the guts of the next generation protocol.I remember when I was a kid, sitting in the back seat of the family car on some or other long trip, and I got to wondering about number plates. At the time, there were three letters and three numbers -- that's a lot of number plates. 17,576,000, or so, to be exact (it's not actually that number as there are certain three letter combinations that are not used, such as GOD or BUM, so that cuts down the total a little). At the time, the plates were starting with M, which meant we were about half way through all the possible combinations, and we had around 8.7 million or so plates left to go. Even so, I couldn't imagine ever running out, and yet not that much later, we did.
Several years ago NSW introduced the three letter, two number, one letter plates. 45,697,600-odd more plates to go. Now, that should last a while, surely. Not so. The other day I saw the first of the new NSW plates, with two letters, two numbers and two letters. Another 45,697,600. What's next? Thankfully, we can keep shuffling the order of numbers and letters (as long as we don't conflict with other states) so we should be able to last for a while yet.
Unfortunately, the outlook isn't quite so rosy for the internet. Like the cars on our roads, every computer on the internet has a unique identifier: its IP address. And we're running out of addresses.
When 4 billion just isn't enough
The Internet Protocol has a 32-bit address, which means there are around 4.3 billion possible IP addresses. That's a fair number of addresses, and was certainly considered to be more than enough when the protocol was developed in the 1970s. However, back then there were relatively few computers around the world and even less that were networked together. It was the advent of the personal computer and local area networking, and then the internet, that threw ol' IP a curve ball.
This is even further compounded by the way IP addresses are split up into Classes. It was anticipated that there would be many different size networks, and so the protocol needed to be able to accommodate both big and small networks. As such, the address space was divvied up into three Classes. Class A was for large networks that needed capacity for millions of nodes, while Class B was for medium networks with tens of thousands of nodes. Finally, Class C was for small networks with only a couple of hundred nodes. The problem is there can only be 127 Class A networks, but they account for half of all the IP addresses, leaving only 2.1-odd billion addresses for the rest of us.
Furthermore, at the moment IP addresses are mainly issued to computers, although that is starting to change. In the future many more devices will have IP addresses, such as phones, televisions, appliances etc. Even your light switches may end up having IP addresses when the digital home revolution really hits. This means at the moment a single household may only have three or four IP addresses at most, but in several years time a single household might have as many as 100 or more. Multiply this by the number of households, and businesses, and 4.3 billion suddenly doesn't look like that much.
There are also other limitations to the current implementation of IP, which is called IPv4, such as the lack of decent authentication, quality of service (QoS) and encryption. So, several years ago, a bunch of concerned networking gurus got together and schemed up a replacement for IPv4. The project was called IPng, for Internet Protocol Next Generation, and the new protocol gained the official moniker of IPv6.
More addresses than grains of sand
The primary feature of IPv6 was the increased address space. While IPv4 sports a 32-bit address, IPv6 packs in 128-bit addresses. This means it has a number of possible addresses that can only be described as ridiculously large. To put it in perspective, Robert Hinden, who's a part of the IPng working group, has calculated there are about 600 thousand billion billion addresses per square metre of the Earth's surface. Even with the most pessimistic of estimates of efficiency, this means there should be more than enough even for the light switches.
While the computing world has suffered from lack of foresight in the past (remember when 640KB of RAM was all you needed?) it's unlikely we're going to run out of IPv6 addresses any time soon, by which stage there will be a total revamp of networking protocols anyway.
IPv6 also features a new authentication system called the IPng Authentication Header. This enables a packet's origin to be tracked at the protocol level, which is currently not reliable with IPv4. This will potentially cut down on things like spoofed traffic and host masquerading hacks. Also built in is the IPng Encapsulating Security Header, which can encrypt the packet. These extensions to IPv6 can be used independently or together to give an added measure of reliability and privacy online. They are both just provisions in the header and are algorithm independent, so can evolve over time as well.
IPv6 will have three types of addresses to give it more flexibility than IPv4. The first is the conventional unicast address, which is one address for one device, like a PC or a phone. The second address is called anycast, which can apply to multiple nodes, and the packet will be routed to the 'nearest' one. This is useful if you want traffic to be routed a particular way or through a particular network. An anycast address can be set as an intermediate step and the packet will wind its way along until it reaches the first device with that anycast address, then it'll work its way along to its destination as normal. This can help to manage network traffic as well as ensure certain packets use a particular network for QoS reasons. The final address is multicast, which can apply to multiple devices. When a packet is sent to a multicast address, it gets forwarded on to them all.
QoS is another important feature of the internet in the future, especially as more 'real time' and applications are run over it, such as VoIP (Voice over IP). Currently one of the biggest limiting factors to improving the quality of VoIP is the fact that IPv4 packets can arrive in any order, then have to be reassembled in the correct order. This introduces a delay if you want the best audio quality, or artefacts and distortion if you don't have a delay. IPv6 will introduce advanced flow control where a series of packets can have their order specified, and routers will attempt to keep them moving in that order. A new priority tag will also be introduced to help certain packets move through without interruption from packets that are not time dependent.
It's not all roses
These are the great new features we can expect in IPv6, but there have been some significant challenges in putting them all together, and there'll still be some challenges when it comes to rolling IPv6 out to the networking world.
First of all, with all these new features, there was a risk of header bloat. The address space has already been increased four-fold, and with additional material filling up the headers of every packet flowing over the Internet, there was a risk the overhead would get too high. One of the primary emphases of the IPng working group was to keep the header as small as possible, and they've done so. Even with the bigger address space, the new header is only twice the size of IPv4 headers, mainly due to streamlining and culling some unnecessary features.
The other major challenge facing IPv6 is the rollout. You can imagine the kinds of shenanigans that would ensue if the world was suddenly told there was a new internet protocol out, and everyone had to upgrade. If they were not compatible, you'd start having two internets, and they wouldn't be able to speak to each other. Oh, the humanity.
As such, it's always been a priority that IPv6 is backwards compatible with IPv4, and frontwards compatible too. In backwards compatibility, an IPv6 router will be able to identify an IPv4 packet, and it'll route it on its way without breaking stride. In frontwards compatibility, an IPv6 device will be able to include an IPv4 address in its header and make it recognisable to an IPv4 router, so the older router will still be able to handle the packet.
The only problem occurs when you have a device with an IPv6 IP address, and no IPv4 address. In this case an IPv4 router simply won't compute and will drop the packet. This means we're likely to have IPv4 co-existing with IPv6 for some years yet - at least until the vast majority of IPv4 routers on the internet have been replaced or upgraded. Thankfully it should only take a firmware or software upgrade to make most of them IPv6-compatible.
So, IPv6 is here to stay, and you'll be hearing a lot more about it over the next year or two. In fact, if you want to start using it right now, and you're running Windows XP, you can. Just open a command prompt and type 'ipv6 install', and you're done. Welcome to the new internet!
Issue: 111 | April, 2010