Routing on longest-matching prefixes

This article describes the dynamic prefix tries, a novel data structure with algorithms for insertion, deletion, and retrieval to build and maintain a dynamic database of binary keys of arbitrary length. These tries extend the concepts of compact digital (Patricia) tries to support the storage of prefixes and to guarantee retrieval times at most linear in the length of the input key irrespective of the trie size, even when searching for longest-matching prefixes. The new design permits very efficient, simple and nonrecursive implementations of small code size and minimal storage requirements. Insert and delete operations have strictly local effects, and their particular sequence is irrelevant for the structure of the resulting trie, thus maintaining at all times the desired storage and computational efficiency. The algorithms have bees successfully employed in experimental communication systems and products for a variety of networking functions such as address resolution, maintenance and verification of access control lists, and high-performance routing tables in operating system kernels.

[1]  Arne Andersson Comments on "On the Balance Property of Patricia Tries: External Path Length Viewpoint" , 1992, Theor. Comput. Sci..

[2]  John A. Dundas,et al.  Implementing dynamic minimal‐prefix tries , 1991, Softw. Pract. Exp..

[3]  Scott O. Bradner,et al.  The Recommendation for the IP Next Generation Protocol , 1995, RFC.

[4]  Takashi Sato,et al.  An efficient implementation of trie structures , 1992, Softw. Pract. Exp..

[5]  Helmut Prodinger,et al.  Do we really need to balance patricia tries , 1988 .

[6]  Helmut Prodinger,et al.  On the Balance Property of Patricia Tries: External Path Length Viewpoint , 1989, Theor. Comput. Sci..

[7]  William Pugh,et al.  Skip lists: a probabilistic alternative to balanced trees , 1989, CACM.

[8]  Yakov Rekhter Forwarding database overhead for inter-domain routing , 1993, CCRV.

[9]  Haldon J Sandick,et al.  Efficient, Real-Time Address Resolution in Backbone Networks , 1993 .

[10]  Douglas Dykeman,et al.  Multiprotocol Transport Networking: Eliminating Application Dependencies on Communications Protocols , 1995, IBM Syst. J..

[11]  Gaston H. Gonnet,et al.  Handbook Of Algorithms And Data Structures , 1984 .

[12]  Helmut Prodinger,et al.  Do We Really Need to Balance Patricia Trees? (Extended Abstract) , 1988, International Colloquium on Automata, Languages and Programming.

[13]  Donald R. Morrison,et al.  PATRICIA—Practical Algorithm To Retrieve Information Coded in Alphanumeric , 1968, J. ACM.

[14]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[15]  Douglas E. Comer,et al.  Internetworking with TCP/IP - Principles, Protocols, and Architectures, Fourth Edition , 1988 .

[16]  C. Zukowski,et al.  Putting routing tables in silicon , 1992, IEEE Network.

[17]  Paul Robinson Suggestion for New Classes of IP Addresses , 1992, RFC.

[18]  Donald E. Knuth,et al.  The Art of Computer Programming, Vol. 3: Sorting and Searching , 1974 .

[19]  Radia Perlman Interconnections: Bridges and Routers , 1992 .