Fast and scalable schemes for the IP address lookup problem

Routers forward a packet based on the packet destination address. To do this, they must find the longest matching prefix with the packet destination address in the IP lookup tables. Expanding the size of the global network increases the size of the lookup tables. Increasing the communication line speed reduces the processing and search time since the packets must be switched at wire speed. This implies that the forwarding engines need more efficient IP lookup techniques. We believe the fundamental issue preventing applying the usual tree structures such as m-way trees to the IP lookup problem is the lack of a systematic method to compare and sort strings of different lengths when some of them are prefixes of others. Therefore, a simple scheme for comparing and sorting IP address prefixes is first introduced. Then, we manipulate the prefix data and tune the well known data structures in order to apply them to the IP lookup problem. We propose a binary prefix tree and devise procedures to sort the prefixes and build the index structure. It uses O(N) memory space and works well for the longest prefix matching problem. The binary search tree is extended to m-way trees in order to get better search performance in the next steps. Two versions of m-way trees are proposed, a static m-way prefix tree and a dynamic m-way prefix tree. The first one is more suitable for an environment with lower transaction and expected to give better memory usage and more compact tree structure. The later one, the dynamic m-way prefix tree, is built bottom up like the B-tree and is more suitable for an environment with higher transactions. All data structures share a common property that no data prefix can be in a higher level than its prefix(es). We believe the proposed schemes are simple, well defined, easy to implement in hardware or software and scalable compared to the previously proposed methods while having efficient memory usage and search performance.

[1]  Ross W. Callon,et al.  Evolution of multiprotocol label switching , 1998, IEEE Commun. Mag..

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

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

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

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

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

[7]  Stefan Nilsson,et al.  Implementing a Dynamic Compressed Trie , 1998, WAE.

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

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

[10]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

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

[12]  Tzi-cker Chiueh,et al.  High-performance IP routing table lookup using CPU caching , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).