IP-address lookup using LC-tries

There has been a notable interest in the organization of routing information to enable fast lookup of IP addresses. The interest is primarily motivated by the goal of building multigigabit routers for the Internet, without having to rely on multilayer switching techniques. We address this problem by using an LC-trie, a trie structure with combined path and level compression. This data structure enables us to build efficient, compact, and easily searchable implementations of an IP-routing table. The structure can store both unicast and multicast addresses with the same average search times. The search depth increases as /spl Theta/(log log n) with the number of entries in the table for a large class of distributions, and it is independent of the length of the addresses. A node in the trie can be coded with four bytes. Only the size of the base vector, which contains the search strings, grows linearly with the length of the addresses when extended from 4 to 16 bytes, as mandated by the shift from IP version 4 to IP version 6. We present the basic structure as well as an adaptive version that roughly doubles the number of lookups/s. More general classifications of packets that are needed for link sharing, quality-of-service provisioning, and multicast and multipath routing are also discussed. Our experimental results compare favorably with those reported previously in the research literature.

[1]  Arne Andersson,et al.  Improved Behaviour of Tries by Adaptive Branching , 1993, Inf. Process. Lett..

[2]  Andreas Moestedt,et al.  Lookup in Hardware for High-Speed Routing , 1998 .

[3]  Arne Andersson,et al.  Implementing radixsort , 1998, JEAL.

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

[5]  Van Jacobson,et al.  Link-sharing and resource management models for packet networks , 1995, TNET.

[6]  Jon Louis Bentley,et al.  Engineering a sort function , 1993, Softw. Pract. Exp..

[7]  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.

[8]  Keith Sklower,et al.  A Tree-Based Packet Routing Table for Berkeley Unix , 1991, USENIX Winter.

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

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

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

[12]  Philippe Jacquet,et al.  Limiting Distribution for the Depth in Patricia Tries , 1993, SIAM J. Discret. Math..

[13]  Vince Fuller,et al.  Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy , 1993, RFC.

[14]  Günter Karjoth,et al.  Routing on longest-matching prefixes , 1996, TNET.

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

[16]  E. Gustafsson,et al.  A literature survey on traffic dispersion , 1997 .

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

[18]  Gaston H. Gonnet,et al.  Handbook Of Algorithms And Data Structures , 1984 .

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

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

[21]  Edward Fredkin,et al.  Trie memory , 1960, Commun. ACM.

[22]  Butler W. Lampson,et al.  IP lookups using multiway and multicolumn search , 1999, TNET.

[23]  Arne Andersson,et al.  Faster Searching in Tries and Quadtrees - An Analysis of Level Compression , 1994, ESA.

[24]  Roya Ulrich,et al.  Broadband Communications: The future of telecommunications , 1998 .