this post was submitted on 01 Aug 2025
768 points (96.4% liked)

Programmer Humor

25425 readers
1034 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 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] Gonzako@lemmy.world 3 points 12 hours ago (2 children)

mind explaining? All 8 know about Nat is that it sometimes didn't let me play rainbow six siege

[–] ThunderComplex@lemmy.today 10 points 9 hours ago (2 children)

NAT is like package delivery IRL. If you’re a server and send a package to a client without NAT, that’s like sending a delivery boy to deliver pizza, goes straight from source to destination.

But with NAT it’s like ordering a package online. It first will be delivered to a distribution center, and then a delivery warehouse in your area, and then the courier delivers packages to all people on his route.

It’s way more complex and you now have a whole bunch of points of failure.

[–] enumerator4829@sh.itjust.works 2 points 2 hours ago

And yet, in the real world we actually use distribution centers and loading docks, we don’t go sending delivery boys point to point. At the receiving company’s loading docks, we can have staff specialise in internal delivery, and also maybe figure out if the package should go to someone’s office or a temporary warehouse or something. The receiver might be on vacation, and internal logistics will know how to figure out that issue.

Meanwhile, the point-to-point delivery boy will fail to enter the building, then fail to find the correct office, then get rerouted to a private residence of someone on vacation (they need to sign personally of course), and finally we need another delivery boy to move the package to the loading dock where it should have gone in the first place.

I get the ”let’s slaughter NAT” arguments, but this is an argument in favour of NAT. And in reality, we still need to have routing and firewalls. The exact same distribution network is still in use, but with fewer allowances for the recipient to manage internal delivery.

Personal opinion: IPv6 should have been almost exactly the same as IPv4, but with more numbers and a clear path to do transparent IPv6 to IPv4 traffic without running dual stack (maybe a NAT?). IPv6 is too complex, error prone and unsupported to deploy without shooting yourself in the foot, even now, a few decades after introduction.

[–] rumba@lemmy.zip 14 points 8 hours ago (4 children)

That's a great analogy for carrier grade nat.

For regular nat it's like the pizza is able to get all the way to your house but then has no idea who to go to so somebody has to answer the door and then take the pizza from the door to the person who ordered it themselves.

And IPv6 is like the pizza delivery guy just walks right into the house up the steps into your bedroom and hands you the pizza directly.

The best part is they each have the same exact problems you'd have in real life.

[–] Blaster_M@lemmy.world 4 points 3 hours ago* (last edited 2 hours ago) (1 children)

Let me one up this. IPv4 NAT is like the pizza guy has to deliver to you, but you live in a gated community with a strict no visitors policy, which does not allow you to even mention what unit you're in, and none of the addresses in the community are registered with the post office or on Google Maps either. Instead, you tell the guardhouse you want to order, and they order the pizza for you. The pizza guy delivers to the guardhouse, and the guardhouse delivers the pizza to you.

IPv6 (with firewalling) is like a normal gated community, you order the pizza and include the unit number, and the delivery driver can deliver your pizza directly, as long as the guardhouse approves.

The difference is, with NAT, the guardhouse has to both guard (firewall) and route (keep track of all deliveries, and deliver) your packages, where with IPv6, the guardhouse (firewall) only has to guard (firewall) the packages.

[–] rumba@lemmy.zip 1 points 1 hour ago

Sounds good to me

[–] ulterno@programming.dev 2 points 3 hours ago (1 children)

Waiting for IPv8 when the delivery guy takes a slice and feeds it to me so I don't need to worry about greasy fingers.

[–] rumba@lemmy.zip 1 points 1 hour ago

Nah that's just ransomware

[–] squaresinger@lemmy.world 4 points 8 hours ago (1 children)

Perfect, perfect analogy. Like, seriously, I've hardly ever seen an analogy that works so flawlessly where even the implications just line up perfectly.

I am in awe.

[–] rothaine@lemmy.zip 3 points 8 hours ago (1 children)

Why are we eating pizza in the bedroom

[–] rumba@lemmy.zip 1 points 7 hours ago (1 children)

I was eating salad in my bedroom 2:30 in the morning today.

Me: Fuck, can't sleep I'm hungry. You want anything? Wife: yeah, fill up my water bottle and bring me something to eat.

I went downstairs, made two loaded salads and brought them up to the bedroom.

I might in fact be getting old.

[–] rothaine@lemmy.zip 3 points 7 hours ago

If you can eat a salad and then lay down without getting an explosion of acid reflux, maybe you aren't old yet 😂

[–] Tiger_Man_@lemmy.blahaj.zone 3 points 10 hours ago

Having multiple hosts under one address for all hosts is annoying. Port forwarding is annoying. Some isps have their own nat and want you to pay additionally for public ip address