IP lookups using multiway and multicolumn search

IP address lookup is becoming critical because of increasing routing table sizes, speed, and traffic in the Internet. Given a set S of prefixes and an IP address D, the IP address lookup problem is to find the longest matching prefix of D in set S. This paper shows how binary search can be adapted for solving the best-matching prefix problem. Next, we show how to improve the performance of any best-matching prefix scheme using an initial array indexed by the first X bits of the address. We then describe how to take advantage of cache line size to do a multiway search with six-way branching. Finally, we show how to extend the binary search solution and the multiway search solution for IPv6. For a database of N prefixes with address length W, naive binary search would take O(W*log N); we show how to reduce this to O(W+log N) using multiple-column binary search. Measurements using a practical (Mae-East) database of 38000 entries yield a worst-case lookup time of 490 ns, five times faster than the Patricia trie scheme used in BSD UNIX. Our scheme is attractive for IPv6 because of its small storage requirement (2N nodes) and speed (estimated worst case of 7 cache line reads per lookup).

[1]  Svante Carlsson,et al.  Small forwarding tables for fast routing lookups , 1997, SIGCOMM '97.

[2]  Dino Farinacci,et al.  Tag switching architecture overview : Global information infrastructure , 1997 .

[3]  Nick McKeown,et al.  Routing lookups in hardware at memory access speeds , 1998, Proceedings. IEEE INFOCOM '98, the Conference on Computer Communications. Seventeenth Annual Joint Conference of the IEEE Computer and Communications Societies. Gateway to the 21st Century (Cat. No.98.

[4]  Stephen E. Deering,et al.  Internet Protocol, Version 6 (IPv6) Specification , 1995, RFC.

[5]  Dave Katz,et al.  Cisco Systems' Tag Switching Architecture Overview , 1997, RFC.

[6]  Jonathan S. Turner,et al.  Design of a gigabit ATM switch , 1997, Proceedings of INFOCOM '97.

[7]  Richard L. Sites,et al.  Alpha AXP architecture reference manual , 1995 .

[8]  C. Zukowski,et al.  Putting routing tables in silicon , 1992, IEEE Network.

[9]  W.M. Seifert Bridges and routers , 1988, IEEE Network.

[10]  Radia Perlman Interconnections: Bridges and Routers , 1992 .

[11]  George Varghese,et al.  Trading packet headers for packet processing , 1995, SIGCOMM '95.

[12]  Andrew J. T. Colin,et al.  The Implementation , 1972, Softw. Pract. Exp..

[13]  Bernhard Plattner,et al.  Scalable high speed IP routing lookups , 1997, SIGCOMM '97.

[14]  G. Parulkar,et al.  Strategy for Integrating IP with ATM , 1995 .

[15]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[16]  George Varghese,et al.  Faster IP lookups using controlled prefix expansion , 1998, SIGMETRICS '98/PERFORMANCE '98.

[17]  W. Richard Stevens,et al.  TCP/IP Illustrated, Volume 2: The Implementation , 1995 .

[18]  Farnam Jahanian,et al.  Internet routing instability , 1997, SIGCOMM '97.

[19]  Peter Newman,et al.  IP switching and gigabit routers , 1997, IEEE Commun. Mag..

[20]  Nick McKeown,et al.  The Tiny Tera: A Packet Switch Core , 1998, IEEE Micro.

[21]  David A. Patterson,et al.  Computer architecture (2nd ed.): a quantitative approach , 1996 .

[22]  David Waitzman,et al.  A 50-Gb/s IP router , 1998, TNET.

[23]  V. Srinivasan,et al.  Fast address lookups using controlled prefix expansion , 1999, TOCS.

[24]  Christian Huitema,et al.  IPv6--the new Internet protocol , 1996 .

[25]  Gunnar Karlsson,et al.  Fast address look-up for internet routers , 1998, Broadband Communications.

[26]  David A. Patterson,et al.  Computer Architecture - A Quantitative Approach, 5th Edition , 1996 .

[27]  Douglas C. Schmidt,et al.  aItPm: a strategy for integrating IP with ATM , 1995, SIGCOMM '95.