"Small Forwarding Tables for Fast Routing Lookups"
Mikael Degermark, Andrej Brodnik, Svante Carlsson, and Stephen Pink


Summary by Andy Reitz.
January 27th, 2000

 

Summary:
The purpose of this paper is to describe a method which achieves Gigabit-level routing performance using commodity processors. The Author's have recognized that one of the key bottlenecks in the routing of IP packets is the routing lookup. Thus, it is hoped that if this procedure can be heavily optimized in a clean and robust manner, that the way should be paved for Gigabit routing on the Internet.

Essentially, a routing lookup finds the nearest match to the destination address of a given IP packet, in the table of known routes (next hops). Before this paper, it was assumed this process was compute-intensive, and should be avoided at all costs. It is the intention of this paper to show that the impact of this process can be minimized, using the proper data structures.

To the authors, the proper data structure is one that is minimal in both size as well as the number of memory accesses required. The number of memory accesses should be kept low because each one incurs a large processor-cycle memory. Additionally, keeping the size of the data structure allows a larger portion of it to be cached in the processors internal caching hierarchy. Keeping the data in the processors cache can significantly increase performance.

In keeping with the theme of optimality, the authors also tried to code these data structures efficiently, such that the the smallest number of instructions are needed in order to create the data structure, as well as to perform lookups in it. By optimizing the performance from these two quarters (instruction complexity and data size), the authors show that the desired performance levels can be achieved from commodity processors.

 

Strengths Of This Design:

 

Weaknesses Of This Design: