I've often wondered if the first sign of madness is the ability to reel off a variety of "important" IP addresses by heart. The trouble is, things are set to get worse.
The reason for the imminent change is that we're running out of IP addresses. The Internet gets its name from the network layer protocol, called the Internet Protocol or IP. IP Version 4 (or IPv4) has been in use for about 20 years now and has worked reasonably well. It uses a 32-bit addressing scheme and so can provide 232 or 4.2 billion unique IP addresses.
This seems like an enormous number, but it becomes clear that there is a problem when you consider that there are 6.5 billion souls on this planet and that, pretty soon, there won't be a significant piece of electrical equipment that isn't hooked up to the Internet in some way or another. Each one will require its own unique IP address.
The solution to this difficulty is to move on to the next generation of IP addressing schemes, dubbed IPv6. (IPv5 was a streaming protocol.) IPv6 uses a 128-bit address space and should deliver no fewer than 340 trillion trillion trillion (or 3.4 x 1036) possible addresses. Or to put it in terms that are slightly easier to grasp, more than 6 x 1023 addresses for every square metre on the Earth's surface. That ought to do - well, at least for a few years...
As of today, IPv6 accounts for a tiny percentage of the addresses in the publicly accessible Internet, which is still dominated by IPv4. Adoption of IPv6 has been slowed by the introduction of NAT (network address translation), which has eased address exhaustion. The US government has, however, specified that all federal agencies must deploy IPv6 by 2008.
Typing 'IPV6 IF' at a command prompt produces a veritable laungry list of technical info, click here to view.
What's so great about IPv6?
IPv6 is a lot more than IPv4 with a couple of numbers bolted on the end to make the address space bigger. It's a total rethink of what will be required from IP in the future. Most of us are painfully familiar with the IPv4 address convention, where the address is written as four numbers between zero and 255 separated by dots. For example: 126.96.36.199.
Under IPv6 this mushrooms from four triplets to eight groups. But it's not even that simple, because IPv6 uses hexadecimal, not decimal, numbers in groups of four (they're also now separated by colons, not full stops). Here's an example: 3ffe:831f:4004:1954:0:fbf9:af4e:8738. Try memorising that lot!
A lot has changed since IPv4 was first specced out and IPv6 incorporates many of these changes. Security is better, for a start. With IPv4, IPsec (IP Security) is optional, and you need to ask the peer if it supports IPsec. With IPv6, IPsec support is mandatory. You can assume that you can secure your IP communication whenever you talk to IPv6 devices.
Multicast support is also built-in to IPv6, something that was optional in IPv4. The IPv6 base specifications themselves extensively use multicast. IPv6 offers better support for ad-hoc networking. Scoped addresses allow better support for ad-hoc (or "zeroconf") networking. IPv6 supports "anycast" addresses, which can also contribute to service discoveries.
IPv4 isn't well suited to carrying multimedia traffic as gamers and VoIP (voice over IP) users will testify - the frequent interruptions, lag and poor responsiveness make watching video a real test of patience. Clearly, multimedia use of the Internet is set to increase dramatically, and switching to IPv6 will make a real difference here.
Despite seeming to be vastly more complicated than IPv4, IPv6 will actually make network configuration considerably simpler. Despite time-saving systems such as DHCP (dynamic host configuration protocol), a huge number of networks are still manually configured. IPv6 supports both "stateful" and "stateless" configuration, meaning that you can get an IP address whether or not a DHCP server is available. If you're not, then the address is derived from your 48-bit MAC hardware address.
Other benefits of IPv6 are less obvious. Its internals have been designed with scalability in mind, which will help many devices besides PCs, such as mobile phones and home appliances, to join the Internet in the future.
The change is good news for routers. If we massively over-allocate the address space, it doesn't cost us much in resource terms, but it lets us create multi-level hierarchies of address allocation. This in turn means that routing algorithms, and the space needed for routing tables, becomes hugely simplified.
There's a good FAQ on IPv6 at Microsoft's Technet (go to http://technet.microsoft.com and search for "ipv6 faq"). While you're at it, check out the Wikipedia entry on Teredo Tunneling at http://en.wikipedia.org/wiki/teredo_tunneling.
Support for IPv6 has only been present since Windows XP Service Pack 1. It's also supported by Windows Server 2003 and Windows CE .NET 4.1 and later, while Vista and Windows Server "Longhorn" will support it as standard.
Installing IPv6 doesn't interfere with your existing IPv4 stack - the two IP protocols can peacefully co-exist on one machine, so it doesn't hurt to install it now, click here to view a screenshot. However, this does require some jiggery-pokery on the part of IPv6, which uses "tunnelling" techniques to wrap IPv6 packets inside IPv4 packets. If you run IPConfig you'll see the mysteriously named "Teredo Tunneling Pseudo-Interface" listed - this is the converter, click here to view a screenshot.
There are several ways to install the next-generation protocol under Windows XP. If you have SP2 installed, click Start-Control Panel and double-click Network Connections. Right-click any local area connection and choose Properties. Hit Install and in the "Select Network Component Type" dialogue box, click Protocol, then Add. In the "Select Network Protocol" dialogue box, click "Microsoft TCP/IP version 6" and hit OK. Click Close to save changes to your network connection. You can also open a command prompt and enter:
netsh interface ipv6 install
If you still have SP1 it's slightly different. Click Start-Control Panel and double-click Network Connections. Right-click any local area connection and pick Properties. Click Install and in the "Select Network Component Type" dialogue box, choose Protocol, then Add. In the "Select Network Protocol" dialogue box, click Microsoft IPv6 Developer Edition, then OK. Hit Close.
To check that IPv6 is installed and working properly, open a command prompt and enter:
You should see results similar to "Reply from ::1: bytes=32 time < 1ms". This test is functionally equivalent to pinging the IPv4 loopback connector at 127.0.0.1. (click here to view a screenshot)