IPv6
Categories:
So, long time no post. I was going to talk about one of the things I've been working on, which is IPv6. This'll take a little bit of background explanation, so if you're already tech savvy and know all about IPv6 just bear with me.
You probably have at least some idea of how the Internet works. Virtually every computer or device connected to the Internet (or just about any computer network really) is assigned an address, known as an "Internet Protocol" (or IP) address. These IP addresses are usually represented by a string of four numbers between 0 and 255 separated by dots, like 74.134.239.209. Computers on a network send packets of information much like you or I would address a letter. The packet is addressed with the number of the computer that it wants to send the information to (like a web browser requesting a copy of a webpage) and sends the packet on its way. That packet makes its way to the target computer, which reads the information and puts it to whatever use was intended (like processing the correct webpage and sending it back to the web browser). Exciting, eh?
The version of the Internet Protocol that we use is known as version 4, and has been in use since 1981, and has worked well. However, we are in perilous danger of exhausting the total number of unique address numbers available. There are only 4,294,967,296 unique addresses available using the current standard. This might seem like a lot, but consider that it is not even close to as many addresses are there are people in the world (~6.5 billion). Now think of how many Internet-connected computers and devices there are in the world, each of which possess one or more IP addresses. Furthermore, there are millions of those addresses which are reserved for special purposes, like private networks, multicasting, and other network-architecture related functions. So our available address space suddenly seems quite small. In fact, current estimates of address exhaustion place the time that we run our of unique addresses at sometime in the first half of the year 2010, at which point without a solution architectural growth of the Internet will come to a halt. This situation is what is known in technical terms as Not Good.
Enter IPv6. IPv6 is the next version of the Internet Protocol (IPv5 was an experimental streaming protocol that was designed to complement IPv4 but was never used). In the words of Bill Nye, IPv6 is Really Bigly Hugely Big. The address space is so large (2^128 addresses) that it's difficult to even adequately describe, so I'll attempt to do so with a series of metaphors I found on Wikipedia and elsewhere. IPv6 has roughly 50 octillion addresses (a 5 with 28 zeros after it) for each person on Earth. If the population of the Earth were 18 quintillion, there would be about 18 quintillion addresses for each of them. If the IPv4 address space were the volume of an iPod, then the IPv6 space would be the size of the entire Earth. I especially like this one: there are a million times as many IPv6 addresses as there are IPv4 addresses...for each star in the known universe.
So you get the idea. IPv6 is big, and should last us for a while. It also solves a lot of problems that IPv4 has introduced. In order to stave-off address exhaustion, various network technologies have been introduced which break the end-to-end nature of the Internet. Originally, the intent was for the Internet to be the great non-hierarchical redundant network, with every single Internet-connected computer (or "Host") with an unbroken two-way path to every other host. However, technologies like Network Address Translation (NAT) have been introduced which allow hosts to share "public" (visible to the rest of the Internet) addresses. This is why if you've ever looked at the network settings on your laptop when you're out at a café or something, your address always seems to be 192.168.blah.blah or something similar (maybe 172.16.blah.blah). These are addresses set aside for "private networks," which are networks which are never visible to the rest of the Internet. Probably the café only has one IP, which it shares with all of its clients. The end-to-end path is broken, because a set of hosts are behind a hierarchical structure made by NAT. Often there is a similar situation at home, where all clients of an ISP are behind the ISP's NAT. This makes it difficult if not impossible for you to publish content to the Internet without utilizing third-party services and websites, or paying ISPs extra money for "business class" services on top of what you pay for bandwidth.
What's more, that one address is probably "dynamic" rather than "static." That means that the café's Internet Service Provider (and probably your ISP at home) assigns an address to them dynamically from a common pool as they become available. Why is this a problem? Well, it's not, unless you want to provide content, like a website. A protocol called Domain Name Service (or DNS) assigns human readable addresses (like ctcvista.org) to IP addresses (like 208.113.151.31) based on a database of those pairings. If ctcvista.org had a dynamic address, then if the ISP decided to change it to 208.113.151.32, ctcvista.org would no longer point to the right place and no one would be able to find the website. This means that in order to have a website, people have to pay hosting providers for space on computers that have expensive static IPs that don't change.
Still with me? Okay, so IPv6 can solve these problems by assigning a public, static IP to every device on Earth. However, who gets to assign the addresses? Currently, all the IP addresses on Earth are assigned by the Internet Assigned Numbers Authority (IANA). IANA delegates that responsibility to organizations in charge of large geographical areas. So all of the addresses in North America are assigned by the American Registry of Internet Names and Numbers (ARIN). ARIN allocates ranges of IP address numbers called "blocks" to qualifying organizations, mainly large ISPs. This makes sense in a way, because ISPs provide the connectivity and it is architecturally simplest for the assigned numbers to reflect the actual structure of the networks that make up the Internet.
However, there are a large number of community projects that require a large number of addresses but don't fit into the established model. These are projects like community networks, municipal wireless networks, community technology centers, and community-run ISPs. These groups are often short on cash but need a large number of addresses for all of their computers, devices, and members. But even though there are a huge number of addresses available, they still have to pay an arm and a leg to go through the large ISPs that maintain a stranglehold on the address space as if it were still running out.
So, finally, enter my organization, Acorn. Acorn is working with ARIN to do two things:
1. Get a large allocation of addresses that Acorn can then hand out to community projects that need them without them having to go through the big ISPs.
2. Change the policy so that in the future any other organization can do the same thing.
Number one is accomplished. Acorn's been awarded a /32 block, which is 2^92 addresses. Billions and billions, to say the least. Now we're working on a policy proposal for early next year which, if ratified, will set up a procedure for other community organizations to get their own IP addresses to provide services to the people in their neighborhoods without having to go through the ISPs for anything but connectivity. Hopefully with this work, we can make the Internet become a better, fairer place like it was intended to be before the critical date in 2010 before IPv4 runs out.
So I hope that this is a fairly straightforward explanation while still being accurate. I'm far from being the world's foremost expert on Internet architecture, so if I got any points wrong feel free to correct me.
Comment from Morgan Sully on November 30, 2007 - 5:49pm
Josh,
this is a GREAT article! Breaks IPv6 down without a lot of jargon while still tying the importance of our CTC work. A+
Would you mind if I submit this to the NAMAC website (where I work with media arts centers)?
It's really well written.
m
Comment from Josh King on November 30, 2007 - 10:36pm
Sure Morgan, I'm glad you liked it. If I get more positive feedback I might stick it on the ctcvista.org wiki, too.
--
Josh King, Acorn Active Media Foundation (http://www.acornactivemedia.com)
Comment from Jack Waugh on December 4, 2007 - 7:29pm
Yes, this is a great explanation and I think the link to this page should be published as widely as possible in the nonprofit world, as well as in any fora frequented by people interested in technology and in the social implications of the directions of technology's evolution.