An efficient IP address lookup algorithm based on a small balanced tree using entry reduction

Due to a tremendous increase in internet traffic, backbone routers must have the capability to forward massive incoming packets at several gigabits per second. IP address lookup is one of the most challenging tasks for high-speed packet forwarding. Some high-end routers have been implemented with hardware parallelism using ternary content addressable memory (TCAM). However, TCAM is much more expensive in terms of circuit complexity as well as power consumption. Therefore, efficient algorithmic solutions are essentially required to be implemented using network processors as low cost solutions. Among the state-of-the-art algorithms for IP address lookup, a binary search based on a balanced tree is effective in providing a low-cost solution. In order to construct a balanced search tree, the prefixes with the nesting relationship should be converted into completely disjointed prefixes. A leaf-pushing technique is very useful to eliminate the nesting relationship among prefixes [V. Srinivasan, G. Varghese, Fast address lookups using controlled prefix expansion, ACM Transactions on Computer Systems 17 (1) (1999) 1-40]. However, it creates duplicate prefixes, thus expanding the search tree. This paper proposes an efficient IP address lookup algorithm based on a small balanced tree using entry reduction. The leaf-pushing technique is used for creating the completely disjointed entries. In the leaf-pushed prefixes, there are numerous pairs of adjacent prefixes with similarities in prefix strings and output ports. The number of entries can be significantly reduced by the use of a new entry reduction method which merges pairs with these similar prefixes. After sorting the reduced disjointed entries, a small balanced tree is constructed with a very small node size. Based on this small balanced tree, a native binary search can be effectively used in address lookup issue. In addition, we propose a new multi-way search algorithm to improve a binary search for IPv4 address lookup. As a result, the proposed algorithms offer excellent lookup performance along with reduced memory requirements. Besides, these provide good scalability for large amounts of routing data and for the address migration toward IPv6. Using both various IPv4 and IPv6 routing data, the performance evaluation results demonstrate that the proposed algorithms have better performance in terms of lookup speed, memory requirement and scalability for the growth of entries and IPv6, as compared with other algorithms based on a binary search.

[1]  Lih-Chyau Wuu,et al.  A longest prefix first search tree for IP lookup , 2005, IEEE International Conference on Communications, 2005. ICC 2005. 2005.

[2]  Binary searches on multiple small trees for IP address lookup , 2005, IEEE Communications Letters.

[3]  Sartaj Sahni,et al.  Dynamic Tree Bitmap for IP Lookup and Update , 2007, Sixth International Conference on Networking (ICN'07).

[4]  Sartaj Sahni,et al.  Enhanced interval trees for dynamic IP router-tables , 2004, IEEE Transactions on Computers.

[5]  Yeim-Kuan Chang,et al.  Fast binary and multiway prefix searches for packet forwarding , 2007, Comput. Networks.

[6]  Kai Zheng,et al.  V6Gene: a scalable IPv6 prefix generator for route lookup algorithm benchmark , 2006, 20th International Conference on Advanced Information Networking and Applications - Volume 1 (AINA'06).

[7]  Sartaj Sahni,et al.  Efficient construction of multibit tries for IP lookup , 2003, TNET.

[8]  George Varghese,et al.  Network Algorithmics-An Interdisciplinary Approach to Designing Fast Networked Devices , 2004 .

[9]  George Varghese,et al.  Tree bitmap: hardware/software IP lookups with incremental updates , 2004, CCRV.

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

[11]  Hyesook Lim,et al.  Binary search in a balanced tree for IP address lookup , 2005, HPSR. 2005 Workshop on High Performance Switching and Routing, 2005..

[12]  Giuseppe Di Battista,et al.  26 Computer Networks , 2004 .

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

[14]  N. Yazdani,et al.  Fast and scalable schemes for the IP address lookup problem , 2000, ATM 2000. Proceedings of the IEEE Conference on High Performance Switching and Routing (Cat. No.00TH8485).

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

[16]  Laxmi N. Bhuyan,et al.  EaseCAM: an energy and storage efficient TCAM-based router architecture for IP lookup , 2005, IEEE Transactions on Computers.

[17]  Yiqiang Q. Zhao,et al.  An on-chip IP address lookup algorithm , 2005, IEEE Transactions on Computers.

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

[19]  Hyesook Lim,et al.  IP address lookup for internet routers using balanced binary search with prefix vector , 2009, IEEE Transactions on Communications.

[20]  Hung-Hsiang Jonathan Chao,et al.  Next generation routers , 2002, Proc. IEEE.

[21]  Gunnar Karlsson,et al.  IP-address lookup using LC-tries , 1999, IEEE J. Sel. Areas Commun..

[22]  Hyunjin Kim,et al.  A Fast IP Address Lookup Algorithm Based on Search Space Reduction , 2010, IEICE Trans. Commun..

[23]  Hyesook Lim,et al.  Efficient binary search for IP address lookup , 2005, IEEE Commun. Lett..

[24]  Walid Dabbous,et al.  Survey and taxonomy of IP address lookup algorithms , 2001, IEEE Netw..

[25]  Mehrdad Nourani,et al.  Hardware-based IP routing using partitioned lookup table , 2005, IEEE/ACM Transactions on Networking.

[26]  Hyesook Lim,et al.  Binary Search in a Balanced Tree for , 2005 .

[27]  Hyesook Lim,et al.  Priority Tries for IP Address Lookup , 2010, IEEE Transactions on Computers.