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.

bobby
  • 459
  • 2
  • 4
  • 9
  • 8
    I don't get why they would be related, other than it being a big fat coincidence. – Ignacio Vazquez-Abrams Oct 18 '10 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 '10 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/". – Gerald Combs Oct 19 '10 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 09 '11 at 00: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 '14 at 10:01

4 Answers4

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.

phoebus
  • 8,380
  • 1
  • 31
  • 30
  • 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 02 '15 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.

Alex
  • 79
  • 1
  • 1
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).

knitti
  • 700
  • 6
  • 9
  • 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 09 '11 at 00:30
  • 2
    @chris s: You are completely wrong. – bahamat Aug 28 '11 at 20:57
  • @bahamat, care to expand on that unsupported opinion? – Chris S Aug 29 '11 at 00: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 '11 at 04:13
  • @Bahamat, perhaps when dealing with large enterprises ISPs would issue a full /48; but my experience is with small and medium businesses, where there's *very* few ISPs support IPv6 at all and seem rather inconvenienced you requested a /64. 64-bits might be 12 subnets per cm^2, but reserved and special purpose prefixes take a large bite out of that. I may be overly fixated on the problems of IPv4; but 30 years ago 32-bits was sure to be "enough" too. Seems like history repeating itself. – Chris S Aug 29 '11 at 12:42
  • 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 '11 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.

David Schwartz
  • 31,449
  • 2
  • 55
  • 84
  • 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? – Luis Masuelli Dec 29 '15 at 18:08
  • Agreed, an assertion like this requires *some* sort of justification. – SilverbackNet Jul 05 '18 at 00: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. – Nicholas Pipitone Jul 30 '18 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 – curiousguy12 Aug 01 '19 at 07:28