Friday, February 4, 2011

IPv4 is dead!

IPv4 is dead.

What this means is that, no more IPv4 addresses are remaining to be alotted to systems that will be connected to the internet. This marks the end of the protocol that has been running the internet since 1981. This is similar to how IRCTC recently moved to a 5 digit train number, as there have been too many trains to be numbered with 4 digits and the existing conventions (2 prefix for superfast and such). So IRCTC moved to a 5 digit train numbers (mostly adding 1 prefix in front of all major trains).

The same story holds on when they say "IPv4 has been exhausted". All the computers in the internet are uniquely identified by so-called IP Addresses (Internet Protocol addresses). When you want to communicate with other systems on the internet, you make use of IP Addresses to accomplish that. Now that the internet has had too many systems, the IPv4 scheme of numbering is no more sufficient. IPv4 used 32-bit addresses (yeah computers talk in bits). So, a typical IPv4 address would look something like 208.43.209.220 (with each number between the dots represented as an 8 bit integer).

Ok, now what? How do new systems get added to the internet if there are no more addresses left? In comes one of the major changes that is going to be incorporated into the internet in the near future, IPv6. It might sound as simple as adding a 1 prefix like IRCTC did. But it runs the entire internet, so its a bit more complicated than that. Of course IPv6 addresses are longer than the v4 counterparts in that they consist of 128-bits (an example of an IPv6 address is fe03:ff34:ab34:1235:2932:6bdf:22af:23aa). As you can see, these are hexadecimal represented numbers. Each part consists of 4 hexadecimal digits amounting to 16 bits and there are 8 such parts, totalling to 128 bits.

IPv6 is not just IPv4 where you have longer addresses. Since this is going to be a major change that requires modifications in working of almost all the devices connected to the internet, the developers of IPv6 decided to do try and clean up all the drawbacks that were incurred by IPv4 (mandation of IpSec, elimination of need for NAT to name a few). Things would be much simpler if IPv6 had just been interoperable with IPv4. Unfortunately, it is not so and hence the transition phase is not going to be very easy.

However, there have been software level solutions to make it look as if IPv6 is interoperable with IPv4. Yeah, you guessed it right, Tunneling! Imagine you have a shipping company that allows only red colored boxes to be shipped. What will you do if you need to ship a blue color box? Simple isn't it? Just wrap the blue colored box into another red colored box and ship it and make sure that the recipient throws away the red box when he receives it. This is called tunneling. Our shipping company is nothing but the backbone network of the internet (majority of which consists of IPv4 only devices), red box is analogous to IPv4 and the blue box is analogous to IPv6. So the internet is going to rely on tunnelling for majority of its functioning until IPv6 gets well established among the devices in the internet.

So, lets all take a second to thank IPv4 that has been making our lives easier for almost the past three decades. Also, major software giants are joining hands to celebrate World IPv6 Day on June 8, 2011.

P.S.: I conclude with the hope that the IPv4 to IPv6 transition among Indian ISP's will not be as un-smooth and scandal-driven as the 2G to 3G transition.

P.P.S.: This post was drafted during my college lab hour and posted using lynx. :-)

-Vignesh