By the time you read this, we may have run out of IPv4 addresses. If we haven’t, it’s coming soon; almost certainly by the end of 2010, though extreme measures may yet continue into 2011.

The obvious solution is to adopt IPv6, hermit crab-like, moving to the bigger, better shell.

But is IPv6 better?

Obviously, it has more address space. Far more address space. And features, oh the features.

Which is something of a problem, really…

IPv6 is chock-full of features, especially security. Which is great, except that these take up space. The fixed part of the header alone is 320 bits, about twice the size of an IPv4 header, and roughly as large as a typical IPv4 packet. Add in other extensions, and you’ve got a pretty gargantuan packet.

Now, it’s possible to work with a big packet; sometimes a really big packet is even a good idea. Other times, not so much. It’s an awful lot of overhead for the tiny packets which comprise the majority of packets sent…

But the real problem is one of philosophy. IPv6 tries to do too many things, to provide too many features. This doesn’t, as a general rule, work out well. The tools which stand the test of time aren’t intelligent, feature-rich toys. They’re simple, streamlined creatures which do one thing Very Well. Consider: does your VoIP phone use MGCP? Of course not; they use SIP. When was the last time you wrote code in Algol? But lo, COBOL is still in use today. And think about HTTP: one of the most commonly used protocols, and it has only been updated once since it was introduced. In each and every case, the simple, limited option has outlasted or supplanted the heavy, feature-laden one.

What does this all mean? Well, we’re going to go with IPv6. Slow as adoption has been, there has been major investment into it, and there aren’t any viable alternatives. But we’re going to outgrow the IPv6 features. We’re going to reach the point where its security is inadequate, the routing techniques it aids are obsolete, and there are new concepts which need to be addressed. IPv6 is going to become obsolete. Maybe it’ll be around a while, but it won’t be long. And yet the simple protocols will still be around. Maybe when we design the next version of IP, we’ll keep that in mind.

One thought on “Keep it simple…

  1. Paul says:

    Oh come on, IPv6 is a lot of things, but feature-laden isn’t one of them.

    Have you ever looked at a comparison between the headers? An IPv6 address is 4x larger, but the header is only 2x larger. The difference comes from throwing away IPv4’s unnecessary flags, checksum, and fragmentation junk. 99% of the time, you don’t even need to bother with extension headers.

    And since when is a typical IPv4 packet only 40 bytes? VoIP is known for generating lots of small packets, but IPv4+UDP+RTP is already 40 bytes, and that’s with zero payload.

Comments are closed.