3 ms·
> Why didn't the original group simply expand the size of the numbers in the address quads? Almost all fields in IP header have fixed size - so it doesn't real
by Epuineeb5 4y ago
> Why didn't the original group simply expand the size of the numbers in the address quads?
Almost all fields in IP header have fixed size - so it doesn't really matter that you just change address size - it is already a new and incompatible protocol.
And adoption of IPv6 wasn’t so slow due to its design or any technical properties. Simply no one wanted to do additional work as long as supporting only IPv4 worked fine.
- AtlasBarfed 4y agoBut IPV6 always had an "Internet2" vibe to it between dual stacks, different syntax/separator, hostility towards NAT firewalls. Like they wanted to be completely separate and force everyone to move to them. And this is back in the day when another stack meant another hunk of infrastructure, probably new switches, etc, not just a bunch of VMs allocated via API in IaaS. As in they didn't even seem to consider that maybe you adapt the existing IPV4 code to some form that can handle both protocols. It seemed like they wanted to force total software rewrites and hardware purchases all over the stack. I mean look, one if-then to identify the packet type is not that bad. Or simply have the ipv4 as the first part and the wrapped packet has another 128-256 addressing bytes.
- Dagger2 4y agoNo such thing as a "NAT firewall"... and v6 was designed this way because nothing else really works. Almost all existing code that was written to handle v4 was written to handle addresses of exactly 32 bits, not addresses of arbitrary length. Longer addresses therefore required writing new code to handle them. v6 is close enough to v4 that you can write code that can handle both families, but neither the existing code or the new code was under the control of the people designing v6. You use dual stack because it's maximally compatible with existing devices and code. There are plenty of ways to run single-stack v6 if you want to, but they all have some compatibility issue or another (and the compatibility issues stem from the way v4 was designed, not the way v6 was designed). v6 addresses use : rather than . because they could otherwise be confused with DNS. For example, a string ending in ".be" could have been a v6 address or a subdomain of the .be ccTLD. IP packets do start out with a version field, so your "one if-then to identify the packet type" requirement is exactly what v6 already does. > Or simply have the ipv4 as the first part and the wrapped packet has another 128-256 addressing bytes. You've invented 6to4. It already exists, but people seem to prefer native.