Scalable high speed IP routing lookups

  • Authors:
  • Marcel Waldvogel;George Varghese;Jon Turner;Bernhard Plattner

  • Affiliations:
  • Computer Engineering and Networks Laboratory, ETH Zürich, Switzerland;Computer and Communications Research Center, Washington University, St. Louis;Computer and Communications Research Center, Washington University, St. Louis;Computer Engineering and Networks Laboratory, ETH Zürich, Switzerland

  • Venue:
  • SIGCOMM '97 Proceedings of the ACM SIGCOMM '97 conference on Applications, technologies, architectures, and protocols for computer communication
  • Year:
  • 1997

Quantified Score

Hi-index 0.02

Visualization

Abstract

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 prefix 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 log2(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 simplified to an indexed array access. We expect similar average case behavior for IPv6.