TCP/IP illustrated (vol. 2): the implementation
TCP/IP illustrated (vol. 2): the implementation
Small forwarding tables for fast routing lookups
SIGCOMM '97 Proceedings of the ACM SIGCOMM '97 conference on Applications, technologies, architectures, and protocols for computer communication
Scalable high speed IP routing lookups
SIGCOMM '97 Proceedings of the ACM SIGCOMM '97 conference on Applications, technologies, architectures, and protocols for computer communication
Faster IP lookups using controlled prefix expansion
SIGMETRICS '98/PERFORMANCE '98 Proceedings of the 1998 ACM SIGMETRICS joint international conference on Measurement and modeling of computer systems
IEEE/ACM Transactions on Networking (TON)
IP switching and gigabit routers
IEEE Communications Magazine
Performance modeling for fast IP lookups
Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Scalable high-speed prefix matching
ACM Transactions on Computer Systems (TOCS)
A simple and scalable algorithm for the IP address lookup problem
Fundamenta Informaticae - Special issue on computing patterns in strings
Fast prefix matching of bounded strings
Journal of Experimental Algorithmics (JEA)
Tree bitmap: hardware/software IP lookups with incremental updates
ACM SIGCOMM Computer Communication Review
Adaptive data structures for IP lookups
Journal of Experimental Algorithmics (JEA)
Fast incremental updates for pipelined forwarding engines
IEEE/ACM Transactions on Networking (TON)
Efficient IP table lookup via adaptive stratified trees with selective reconstructions
Journal of Experimental Algorithmics (JEA)
Compressed data structures: Dictionaries and data-aware measures
Theoretical Computer Science
Efficient Prefix Updates for IP Router Using Lexicographic Ordering and Updatable Address Set
IEEE Transactions on Computers
Frugal IP lookup based on a parallel search
HPSR'09 Proceedings of the 15th international conference on High Performance Switching and Routing
XOR-based schemes for fast parallel IP lookups
CIAC'03 Proceedings of the 5th Italian conference on Algorithms and complexity
Experimental evaluations of algorithms for IP table minimization
WEA'07 Proceedings of the 6th international conference on Experimental algorithms
Distilling router data analysis for faster and simpler dynamic IP lookup algorithms
WEA'05 Proceedings of the 4th international conference on Experimental and Efficient Algorithms
A Simple and Scalable Algorithm for the IP Address Lookup Problem
Fundamenta Informaticae - Computing Patterns in Strings
Hi-index | 0.00 |
The IP address lookup problem is one of the major bottlenecks in high performance routers. Previous solutions to this problem first describe it in the general terms of longest prefix matching and, then, are experimented on real routing tables T. In this paper, we follow the opposite direction. We start out from the experimental analysis of real data and, based upon our findings, we provide a new and simple solution to the IP address lookup problem. More precisely, our solution for m-bit IP addresses is a reasonable trade-off between performing a binary search on T with O(log |T|) accesses, where |T| is the number of entries in T, and executing a single access on a table of 2m entries obtained by fully expanding T. While the previous results start out from space-efficient data structures and aim at lowering the O(log |T|) access cost, we start out from the expanded table with 2m entries and aim at compressing it without an excessive increase in the number of accesses. Our algorithm takes exactly three memory accesses and occupies O(2m/2 + |T|2) space in the worst case. Experiments on real routing tables for m = 32 show that the space bound is overly pessimistic. Our solution occupies approximately one megabyte for the MaeEast routing table (which has |T| 驴 44; 000 and requires approximately 250 KB) and, thus, takes three cache accesses on any processor with 1 MB of L2 cache. According to the measurement obtained by the VTune tool on a Pentium II processor, each lookup requires 3 additional clock cycles besides the ones needed for the memory accesses. Assuming a clock cycle of 3.33 nanoseconds and an L2 cache latency of 15 nanoseconds, search of MaeEast can be estimated in 55 nanoseconds or, equivalently, our method performs 18 millions of lookups per second.