Introduction to algorithms
Handbook of algorithms and data structures: in Pascal and C (2nd ed.)
Handbook of algorithms and data structures: in Pascal and C (2nd ed.)
Suffix arrays: a new method for on-line string searches
SIAM Journal on Computing
Journal of Computer and System Sciences
Routing on longest-matching prefixes
IEEE/ACM Transactions on Networking (TON)
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
Matching and indexing sequences of different lengths
CIKM '97 Proceedings of the sixth international conference on Information and knowledge management
Pattern matching algorithms
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
The string B-tree: a new data structure for string search in external memory and its applications
Journal of the ACM (JACM)
ACM Transactions on Database Systems (TODS)
Prefix Trees: New Efficient Data Structures for Matching Strings of Different Lengths
IDEAS '01 Proceedings of the International Database Engineering & Applications Symposium
Performing IP Lookup on Very High Line Speed
EurAsia-ICT '02 Proceedings of the First EurAsian Conference on Information and Communication Technology
Fast address look-up for internet routers
BC '98 Proceedings of the IFIP TC6/WG6.2 Fourth International Conference on Broadband Communications: The future of telecommunications
Tight Comparison Bounds for the String Prefix-Matching Problem
CPM '93 Proceedings of the 4th Annual Symposium on Combinatorial Pattern Matching
Hi-index | 0.00 |
We propose DMP-tree, a dynamic M-way prefix tree, data structure for the string matching problem in general and prefix matching in particular. DMP-tree has been initially devised for fast and efficiently handling prefix matching which constitutes the building block of some applications in the computer realm and related area. It is assumed there are strings of an alphabet @S which are ordered. The data strings can have different lengths and some of them can be prefixes of others. Two well known applications of prefix matching are layers 3 and 4 switching in TCP/IP protocols. In layer 3 switching, routers forward an IP packet by checking its destination address and finding the longest matching prefix from a database. In layer 4 switching, the source and destination addresses are used to classify packets for differentiated service and Quality of Services (QoS). DMP-tree is a superset of B-tree. When none of the data strings are a prefix of each other, DMP-tree is the same as B-tree. In DMP-tree, no data string can be in a higher level than another data string which is its prefix. This requires a special procedure for node splitting. Indeed, node splitting differentiates DMP-tree from B-tree. The proposed data structure is simple, well defined, easy to implement in hardware or software and efficient in terms of memory usages and search time compared to other data structures proposed for prefix matching. We have implemented DMP-tree and the experimental results for simulated IP prefixes from the {0,1} character set show an average search time of Log"M^N for a large number of N, number of data elements, when the internal node branching factor M is big enough (=5).