3 ms·
It was really not enough. Remember that the IP layer exists for the purpose of routing and aggregation. Instead of tracking the current location of every machi
by Dagger2 5y ago
It was really not enough.
Remember that the IP layer exists for the purpose of routing and aggregation. Instead of tracking the current location of every machine on the planet, we bundle them into networks, and then bundle those networks together, and then bundle those bundles together too, and so on. There are maybe something like 10 billion devices that are either on the internet or that want to be on it, but with all the aggregation we're only tracking about a million routes at the global level.
This aggregation is critical for allowing the internet to scale to planetary size... but it also results in the vast majority of the addresses in the address space not being assigned to any end machine. In other words, having N in-use addresses needs a lot more than log_2(N) bits of address space.
There's likely to be less than 2^64 devices on the internet in the long run, so if we could assign one address to each of them and not have to worry about routing table sizes, then a 64-bit address space probably would be enough. But that doesn't describe IP addresses... it describes MAC addresses. And MAC addresses are in fact 64 bits long for new L2 protocols today.
Since L3 needs aggregation, which results in most L3 addresses being unused, it follows that we need more than 64 bits of L3 address space to handle the 2^64 devices that the 64-bit L2 addresses can handle.