5 ms·
A cache with a few billion devices in it will be too large, and as soon as your cache may be large enough you will have even more devices. Also, for routing an
by corty 6y ago
A cache with a few billion devices in it will be too large, and as soon as your cache may be large enough you will have even more devices.
Also, for routing an address hierarchy is nice because of the O(log n) properties the address tree gives you. UUIDs do not do that, but subnets do. For the endpoints and smaller routers near the edges it is even more advantageous, those only need to know a few local prefixes, the rest goes to the next gateway. With UUIDs, every devices needs to learn all the addresses behind it, quite an impossible task, even if the lookup were fast and small enough for its cache.
- JoeAltmaier 6y agoAgain, for core routers, not at all. The UUID is random; it has the same order of lookup or better; endpoints need only the local routing info in the same way. Caches need only hold active routes, which is orders of magnitude smaller. The idea that its 'impossible' is 20 year old thinking. That's my whole point. We've wandered into a disappointing, underpowered solution that's not gaining traction. While real future-proof solutions exist right in front of us.
- cesarb 6y ago> Caches need only hold active routes, which is orders of magnitude smaller. What do you do when there's no active route? If a router receives a packet from 192.0.2.1 to 198.51.100.2, but the router has never received a packet from 198.51.100.2, how does it know to which of its neighbors it should send the packet?
- JoeAltmaier 6y agoWe resolve arbitrary names (e.g. DNS) now, so clearly the solution is possible.
- cesarb 6y agoWe resolve arbitrary names with DNS to a global identifier (an IP address), but for routing, what you need is a local identifier (which neighbor router to send the packet to), which means every router or set of routers would need its own database, and each database would need to know about every host in the world. This is exactly what we have nowadays with BGP, only with networks instead of hosts: every core router or set of core routers has a database which knows about every network in the world, and tells which neighbor AS to send the packet to.
- corty 6y agoAlso, DNS caches are just locally used small subsets. Global lookups are again hierarchical, thats why it is called _domain_ name system. Thats why there are dots in the adresses. Also, DNS lookups are rare compared to IP route lookups, you look at DNS for every connection at most, limited by the TTL for caches. Route lookups happen for every packet.
- corty 6y agoIt doesn't, prefix lookup is solved faster and cheaper in hardware via CAM or TCAM, maybe combined with hashing, because you can limit yourself to a prefix, discarding the rest of the address. Even if you are right about the endpoints (which only need to know all devices in their specific subtree), as soon as you get to a part of the network where there is no longer just a limited tree below a given router hierarchically, you need a global view of all addresses. This view has to be current, correct and total. That is impossible to achieve, even if the lookup itself would work (which it won't, a conservative estimate of 4 billion active internet devices take up 64GB just for their addresses, not even including routes and metrics). You just cannot search those 64GB fast enough for each packet you are passing through your links (remember, even saturating 10GE in software is hard, and routers do have a lot of those ports in 40 or 100GE...).
- JoeAltmaier 6y agoNobody suggests 'just searching' 64GB (which is not an unreasonable amount of memory today for a core router). Associative lookup is required, as is the case today. Nothing very new is required to create even larger (hashed) associative memories to manage this problem.
- JoeAltmaier 6y agoReally? Can no one else conceive of this? How about, 1M associative memories of 64K, addressed by the 1st 20 bits of the UUID?
- icedchai 6y agoEven if it's possible, what's the point? IPv6 is available now. I've been running it without issue for over a decade.
- JoeAltmaier 6y agoExcept for the long list of 'usual' issues. Allocation, regulation, duplicate IDs, spoofing, and on and on.