IPv6: predicting the time of the big switch

(Originally published on 2011-04-26 14:13:53 +0200)

This is part of my series on (trying to) foresee IPv6 deployment.

It is difficult to predict how IPv6 will first take off, who will be first, who will be second and why. These are the next few months or years. However, it is much easier to say when the big switch will occur, how and why.

This will be between mid-2012 and mid-2014.

What will happen then ? The ISP's IPv4 pools will be dry, with no hope to refill them, so they will activate their new customers using IPv6. That doesn't mean they won't give these customers access to the legacy IPv4 cloud. ISPs won't have a choice: even if the big and important contents can be accessed over IPv6, most of the legacy sites, old web sites that people read but nobody really cares to maintain, will still be able to be accessed only on the IPv4 "cloud".

Thus, the ISPs will still have to give access to IPv4 to their new customers, even if the "native" access is built on the top of IPv6. How will they do such a miracle ? By some form of transport of IPv4 inside IPv6, such as NAT464 or DS-lite. Both schemes imply some sharing of the "public"<a name="#1">[1]</a> IPv4 addresses between several customers. This is called LSN (Large Scale Nat) or CGN (Carrier Grade Nat), to emphasizes that private addresses from the customer LAN (Local Area Network) are translated in large quantities inside the carrier's network, as opposed to NAT in the home gateway where this is done at the edge of the network, and only for one customer address.

The point is that, by then, customers will experience a very degraded IPv4 experience, as compared as today's. Here are two reasons:

  1. Today, you can open thousands of simultaneous connections from the PCs and other Internet device in your home to the outside. Because IPv4 allows for a maximum of 65535 simultaneous connections on a single address, and an address will be shared among many customers, you will only be able to open, say, a maximum of one hundred simultaneous connections per home. This will make your IPv4 experience slower and degraded because some applications, such as peer-to-peer or Google Maps, are based on dozens of simultaneous opened connections <a href="#2">[2]</a>
  2. Incoming connections (connections from the Internet to your PC) are possible, either by manual configuration of your home gateway, or by automatic configuration using protocols such as UPnP IGD. Incoming connections are used by protocols such as Skype, some online games, MSN file transfer when possible, P2P protocols and others. With CGN, incoming connections are not possible any more. In essence, this is because the function is moved from a customer-operated equipment (the home gateway), to an ISP operated equipment, and the ISP won't let the customers alter the configuration of one of its equipment.

In summary, today and in the coming months, residential customers will have long-tested IPv4 connections of the best possible quality, and IPv6 connections of an experimental quality. As a content service provider, you can choose which connection is used on your dual stack server, and your interest is to go for IPv4 if you want to be sure your customers (the residential Internet users coming to your web site) have the best possible experience. However, this will gradually shift, and at some point, new ISP customers will have the best possible quality over IPv6 connections, and a much degraded quality over IPv4 connections, reversing today's situation. If you're a content provider, be sure that the customers will blame you, not the ISP, for the poor quality, and you will have no other choice, if you want to keep them, to have high quality content delivery both on IPv4 (for ISP old customers), and IPv6 (for ISP new customers). This in turn will make a massive switch to IPv6 possible, and even inevitable.

<a name="1">[1]</a> A public IP address: an IP address that can be routed on the Internet, as opposed to a "private" IP address that won't be carried by transit operators, and thus is kept local inside a customer or an organization local network.

<a name="2">[2]</a> For example, google maps divides the map in squares of equal size, and open one connection per square. If you can't open enough connections, either the display of the map is slower because the application has to retry failed connections, or you can even have blank squares in the middle of the maps, because the application was unable to retrieve the data.