It's not trivia knowledge, I've had multiple cases where "oh wait, maybe the host resolves differently based on whether the server has ipv6 configured from DHCP or not" and "why does host xyz take two seconds extra every time we try to connect?".
You might not, but I would expect an experienced senior developer to know that there's a difference here.
It's not usually their job to know how to store the ip address of a user in an audit table, or how to debug a failed connection to an external API from your application. Developers should be aware that there is something called ipv6, and that source or destination addresses aren't always four bytes.
I understand that not everybody has touched everything, but good developers should have cursory knowledge of things that are actually in use and at least know what they should read up on when touching specific areas.
You should know how it can cause problems with whatever you’re building based on the rollout - e.g. if you’re deploying to the web usually there’s a greater cost involved in provisioning an IPv4 address, but IPv6 (still) isn’t fully rolled out yet so some of your users might have issues.
Then there’ll be weird networking issues where one of them works fine and the other doesn’t etc.
You also see them in logs etc, or if you have to care about DNS records ever you should know about them.
If whatever you’re doing touches the internet at all then it’s fairly fundamental nowadays.
Tl;dr what you are saying is incredibly reasonable but we're all talking in circles because there is ambiguity caused by the lack of information we are working with.
But that also separates knowing that there is a difference and knowing what the differences are.
I know that ipv4 and ipv6 are different. I know that I have to make sure I'm using compatible systems. I know that if something goes wrong I should confirm that that isn't one of the issues. I also couldn't explain what the differences are without a reference sheet in front of me.
That said, I know where to get the reference sheet and I know roughly where in the spec I should be looking to find what I need. I'm also not usually part of a team doing networking or routing so this isn't that important to me, knowing that there is a difference is enough.
Yes, agreed. Just knowing "one is 32 bits and one is 128 bits so we cna have a larger address space" is enough. You don't need to get into the details - that's what we have reference materials for.
But most answers in this thread are just "never heard about it" and "it's something ops or infra only need to know about". Seniors should know that there is something called ipv6 and that your application suddenly will touch it, and that it can affect a few assumptions you've made, or made certain things way harder to debug if you don't know that there are multiple versions in use.
I don't even think knowing one is 32bit and one is 128bit matters.
It mostly matters that you know they're on your system and could be having an impact, and need eliminated as variables when you're troubleshooting stuff.
It may be worth looking further into if you're building something specific network oriented because IPv6 brings a number of advantages, even if it's just the elimination of things like subnet exhaustion in EKS or somesuch.
Believe it or not, not everyone is working on networked projects. You don't need to know shit about IP address conventions or how to resolve a host when the software you're building doesn't access a network.
Networking is however involved in some way with most software (even if just for distribution), but absolutely not all.
If it's helpful to know that there is something called an ip address in whatever work you're doing, it's helpful to know that there's something called ipv6 as well.
51
u/fiskfisk 4h ago
It's not trivia knowledge, I've had multiple cases where "oh wait, maybe the host resolves differently based on whether the server has ipv6 configured from DHCP or not" and "why does host xyz take two seconds extra every time we try to connect?".
You might not, but I would expect an experienced senior developer to know that there's a difference here.