An IPv6 address lookup algorithm based on recursive balanced multi-way range trees with efficient search and update

Internet routers forward packets based on the destination address of the packet. A packet's address is matched against the destination prefixes stored in the router forwarding table, and the packet is sent to the output interface determined by the Longest Matching Prefix (LMP). Internet migration from IPv4 to IPv6 has introduced more challenge to IP address lookup problem. Nowadays, there are some existing address lookup algorithms working well for IPv4 addresses, however, none of the current schemes scales well to IPv6 both in lookup and update speed. As IPv6 uses 128 bit addresses, schemes whose lookup time grows with address length, such as patricia or multi- bit tries, become less attractive. In this paper, we propose a new IP lookup scheme with worst case search and update time of O(logN), where N is the number of prefixes in the forwarding table. Since the lookup and updates are irrelevant from IP address length, this scheme is promising for IPv6. This scheme is based on a novel data structure, called recursive balanced multi-way range trees, which is able to achieve the optimal lookup time of binary search, and can also be updated in logarithmic time when a prefix is added or deleted. Intensive experiments have been done to evaluate the proposed algorithm. The results show that our scheme outperforms all existing schemes in terms of search and update speed. Moreover, our scheme has small storage requirement (2N nodes), which also suggests that the proposed algorithm is a promising approach for IPv6 address lookup.