I wanted something to sink my teeth into on just how large IPV6 really is. As such, I decided to do it graphically. Initially, this meant just representing each IP address with a single pixel. Surely, the images would be doable. However, as I started crunching the numbers, they were much larger than I thought, and I came to a very quick realization that this wouldn't be possible. I needed to do some compression if I wanted to show it visually. So, I took advantage of compression where possible, and I let your imagination work in a couple spots where even compression won't turn out anything reliable or representational.
To start, it's well known that we're running out of IPv4 addresses. IPv4 only address 2^32 possible IPs, which is 4,294,967,296. There are already 6.5 billion in the world, so we don't even have enough IPs for 1 per person. Given the fact that many of us have more than 1 (Internet, cell phones, cable/satellite TV) and many businesses have gobbled up millions at a time, such as IBM and Sun Microsystems, we're in trouble. It's estimated that we'll be out of IPv4 addresses within the next 2 years. There are things we can do to extend that life, but for the most part, it's time to move on to IPv6. To give a visual of how much of the space is left, consider the image below.
This first image is 256x256 pixels, for a total of 65,536 pixels. As already mentioned, there are currently 4,294,967,296 possible IPv4 addresses. As such, each pixel in my image represents 256 unique IPv4 addresses. There are currently only 511 million addresses left, or about 12%. My graphic below gives an accurate representation of the exhaustion, if black is all the used addresses and white is what is available.
Now, what about IPv6? Well, to start, it addresses 2^128 possible IPs, which is 340,282,366,920,938,463,463,374,607,431,768,211,456 possible addresses. There are a lot of technical points of interest with IPv6. First, it is NOT backwards compatible with IPv4, which means we'll be living a dual IP stack for some time. Second, 64-bits of the 128 in IPv6 are dedicated to your Ethernet hardware address, commonly referred to as the MAC address. Which means, that your ISP could give you the other 2^64, or 18,446,744,073,709,551,616 unique IP addresses when you sign up for an account. After all, as you'll see, we have more than enough room.
This number may not look large, but I want to put it into perspective visually, so you have an idea of what we're looking at. If each IP was a single pixel, this would produce an image 18,446,744,073,709,551,616 pixels square. Now, my monitor has the capability of showing 105 pixels per linear inch. This means my monitor would need to be 2,772,778,991,358 miles in length and width if I wanted to see the image without any scrolling. Just for comparison, a light year is 5,865,696,000,000 miles. It would take almost 6 months traveling at the speed of light to start from one end of my monitor to reach the opposite. Want an image to wrap your mind around it? The maximum distance of Pluto from our Sun is approximately 4,557,000,000 miles away. We need to do that distance about 600 times before reaching the end of my monitor. We're still well within the Milky Way however.
Let's get closer though. If I were to keep the same allocation of 256 IP addresses for a single pixel, as I did with my first image, then I would need a monitor capable of showing 72,057,594,037,927,936 pixels square. A linear distance of that size is about 1,083,116,793 miles across. This is slightly more doable as a visual representation. The distance from our Sun to Saturn is roughly 886 million miles. So, drive about 200 million miles further, long before we reach Uranus and we'll reach the edge of my monitor. Want a visual representation to scale? The yellow blob on the far left, just outside the white monitor is our Sun. The pink dot on the far right just inside the monitor is Saturn. Remember, this is our monitor size if each pixel on my monitor was 256 IP addresses.
Certainly, this is much too large. Can't I get a monitor to fit on my desk? Let's allocate the entire IPv4 space to a singe pixel on my screen. This should give us a more manageable image, no? That means that I would need an image size of 4,294,967,296 pixels square. An image of this size would require a monitor width of only 645 miles. Putting the center of the monitor in the center of the United States, and I can see that my monitor is large enough to cover 6 states in the Midwest- Nebraska, Iowa, Missouri, Kansas, Oklahoma and Arkansas. Again, remember that each pixel in my monitor would be occupying 4.2 billion IP addresses. Think any hardware manufacturer is willing to make a monitor this large for me?
So, there you have it. A visual representation of IPV6 as best as I could do. Hopefully, this will help you understand just how large IPv6 is, and that I don't expect us to run out of addresses with that vast number. Unless, of course, we enter inter-galactic communication on the same protocol.
(If I wanted to fit the entire IPv6 space on my physical monitor right now, each pixel would need to represent 192,903,836,122,980,988,357,922,113,056,557 IP addresses. Cool.)