Internet address lookup is a challenging problem because of increasing routing table sizes, increased traffic, higher speed links, and the migration to 128 bit IPv6 addresses. IP routing lookup requires computing the best matching prefix, for which standard solutions like hashing were believed to be inapplicable. The best existing solution we know of, BSD radix tries, scales badly as IP moves to 128 bit addresses, Our paper describes a new algorithm for best matching prefx using binary search on hash tables organized by prefix lengths. Our scheme scales very well as address and routing table sizes increase: independent of the table size, it requires a worst case time of log~(address bits) hash lookups. Thus only 5 hash lookups are needed for IPv4 and 7 for IPv6. We also introduce Mutating Binary Search and other optimizations that, for a typical IPv4 backbone router with over 33,000 entries, considerably reduce the average number of hashes to less than 2, of which one hash can be simplilied to an indexed array access. We expect similar average case behavior for IPv6.
Waldvogel et al. REF propose an algorithm of obtaining the best matching IP prefix through a binary search on a routing table organized by prefix lengths.
Scalable high speed IP routing lookups
SIGCOMM '97
Computer Science