## Fast address lookup for Internet routers (1998)

Venue: | IEEE Broadband Communications |

Citations: | 79 - 4 self |

### BibTeX

@INPROCEEDINGS{Nilsson98fastaddress,

author = {Stefan Nilsson and Gunnar Karlsson},

title = {Fast address lookup for Internet routers},

booktitle = {IEEE Broadband Communications},

year = {1998},

pages = {11--22},

publisher = {Chapman & Hall}

}

### Years of Citing Articles

### OpenURL

### Abstract

We consider the problem of organizing address tables for internet routers to enable fast searching. Our proposal is to to build an efficient, compact and easily searchable implementation of an IP routing table by using an LC-trie, a trie structure with combined path and level compression. The depth of this structure increases very slowly as function of the number of entries in the table. A node can be coded in only four bytes and the size of the main search structure never exceeds 256 kB for the tables in the US core routers. We present a software implementation that can sustain approximately half a million lookups per second on a 133 MHz Pentium personal computer, and two million lookups per second on a more powerful SUN Sparc Ultra II workstation. 1

### Citations

259 |
Trie memory
- Fredkin
- 1960
(Show Context)
Citation Context ...ure contains five pointers and one index. More general but slightly dated works on Gb/s routers that could be of interest to the reader are presented in [3, 14, 16]. 3 LEVEL-COMPRESSED TRIES The trie =-=[7]-=- is a general purpose data structure for storing strings. The idea is very simple: each string is represented by a leaf in a tree structure and the value of the string corresponds to the path from the... |

234 |
Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy
- Fuller, Li, et al.
- 1993
(Show Context)
Citation Context ...etermined length of the network identifier which made the address lookup in routers straightforward. This class-based structure has been abandoned in favor of the classless interdomain routing (CIDR) =-=[8]-=-. An IP address can now be split into network and host identifiers at almost any point. Address lookup is done by matching a given address to bit strings of variable lengths (prefixes) that are stored... |

173 | Small forwarding tables for fast routing lookups
- Degermark, Brodnik, et al.
- 1997
(Show Context)
Citation Context ...herefore place our proposal in relation only to the three most recent works from the literature. Our search structure and implementation is akin to and has been inspired by the work of Brodnik et al. =-=[4]-=-. They use a different data structure from ours and are concerned with the size of the trie to ensure that it fits in a processor's on-chip cache memory. As a consequence, it is not immediately clear ... |

162 |
Handbook of Algorithms and Data Structures
- Gonnet
- 1984
(Show Context)
Citation Context ...technique is to store a number, the skip value, in each node that indicates how many bits that have been skipped on the path. A path-compressed binary trie is sometimes referred to as a Patricia tree =-=[9]-=-. The path-compressed version of the trie in Figure 3a is shown in Figure 3b. The total number of nodes in a path-compressed binary trie is exactly 2n \Gamma 1, where n is the number of leaves in the ... |

149 | Scalable high speed IP routing lookups
- Waldvogel, Varghese, et al.
- 1997
(Show Context)
Citation Context ...n to reduce the size of the trie. Thus, we obtain similar performance in our simulations with a more general structure and without making any assumptions about the address structure. Waldvogel et al. =-=[15]-=- use a different technique. Prefixes of fixed lengths are stored in separate hash tables and the search operation is implemented using binary search on the number of bits. Using 16 and 24 bits for the... |

74 | IP Switching and Gigabit Routers
- Newman, Minshall, et al.
(Show Context)
Citation Context ... space-division interconnection fabrics rather than the customarily used data buses. The remaining function that has been deemed critical for the viability of multi-Gb/s routers is the address lookup =-=[11]-=-. The address lookup has traditionally been performed centrally by a processor that serves all input ports of the router (Figure 1a). An input module sends the header of a packet to the processor (oft... |

63 |
Routing on longest-matching prefixes
- Doeringer, Karjoth, et al.
- 1996
(Show Context)
Citation Context .... However, for a routing table with longer prefixes and a smother distribution of prefix lengths this approach may not be as attractive. The work on prefix matching by Doeringer, Karjoth, and Nassehi =-=[6]-=- uses a trie structure. One of their concerns is to allow fully dynamic updates. This results in a large space overhead and less than optimum performance. The nodes of the trie structure contains five... |

32 | Improved Behaviour of Tries by Adaptive Branching
- Andersson, Nilsson
- 1993
(Show Context)
Citation Context ...t in practice, since it often gives a significant overall size reduction. One might think of path compression as a way to compress the parts of the trie that are sparsely populated. Level compression =-=[1]-=- is a recently introduced technique for compressing parts of the trie that are densely populated. The idea is to replace the i highest complete levels of the binary trie with a single node of degree 2... |

32 |
Limiting distribution for the depth in PATRICIA tries
- Rais, Jacquet, et al.
- 1993
(Show Context)
Citation Context ... total number of nodes in a path-compressed binary trie is exactly 2n \Gamma 1, where n is the number of leaves in the trie. The statistical properties of this trie structure are very well understood =-=[5, 12]-=-. For a large class of distributions path compression does not give an asymptotic reduction of the average depth. Even so, path compression is very important in practice, since it often gives a signif... |

28 |
Putting routing tables in silicon
- Pei, Zukowski
- 1992
(Show Context)
Citation Context ...ably little interest in the organization of routing tables both for hardware and software based searches during the last years. Hardware implementation, which we do not consider here, is discussed in =-=[17]-=-. We therefore place our proposal in relation only to the three most recent works from the literature. Our search structure and implementation is akin to and has been inspired by the work of Brodnik e... |

27 |
Deering "IP Version 6 Addressing Architecture", RFC 2373
- Hinden, S
- 1998
(Show Context)
Citation Context ...s in use. The address structure for IP version 6 is not fully decided even for unicast addresses. It is, however, suggested to keep the variable-length network identifiers (or subnetwork identifiers) =-=[10]-=-. Thus, a subnetwork can be identified by some n bits in a router, while the remaining 128 \Gamma n bits form the interface identifier (replacing the host identifier of version 4). Our data structure ... |

25 |
A note on the average depth of tries
- Devroye
- 1982
(Show Context)
Citation Context ... total number of nodes in a path-compressed binary trie is exactly 2n \Gamma 1, where n is the number of leaves in the trie. The statistical properties of this trie structure are very well understood =-=[5, 12]-=-. For a large class of distributions path compression does not give an asymptotic reduction of the average depth. Even so, path compression is very important in practice, since it often gives a signif... |

12 |
Towards a Gigabit IP router
- Asthana, Delph, et al.
- 1992
(Show Context)
Citation Context ...timum performance. The nodes of the trie structure contains five pointers and one index. More general but slightly dated works on Gb/s routers that could be of interest to the reader are presented in =-=[3, 14, 16]-=-. 3 LEVEL-COMPRESSED TRIES The trie [7] is a general purpose data structure for storing strings. The idea is very simple: each string is represented by a leaf in a tree structure and the value of the ... |

11 | Faster searching in tries and quadtrees -- an analysis of level compression
- Andersson, Nilsson
- 1994
(Show Context)
Citation Context ... function, log n = 1+log (log n), if n ? 1, and log n = 0 otherwise. For data from a Bernoulli-type process with character probabilities not all equal, the expected average depth is \Theta(log log n) =-=[2]-=-. Uncompressed tries and pathcompressed tries both have expected average depth \Theta(log n) for these distributions. If we want to achieve the efficiency promised by these theoretical bounds, it is o... |

5 |
Broadband ISDN is happening - except itâ€™s spelled IP
- Sincoskie
- 1997
(Show Context)
Citation Context ...ARKS AND CONCLUSIONS The Internet has in practice become the long-sought broadband integrated services digital network, in the meaning of a global communication infrastructure for multimedia services =-=[13]-=-. The intention was, however, that the B-ISDN should have been based on the asynchronous transfer mode rather than on IP. Now when that raison d' etre for ATM is disappearing there is naturally great ... |

4 |
On the design of a multigigabit IP router
- Tantawy, Koufopavlou, et al.
- 1994
(Show Context)
Citation Context ...timum performance. The nodes of the trie structure contains five pointers and one index. More general but slightly dated works on Gb/s routers that could be of interest to the reader are presented in =-=[3, 14, 16]-=-. 3 LEVEL-COMPRESSED TRIES The trie [7] is a general purpose data structure for storing strings. The idea is very simple: each string is represented by a leaf in a tree structure and the value of the ... |

4 |
The gigaswitch control processor
- Walsh, Ozveren
- 1995
(Show Context)
Citation Context ...timum performance. The nodes of the trie structure contains five pointers and one index. More general but slightly dated works on Gb/s routers that could be of interest to the reader are presented in =-=[3, 14, 16]-=-. 3 LEVEL-COMPRESSED TRIES The trie [7] is a general purpose data structure for storing strings. The idea is very simple: each string is represented by a leaf in a tree structure and the value of the ... |