Fast address lookups using controlled prefix expansion
- 1 February 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 17 (1) , 1-40
- https://doi.org/10.1145/296502.296503
Abstract
Internet (IP) address lookup is a major bottleneck in high-performance routers. IP address lookup is challenging because it requires a longest matching prefix lookup. It is compounded by increasing routing table sizes, increased traffic, higher-speed links, and the migration to 128-bit IPv6 addresses. We describe how IP lookups and updates can be made faster using a set of of transformation techniques. Our main technique, controlled prefix expansion , transforms a set of prefixes into an equivalent set with fewer prefix lengths. In addition, we use optimization techniques based on dynamic programming, and local transformations of data structures to improve cache behavior. When applied to trie search, our techniques provide a range of algorithms ( Expanded Tries ) whose performance can be tuned. For example, using a processor with 1MB of L2 cache, search of the MaeEast database containing 38000 prefixes can be done in 3 L2 cache accesses. On a 300MHz Pentium II which takes 4 cycles for accessing the first word of the L2 cacheline, this algorithm has a worst-case search time of 180 nsec., a worst-case insert/delete time of 2.5 msec., and an average insert/delete time of 4 usec. Expanded tries provide faster search and faster insert/delete times than earlier lookup algirthms. When applied to Binary Search on Levels, our techniques improve worst-case search times by nearly a factor of 2 (using twice as much storage) for the MaeEast database. Our approach to algorithm design is based on measurements using the VTune tool on a Pentium to obtain dynamic clock cycle counts. Our techniques also apply to similar address lookup problems in other network protocols.Keywords
This publication has 8 references indexed in Scilit:
- Cisco Systems' Tag Switching Architecture OverviewPublished by RFC Editor ,1997
- Tiny Tera: a packet switch coreIEEE Micro, 1997
- Efficient fair queuing using deficit round-robinIEEE/ACM Transactions on Networking, 1996
- Trading packet headers for packet processingIEEE/ACM Transactions on Networking, 1996
- Internet Protocol, Version 6 (IPv6) SpecificationPublished by RFC Editor ,1995
- A Border Gateway Protocol 4 (BGP-4)Published by RFC Editor ,1995
- OpenVMS AXP PALcode Instruction Descriptions (II–A)Published by Elsevier ,1995
- An Architecture for IP Address Allocation with CIDRPublished by RFC Editor ,1993