17

Computer processors moved from 32bit to 64bit. Why have IPs moved from 32bit to 128bit (skipping 64bit) ?

EDIT:

I did not intend to make a direct comparison. Just curious why IPs skipped 64bit.

5
  • 8
    I don't get why they would be related, other than it being a big fat coincidence. Oct 18, 2010 at 16:13
  • 2
    When IPv4 was originally devised we all believed it was sufficiently large enough. Few, if any, envisioned what happened 20+ years later. Having learned a lesson it seemed prudent not to make the same mistake again. It would be possible using IPv6 to assign every individual on the planet their own IPv4 sized (32 bit) network with room left over.
    – dbasnett
    Oct 19, 2010 at 12:18
  • Everyone who says they're unrelated - are you sure about that? A lot of software and hardware treats IPv4 addresses as unsigned 32-bit integers. Adding IPv6 support to your application isn't as simple as "s/uint32_t/uint128_t/". Oct 19, 2010 at 21:54
  • 7
    @Gerald; Yes, we're sure. IPv4 chose 32 bit because it was the biggest register found in any common processors at the time. It was an arbitrary choice that seemed good enough at the time. We're smarter than picking arbitrary numbers based on CPU registers these days. 128 bit was chosen because it provides enough IPs that we can waste a lot of them on things like IPv4 compatibility mechanisms, convenience, etc; and ensure that we don't need crap like NAT, restoring end-to-end routability to the Internet.
    – Chris S
    Apr 9, 2011 at 0:27
  • @ChrisS And yet even 128 bit isn't enough for some of the IPv4 compatibility mechanisms. Look at 6to4 and Teredo. The shortcoming of 6to4 that is addressed with Teredo is running through NAT44. But then why did Teredo have to eliminate one of the features, which 6to4 has? With 6to4 you can run an entire network, with Teredo you only get to run a single host. The reason you can't have both is that the IPv6 address is only 128 bits, doing both would have required 192 bits. 6rd is another example of a transition mechanism, that could have benefited from a few more bits in the IPv6 address.
    – kasperd
    Sep 15, 2014 at 10:01

4 Answers 4

22

The two are unrelated. The decisions around how to structure IPV6 are myriad. There's a lot of info at the IPv6 Wikipedia article.

Basically, the 128-bit address space of IPv6 gives us such a massive address space that we are unlikely to ever use all of it (2^128 addresses, or 3.4*10^38).

The larger address space also allows for a better hierarchical model of addressing, because CIDR and similar "hacks" are no longer necessary for routing. The address space allows a separation of a 64 bit host address and 64 bit network address, and host address can be self-configured.

With more space, we have more addresses, and it's easier to organize them efficiently. IPv4 is kind of like a cluttered 1-bedroom apartment, and IPv6 is a giant warehouse in which we can set up everything in a much more organized fashion.

1
  • 2
    MAC Adresses are also unique and with 48bits only less than 5% has been used. Using 64bits address it would be 2^64/2^48=65536 times more addresses, which leds to less than 0.00007% usage if we assign a ipv6 to each device with a mac registered (unlikely)
    – NeDark
    Feb 2, 2015 at 23:20
7

Because designers of IPv6 overcompensated for the previous blunder of IPv4. 32-bit is indeed too little, but 64-bit would be every bit as effective as 128-bit (divided into 40+24 instead of 64+64). But it is too late to change now.

0
4

they sort of did move to 64 Bit, because in most IPv6 deployment models you are assigned a /64 prefix, meaning your "public" IP address is 64 bit fixed and the rest is assignable by you in your private network (also a whopping 64 Bit).

6
  • 1
    Only ISPs issue /64s, and from what I've seen, that doesn't actually happen very often. My personal opinion is that the 64+64 thing was a stupid idea and we should stick with something closer to CIDR.
    – Chris S
    Apr 9, 2011 at 0:30
  • 2
    @chris s: You are completely wrong.
    – bahamat
    Aug 28, 2011 at 20:57
  • @bahamat, care to expand on that unsupported opinion?
    – Chris S
    Aug 29, 2011 at 0:48
  • 1
    @chris s: It's not opinion. ISP's generally issue /48's. Subnets are (almost) always /64, and seldom smaller. The RFC says that individuals as well as organizations should be given a /48. You only think 64/64 is a bad idea because you don't understand how vast 64-bits of prefix really is (it's 12 subnets per cm^2 of land area on the surface of the earth). You obviously know a little about IPv6, which is good, but you're bringing obsolete v4 mindset into v6. Stop that. I respect you because of your reputation, but in this case you're wrong.
    – bahamat
    Aug 29, 2011 at 4:13
  • 1
    @Chris S: Exactly my point. You don't understand how vast it really is. Anybody being stingy with prefixes doesn't. The global address space is 2000::/3. On an exponential usage rate it's expected, by allocating /48's, to run out around 2150. Including the special usage space that leaves over 86% untouched. And that's considering that none will ever be de-allocated and reused. Slinging them around like candy means there will be plenty for your children's children's children's children.
    – bahamat
    Aug 29, 2011 at 15:32
2

With 64-bits, IP addresses would still be scarce. For example, every Ethernet card has a 48-bit unique identifier. If you allowed cards to use their 48-bit unique identifiers as their host address, 64-bits would leave only 16-bits for the network portion, which is not enough.

With 128-bits, IP addresses aren't scarce. And that allows you to do all kinds of neat things.

4
  • 2
    The 48 bit space is not completely used as today. Why would we consider scarce a 64bit space (which is 65536 times the 48bit space) when we did not even occupy more than 10% of the 48bit space? Dec 29, 2015 at 18:08
  • Agreed, an assertion like this requires some sort of justification. Jul 5, 2018 at 0:42
  • Giving every device a unique ID is much easier than making a routable address space. You can do the former very efficiently, but the latter must be inefficient. You want every global prefix to have room for lots of subnets (which must be /64), from Google, to a home user. Thus, ISPs give out /48s. Obviously every person on the planet doesn't need a Google-sized subnet space, but it's so much easier if you just assume the first 48 is globally routable, the next 16 is a subnet, and the last 64 is a host ID. Commenters are right, scarcity wasn't why 128bit was chosen, classful networking was. Jul 30, 2018 at 21:35
  • 1
    Many IPv6 packets on the internet have that part zero'd out anyway. Who wants to expose their MAC address to the world? Especially today when privacy has become more of an issue Aug 1, 2019 at 7:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .