The Community for Technology Leaders
Green Image
Issue No. 03 - March (2004 vol. 53)
ISSN: 0018-9340
pp: 351-363
<p><b>Abstract</b>—Internet (IP) packet forwarding is typically done by finding the longest prefix in a router table that matches the packet's destination address. For <tmath>W{\hbox{-}}{\rm bit}</tmath> destination addresses, the use of binary tries enables us to determine the longest matching prefix in <tmath>O(W)</tmath> time, independent of the number <tmath>n</tmath> of prefixes in the router table. New prefixes may be inserted and old ones deleted in <tmath>O(W)</tmath> time also. Since <tmath>n << 2^W</tmath> in real router tables, it is desirable to develop a data structure that permits longest prefix matching as well as the insertion and deletion of prefixes in <tmath>O(\log n)</tmath>. These three operations can be done with <tmath>O(\log n)</tmath> cache misses using a B-tree data structure [CHECK END OF SENTENCE]. However, the runtime (including operation cost and cost of cache misses) is not <tmath>O(\log n)</tmath>. In this paper, we develop a data structure in which prefix matching, prefix insertion, and deletion can each be done in <tmath>O(\log n)</tmath> time. Experiments using real IPv4 routing databases indicate that, although the proposed data structure is slower than optimized variable-stride tries for longest prefix matching, the proposed data structure is considerably faster for the insert and delete operations.</p>
Packet routing, longest matching prefix, red-black trees.
Sartaj Sahni, Kun Suk Kim, "An O(log n) Dynamic Router-Table Design", IEEE Transactions on Computers, vol. 53, no. , pp. 351-363, March 2004, doi:10.1109/TC.2004.1261840
92 ms
(Ver 3.3 (11022016))