Results 1  10
of
11
Using Multiple Hash Functions to Improve IP Lookups
 IN PROCEEDINGS OF IEEE INFOCOM
, 2000
"... High performance Internet routers require a mechanism for very efficient IP address lookups. Some techniques used to this end, such as binary search on levels, need to construct quickly a good hash table for the appropriate IP prefixes. In this paper we describe an approach for obtaining good hash ..."
Abstract

Cited by 68 (11 self)
 Add to MetaCart
High performance Internet routers require a mechanism for very efficient IP address lookups. Some techniques used to this end, such as binary search on levels, need to construct quickly a good hash table for the appropriate IP prefixes. In this paper we describe an approach for obtaining good hash tables based on using multiple hashes of each input key (which is an IP address). The methods we describe are fast, simple, scalable, parallelizable, and flexible. In particular, in instances where the goal is to have one hash bucket fit into a cache line, using multiple hashes proves extremely suitable. We provide a general analysis of this hashing technique and specifically discuss its application to binary search on levels.
Efficient construction of pipelined multibittrie RouterTables
 IEEE Trans. Comput
, 2003
"... Efficient algorithms to construct multibit tries suitable for pipelined routertable applications are developed. We first enhance the 1phase algorithm of Basu and Narlikar [1] obtaining a 1phase algorithm that is 2.5 to 3 times as fast. Next we develop 2phase algorithms that not only guarantee to ..."
Abstract

Cited by 15 (1 self)
 Add to MetaCart
Efficient algorithms to construct multibit tries suitable for pipelined routertable applications are developed. We first enhance the 1phase algorithm of Basu and Narlikar [1] obtaining a 1phase algorithm that is 2.5 to 3 times as fast. Next we develop 2phase algorithms that not only guarantee to minimize the maximum perstage memory but also guarantee to use the least total memory subject to the former constraint. Our 2phase algorithms not only generate better pipelined trees than generated by the 1phase algorithm but they also take much less time. A node pullup scheme that guarantees no increase in maximum perstage memory as well as a partitioning heuristic that generates pipelined multibit tries requiring less maximum perstage memory than required by the tries obtained using the 1phase and 2phase algorithms also are proposed.
Efficient Construction Of Multibit Tries For IP Lookup
 IEEE/ACM Transactions on Networking
, 2003
"... Srinivasan and Varghese [16] have proposed the use of multibit tries to represent routing tables used for Internet (IP) address lookups. They propose an O(k * W 2) time dynamic programming algorithm to determine the strides of an optimal klevel multibit fixedstride trie when the longest prefix i ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
Srinivasan and Varghese [16] have proposed the use of multibit tries to represent routing tables used for Internet (IP) address lookups. They propose an O(k * W 2) time dynamic programming algorithm to determine the strides of an optimal klevel multibit fixedstride trie when the longest prefix in the routing table has length W. They also propose an O(n * W 2 * k) dynamic programing algorithm to determine the strides for an optimal variablestride trie that has at most k levels. Here, n is the number of prefixes in the routing table. We improve on these algorithms by providing alternative dynamic programming formulations for both fixed and variablestride tries. While the asymptotic complexity of the resulting algorithm for fixedstride tries is the same as that of the algorithm of [16], experiments using real IPv4 routing table data indicate that our algorithm runs 2 to 4 times as fast. The complexity of our algorithm for variablestride tries is O(n * W * k), an improvement by a factor of W over the corresponding algorithm of [16]. Experiments conducted by us indicate that our variablestride algorithm is between 2 and 17 times as fast for IPv4 routing table data.
An O(log n) Dynamic RouterTable Design
 IEEE Transactions on Computers
, 2004
"... Internet (IP) packet forwarding is typically done by finding the longest prefix in a router table that matches the packer's destination address. For Wbit destination addresses, the use of binary tries enables us to determine the longest matching prefix in O(W) time, independent of the number n of ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
Internet (IP) packet forwarding is typically done by finding the longest prefix in a router table that matches the packer's destination address. For Wbit destination addresses, the use of binary tries enables us to determine the longest matching prefix in O(W) time, independent of the number n of prefixes in the router table. New prefixes may be inserted and old ones deleted in O(W) time also.
Efficient Construction Of FixedStride Multibit Tries For IP Lookup
 Proceedings 8th IEEE Workshop on Future Trends of Distributed Computing Systems
, 2001
"... of multibit tries to represent routing tables used for In ternet (IP) address lookups. They propose an O(k*W 2) time dynamic programming algorithm to determine the strides of an optimal klevel multibit fixedstride trie when the longest prefix in the routing table has length W. We improve on this ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
of multibit tries to represent routing tables used for In ternet (IP) address lookups. They propose an O(k*W 2) time dynamic programming algorithm to determine the strides of an optimal klevel multibit fixedstride trie when the longest prefix in the routing table has length W. We improve on this algorithm by providing an alternative dynamic programming formulation. While the asymptotic complexity of the resulting algorithm for fixedstride tries is the same as that of the algorithm of [16], experiments using real IPvJ routing table data in dicate that our algorithm runs 2 to times as fast.
Efficient Construction Of VariableStride Multibit Tries For IP Lookup
 Proceedings IEEE Symposium on Applications and the Internet (SAINT
, 2002
"... Srinivasan and Varghese [17] have proposed the use of multibit tries to represent routing tables used for Internet (IP) address lookups. They propose an ################ dynamic programing algorithm to determine the strides for an optimal variablestride trie that has at most levels. Here, is ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
Srinivasan and Varghese [17] have proposed the use of multibit tries to represent routing tables used for Internet (IP) address lookups. They propose an ################ dynamic programing algorithm to determine the strides for an optimal variablestride trie that has at most levels. Here, is the number of prefixes in the routing table and length of the longest prefix. We improve on this algorithm by providing an alternative dynamic programming formulation. The complexity of our algorithm is , on real router data sets. This is an improvement by a factor of over the corresponding algorithm of [17]. Experiments conducted by us indicate that our variablestride algorithm is between 2 and 17 times as fast for IPv4 routing table data. Keywords: Packet routing, longest matching prefix, controlled prefix expansion, multibit trie, dynamic programming. 1
Efficient Routing using NIxVectors
 In 2001 IEEE Workshop on High Performance Switching and Routing
, 2000
"... We introduce the concept of NIxVector routing which gives efficient and consistent routing of packets in Internet routers. A NIxVector is a compact representation of a routing path, which is small enough to be included in a packet header. We show how, by including the routing information in t ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
We introduce the concept of NIxVector routing which gives efficient and consistent routing of packets in Internet routers. A NIxVector is a compact representation of a routing path, which is small enough to be included in a packet header. We show how, by including the routing information in the packet header, routing decisions can be made in O(1) time at each router, with no caching or state in the routers (other than the existing routing tables). The creation of a NIxVector for a source and destination pair requires one round trip time, but once the NIxVector is known, it can be retained by the source and reused indefinitely with no further setup time required (or until it becomes no longer valid, which is easily detected). In addition to O(1) routing decisions, the use of NIxVectors to record and specify routes has other benefits. NIxVectors provide for route pinning, which is beneficial for reservation protocols and mitigates the effect of routing flaps on long...
o(log n) dynamic routertables for prefixes and ranges
 IEEE Transactions on Computers
, 2003
"... Two versions of the Internet (IP) routertable problem are considered. In the first, the router table consists of n pairs of tuples of the form (p, a), where p is an address prefix and a is the nexthop information. In this version of the routertable problem, we are to perform the following operati ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Two versions of the Internet (IP) routertable problem are considered. In the first, the router table consists of n pairs of tuples of the form (p, a), where p is an address prefix and a is the nexthop information. In this version of the routertable problem, we are to perform the following operations: insert a new tuple, delete an existing tuple, and find the tuple with longest matchingprefix for a given destination address. We show that each of these three operations may be performed in O(log n) time in the worst case using a prioritysearch tree. In the second version of the routertable problem considered by us, each tuple in the table has the form (r, a), where r is a range of destination addresses matched by the tuple. The set of tuples in the table is conflict free. For this version of the routertable problem, we develop a data structure that employs prioritysearch trees as well as redblack trees. This data structure permits us to perform each of the operations insert, delete, and find the tuple with mostspecific matchingrange for a given destination address in O(log n) time each in the worst case. The insert and delete operations preserve the conflictfree property of the set of tuples. Experimental results also are presented.
Adaptive Data Structures for IP Lookups
, 2003
"... The problem of efficient data structures for IP lookups has been well studied in literature. Techniques such as LC tries and Extensible Hashing are commonly used. In this paper, we address the problem of generalizing LC tries and Extensible Hashing, based on traces of past lookups, to provide perfor ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
The problem of efficient data structures for IP lookups has been well studied in literature. Techniques such as LC tries and Extensible Hashing are commonly used. In this paper, we address the problem of generalizing LC tries and Extensible Hashing, based on traces of past lookups, to provide performance guarantees for memory suboptimal structures. As a specific example, if a memoryoptimal (LC) trie takes 6MB and the total memory at the router is 8MB, how should the trie be modified to make best use of the 2 MB of excess memory? We present a greedy algorithm for this problem and prove that, if for the optimal data structure there are b fewer memory accesses on average for each lookup compared with the original trie, the solution produced by the greedy algorithm will have 22 fewer memory accesses on average (compared to the original trie). An efficient implementation of this algorithm presents significant additional challenges. We describe an implementation with a time complexity of O(#(d)n log n) and a space complexity of O(n), where n is the number of nodes of the trie and d its depth. The depth of a trie is fixed for a given version of the Internet protocol and is typically O(log n).Inthiscase,#(d)=O(log n). We demonstrate experimentally the performance and scalability of the algorithm on actual routing data. We also show that our algorithm significantly outperforms Extensible Hashing for the same amount of memory.