this post was submitted on 19 Jun 2024
314 points (85.5% liked)

Programmer Humor

19512 readers
375 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 

Today in our newest take on "older technology is better": why NAT rules!

you are viewing a single comment's thread
view the rest of the comments
[–] orangeboats@lemmy.world 24 points 4 months ago* (last edited 4 months ago) (2 children)

Every time there's a "just add an extra octet" argument, I feel some people are completely clueless about how hardware works.

Most hardware comes with 32-bit or 64-bit registers. (Recall that IPv6 came out just a year before the Nintendo 64.) By adding only an extra octet, thus having 40 bits for addressing, you are wasting 24 bits of a 64-bit register. Or wasting 24 bits of a 32-bit register pair. Either way, this is inefficient.

And there's also the fact that the modern internet is actually reaching the upper limits of a hypothetical 64-bit IPv5: https://lemmy.world/comment/10727792. Do we want to spend yet another two decades just to transition to a newer protocol?

[–] lambalicious@lemmy.sdf.org 0 points 4 months ago (1 children)

64-bit IPv5

64-bit IP would be IPv8, not IPv5.

[–] SpaceCadet@feddit.nl 0 points 4 months ago* (last edited 4 months ago) (2 children)

you are wasting 24 bits of a 64-bit register

You're not "wasting" them if you just don't need the extra bits, Are you wasting a 32-bit integer if your program only ever counts up to 1000000?

Even so when you do start to need them, you can gradually make the other bits available in the form of more octets. Like you can just define it as a.b.c.d.e = 0.a.b.c.d.e = 0.0.a.b.c.d.e = 0.0.0.a.b.c.d.e

Recall that IPv6 came out just a year before the Nintendo 64

If you're worried about wasting registers it makes even less sense to switch from a 32-bit addressing space to a 128-bit one in one go.

Anyway, your explanation is a perfect example of "second system effect" at work. You get all caught up in the mistakes of the first system, in casu the lack of addressing bits, and then you go all out to correct those mistakes for your second system, giving it all the bits humanity could ever need before the heat death of the universe, while ignoring the real world implications of your choices. And now you are surprised that nobody wants to use your 128-bit abomination.

[–] orangeboats@lemmy.world 7 points 4 months ago* (last edited 4 months ago) (1 children)

You're not "wasting" them if you just don't need the extra bits

We are talking about addresses, not counters. An inherently hierarchical one at that (i.e. it goes from top to bottom using up all bits). If you don't use the bits you are actually wasting them.

you can gradually make the other bits available in the form of more octets

So why didn't we make other bits available for IPv4 gradually? Yeah, same issue as that: Forwards compatibility. If you meant that this "IPv5" standard should specify compulsory 64-bit support from the very beginning, then why are you arbitrarily restricting the use of some bits in the first place?

If you're worried about wasting registers it makes even less sense to switch from a 32-bit addressing space to a 128-bit one in one go

All the 128 bits are used in IPv6. ;)

[–] SpaceCadet@feddit.nl -5 points 4 months ago* (last edited 4 months ago) (1 children)

We are talking about addresses, not counters. An inherently hierarchical one at that. If you don’t use the bits you are actually wasting them.

Bullshit.

I have a 64-bit computer, it can address up to 18.4 exabytes, but my computer only has 32GB, so I will never use the vast majority that address space. Am I "wasting" it?

All the 128 bits are used in IPv6. ;)

Yes they are all "used" but you don't need them. We are not using 2^128 ip addresses in the world. In your own terminology: you are using 4 registers for a 2 register problem. That is much more wasteful in terms of hardware than using 40 bits to represent an ip address and wasting 24 bits.

[–] orangeboats@lemmy.world 4 points 4 months ago* (last edited 4 months ago)

I have a 64-bit computer, it can address up to 18.4 exabytes, but my computer only has 32GB, so I will never use the vast majority that address space. Am I "wasting" it?

You are using the addressing bits in the form of virtual memory. Right now. Unless you run a unikernel system, then in that case you could be right, but I doubt it.

Anyway, this is apples and oranges. IP addresses are hierarchical by design (so you have subnets of subnets of subnets of ...), memory addresses are flat for the most part, minus some x86 shenanigans.

Yes they are all "used" but you don't need them. We are not using 2^128 ip addresses in the world.

But we do need them! The last 64 bits of your IPv6 addresses are randomized for privacy purposes, it's either that or your MAC address is used for them. We may not be using those addresses simultaneously but they certainly are used.

Despite that, there still are plenty of empty spaces in IPv6, that's true. But they will still be used in the future should the opportunity arise. Any "wastage" is artificial, not a built-in deficiency of the protocol. Whereas if we restricted the space to 40 bits, there will be 24 bits wasted forever no matter how.

[–] hch12907@programming.dev 1 points 4 months ago

Hm, didn't the GP already address (pun unintended!) the 128-bit part?

He/she said the internet is reaching upper limits of 64 bits apparently and gave a value of 61 bits in the linked comment.