4 ms·
> IPv6 was the smallest possible change to fix the problem Really? Going from a 32 bit addressing scheme to 33 bits would double the amount of addresses, pushi
by mprovost 14y ago
> IPv6 was the smallest possible change to fix the problem
Really? Going from a 32 bit addressing scheme to 33 bits would double the amount of addresses, pushing the problem a way down the track. Sticking to octets for simplicity, going to 40 bit addressing (five octets) would provide as many addresses as we need for the near future. But they went for 128 bit addressing with IPv6 - I fail to see how that was the smallest change that they could have made.
Making it backwards compatible with v4 would have been an even smaller change and we'd probably be using it by now if they hadn't broken compatibility.
And how was picking an address size that didn't match up to the native integer size of any common CPU good for performance? Maybe they expected us all to be running 128 bit CPUs by now.
- grandinj 14y agoYeah, IPv6 is a great example of Second System Syndrome.
- Zash 14y agoBut, the only real change is the larger address space. And some rarely used features of IPv4 were removed. How is that 2nd system syndrome?
- tptacek 14y agoThey increased the address space in the most disruptive possible way. They could have defined a 64 bit address space and an escape hatch/upgrade path in the extraordinarily unlikely event that we ran out of addresses --- you could allocate a static IP address to every email sent in 2012, spam included, and still consume only 0.0003% of a 64 bit address space. You could address every page in Google's index in 0.00000005% of that address space. In a 64 bit addressing scheme, IP addresses would remain scalar integers in the vast majority of programming environments used on the Internet (and where they aren't scalars, 128 bit addresses are even worse!). Instead, we have to forklift out not just the code that bakes in 32 bits as the width of an address, but also all the code built on the assumption that addresses are numbers you can compute with.
- Zash 14y agoHow would you define an "escape hatch" without replacing every device on the planet? And IPv6 is really a 64 bit addressing scheme already. 64 bits for the network, and another 64 bits for the host within that network. The later part can be ignored by routers outside of the target network.
- josteink 14y agoIf you're going to break compatibility by changing the fundamental address-size anyway, what does it matter if you future proof it by a factor of 256 or something ginormeous so that we wont have to go down this road again ten years from now?
- tptacek 14y agoBecause the difference between a 64 bit integer (which would also have been future-proofed for the current IP service model) and a 128 bit integer is not simply 8 more bytes, but also the fact that all modern non-MCU computers can treat a 64 bit integer as a scalar, but are effectively forced to handle a 128 bit integer as a string or a structure of some sort. This can be the difference between a 1-line patch to a C program and a 30 line patch. Of course, the standards committees don't care about that cost (it is an externality to them), because "rough consensus and working code" stopped being the code of the IETF more than a decade ago.
- yuhong 14y agoAFAIK IPv6 originally became a RFC back in 1995.
- belorn 14y agoOne could always try rewriting IPv6 into a ipv4 extension as rfc1726 hint that some IP versions could be done, and then use the original ipv4 part as backward compatibility data, pointing towards a ipv4-ipv6 gateway. On the upside, it would be cooperative with the current ipv6 work. I do not know if such attempts has been made or considered, or if its would be easier than the current approach.
- dennisgorelik 14y agoFrom IP address spam prevention perspective 40 bit addressing would be optimal: it would give enough IP addresses for everyone for comfortable use, but at the same time would make make IP addresses more expensive than zero (so it would be hard to simply use new IP address for every spam request). 40 bit address is also still possible to memorize (unlike 128 bit address).