Algorithms and data structures for IP lookups
The problem of optimizing access mechanisms for IP routing tables is an important and well studied one. Several techniques have been proposed for structuring and managing routing tables, with special emphasis on backbone; high-throughput routing. Trie-based data structures have emerged as the most promising alternative, due to their efficiency, their conceptual simplicity and their adaptability to changes in the Internet Protocol and implementation details of the routing procedure. In this thesis, we present three optimization methods for trie-based routing. The first generalizes the well known level compression (LC) method so that all available memory of a router can be utilized to lower the average lookup time in an LC trie. This is the first method for generalized LC tries for which there exists an established performance bound. The second method reorganizes an LC trie into a directed acyclic graph (DAG) with a view to packing trie parts together and further reducing depth. Our experiments with actual Internet backbone routing tables and a combination of the above two techniques show that the performance of LC tries can be improved by up to 25% using only 1% memory space in excess of that used by the original routing table. Finally, we study the effect of caching on the access time for tries. We show that Least Recently Used (LRU) caching can be used to accelerate trie lookups, with the use of intelligent main memory placement techniques. We prove that partitioning a trie to minimize the expected number of distinct cache lines accessed during a lookup optimizes the hit ratio of an LRU cache for an important class of memory placement techniques. We describe the optimal cache replacement policy/memory placement technique for trie lookups and show experimentally that LRU caching can be used to obtain performance close to the optimal, with much lower development and deployment cost for memory systems of network processors. ^
Major Professor: Ananth Grama, Purdue University.