Why is ipv6 128bit and not 64bit?

17,718

Solution 1

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.

Solution 2

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.

Solution 3

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).

Solution 4

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.

Share:
17,718

Related videos on Youtube

bobby
Author by

bobby

Updated on September 17, 2022

Comments

  • bobby
    bobby over 1 year

    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.

    • Admin
      Admin over 13 years
      I don't get why they would be related, other than it being a big fat coincidence.
    • Admin
      Admin over 13 years
      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.
    • Admin
      Admin over 13 years
      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/".
    • Admin
      Admin about 13 years
      @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.
    • Admin
      Admin over 9 years
      @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.
  • Philip
    Philip about 13 years
    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.
  • bahamat
    bahamat over 12 years
    @chris s: You are completely wrong.
  • Philip
    Philip over 12 years
    @bahamat, care to expand on that unsupported opinion?
  • bahamat
    bahamat over 12 years
    @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.
  • NeDark
    NeDark over 9 years
    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)
  • SilverbackNet
    SilverbackNet almost 6 years
    Agreed, an assertion like this requires some sort of justification.
  • Nicholas Pipitone
    Nicholas Pipitone almost 6 years
    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.