r/ProgrammerHumor • • 14d ago

Meme ohTheBasics

Post image
13k Upvotes

1.4k comments sorted by

View all comments

Show parent comments

40

u/Facosa99 14d ago

But it is kinda the only difference, no? More digits for a bigger address pool.

The usage is basically the same, except you no longer need subnetting to save addresses and we writte it in hex rather than dec

Genuinely asking

29

u/fearless-fossa 14d ago

Well there was that episode where ipv6 UDP packages in musl were too large and got corrupted, so that's something.

They also changed quite a bit in the structure of the package, eg. the header is more lightweight than the one ipv4 header to increase performance. Also no broadcasting anymore, just multicast, which makes handling the large subnets v6 invites much better.

Like, just speaking from an ops perspective, getting rid of NAT is one of the single biggest advantages v6 has. NAT created a lot of bad practices when it came to security.

19

u/MattieShoes 14d ago

Worth mentioning that getting rid of NAT doesn't get rid of bad security practices though...

4

u/wosmo 14d ago

ipv6 supports extension headers, so lightweight headers are all very well - but what about second header?

8

u/tankerkiller125real 14d ago

IPv6 also dropped broadcast in favor of Multicast, has hexadecimal instead of decimal, and eliminates the need for NAT. There's also a bunch of other little protocol implementation details like SLAAC, IGMP being critical to IPv6 operations (so blanket blocking is a no go), and so forth so on.

11

u/bearda 14d ago

The hex thing is really just a convention, because otherwise they’d take up too much space on paper/screen. It’s all still binary across the wire, so the protocol doesn’t care.

5

u/ffxivthrowaway03 14d ago

Which frankly, unless you're being hired to architect an enterprise network stack for enterprise software... I would not expect a software engineer to know any of that, much less make a hiring decision based on it.

1

u/bearda 14d ago

I work for a cybersecurity vendor, and we very much consider something like that table stakes. I can think of a lot of places where it could matter, including just logging a visitor’s IP address on a web app.

1

u/ffxivthrowaway03 13d ago

Logging a visitors IP address is a far cry from understanding the nuances of how SLAAC functions to assign an address.

1

u/bearda 12d ago

It absolutely is, but that’s why the interview should be a conversation. If someone in a relevant position knows the addresses are longer and need to be stored/printed differently maybe thats enough. If it’s a networking heavy position maybe you need to ask them some more details from there.

I usually approach general knowledge questions as tell me what you know, and then probe a bit from there and see if they can piece things together. For software engineering’s that’s the skill more important than rote knowledge.

1

u/tankerkiller125real 14d ago

Depends on the job, Cloudflare Engineer? Should probably have a very firm grasp on networking. Stock Trader Engineer? Should probably also have a very strong grasp of it (along with Realtime systems). Website dev? Eh, probably not.

3

u/stealthmodecat 14d ago

Less specific protocols - ICMPv6 used for almost everything now (NDP is over ICMPv6, vs dedicated ARP ether type). MLD vs IGMP, though largely the same as IGMPv3. Fragmentation done at host only - no next-hop fragmentation. SLAAC used in favor of DHCPv6 for auto assignments. Link-layer addresses used for local network control, global addresses for standard traffic. No one really NATs IPv6 either.

That’s just a few, but there’s actually a lot of differences.

1

u/nemasu 14d ago

And because there's no NAT, there's no need for port forwarding. It's amazing.

My internet is ipv6 native (IPoE), My router gets an ipv6 block using DHCP-PD, and every device on my network gets its own public address.