it would obviously involve code updates for compability, and I don’t pretend to know how it would work long term, but it makes the most sense… By prepending the zeros, you expand the number of networks dramatically.
I would guess that no matter what, everything gets an upgrade… But I think this might make it more seamless.
Basically people see an address like fdec:46f7:9b7f:1::3:20 and run screaming away about the complexity, seeing the address as a comprehensive indication of complexity, even though the real challenges lie underneath.
The whole ‘traditional ipv4 just has 0.0.0.0’ stuck in front of it is essentially exactly the same idea as, say 64:ff9b::142.251.152.119. Now there’s also the likes of ffff::142.251.152.119 but that’s just so software can pretend to speak IPv6 when the OS is really doing only IPv4. So they needed another prefix to indicate the network doing the v6 to v4 translation instead of the OS.
Anyway, the thing is that while it cosmetically looks more similar, it’s not really solving the fundamental compatibility situation. It just “looks nicer” because it sticks to dotted decimals. However in practice, would fdec:46f7:9b7f:1::3:20 really be somehow less usable than, say, 120.30.204.78.167.144.120.209? The simple reality is that the 4 octet decimal pushed human usability enough as it was, and going to sufficient octets just brings it out of mere mortal reach. If you did want to say have more friendly local network addresses (the vast vast majority of human memorized IP addresses), then technically you could have fd::1, fd::2, fd::3, and those would all work and be super easy to remember (the ULA RFC says you are supposed to toss in 40 bits of random for good reason, but if you were using 10.0.0.1 style addresses, you would be no worse off with fd::1, fd::2, etc). You can even trivially have them live alongside ‘real’ global IP addresses, but ignore them whenever you want to just hand type a local IP address. You can even have something like a hex DNS. fd::f00d, fd::beef, fd::d00d, and so many more for your pleasure.
There’s more features in IPv6 but you can ignore them since they are mostly for the machines to wrangle (the fe80:: addresses for example).
That’s not how header backward compatibility works. IPv4 routers would discard the packet, not prepend zeroes.
it would obviously involve code updates for compability, and I don’t pretend to know how it would work long term, but it makes the most sense… By prepending the zeros, you expand the number of networks dramatically.
I would guess that no matter what, everything gets an upgrade… But I think this might make it more seamless.
Everyone seems to think that IPv6 is a complicated solution to a simple problem, it’s not. If you want to learn more, I managed to track down an article I read a while ago from one of the original IPng engineers. https://github.com/becarpenter/book6/blob/main/01. Introduction and Foreword/Why IPv6 is so complicated.md
we both thought of the same article haha
Basically people see an address like fdec:46f7:9b7f:1::3:20 and run screaming away about the complexity, seeing the address as a comprehensive indication of complexity, even though the real challenges lie underneath.
The whole ‘traditional ipv4 just has 0.0.0.0’ stuck in front of it is essentially exactly the same idea as, say 64:ff9b::142.251.152.119. Now there’s also the likes of ffff::142.251.152.119 but that’s just so software can pretend to speak IPv6 when the OS is really doing only IPv4. So they needed another prefix to indicate the network doing the v6 to v4 translation instead of the OS.
Anyway, the thing is that while it cosmetically looks more similar, it’s not really solving the fundamental compatibility situation. It just “looks nicer” because it sticks to dotted decimals. However in practice, would fdec:46f7:9b7f:1::3:20 really be somehow less usable than, say, 120.30.204.78.167.144.120.209? The simple reality is that the 4 octet decimal pushed human usability enough as it was, and going to sufficient octets just brings it out of mere mortal reach. If you did want to say have more friendly local network addresses (the vast vast majority of human memorized IP addresses), then technically you could have fd::1, fd::2, fd::3, and those would all work and be super easy to remember (the ULA RFC says you are supposed to toss in 40 bits of random for good reason, but if you were using 10.0.0.1 style addresses, you would be no worse off with fd::1, fd::2, etc). You can even trivially have them live alongside ‘real’ global IP addresses, but ignore them whenever you want to just hand type a local IP address. You can even have something like a hex DNS. fd::f00d, fd::beef, fd::d00d, and so many more for your pleasure.
There’s more features in IPv6 but you can ignore them since they are mostly for the machines to wrangle (the fe80:: addresses for example).