Abstract We consider the problem of organizing the Internet routing tables in such a way as to enable fast routing lookup performance. We concentrate
|
|
- Barnard Johnson
- 5 years ago
- Views:
Transcription
1 IP Routing Lookups Algorithms Evaluation Lukas Kencl Doctoral School of Communication Systems EPFL Lausanne Supervisor Patrick Droz IBM Laboratories Zurich July 9, 998
2 Abstract We consider the problem of organizing the Internet routing tables in such a way as to enable fast routing lookup performance. We concentrate on two recently proposed methods and try to evaluate their performance. We describe our implementation of the methods and results of performance measurements on existing as well as articially generated input data. We present some conclusions about the general behaviour of both methods, based on the measurements and theoretical reasoning. Finally, we comment on the results, suggesting preference among the given methods.
3 Introduction. Internet growth Recent extensive growth of the Internet has led to an enormous growth in the number of routing table entries. Further on, with the upgrade to IPv6, the step from 3 bit to 8 bit addresses will result in a dramatic increase in the size of routing tables. With the growing demand for higher bit rates and the increasing use of voice communication over the Internet (which results in appearance of many small packets), the router performance, in which the speed of a routing address lookup plays a key role, is becoming an issue of major importance in the eciency of the network. Here we examine a few techniques proposed recently for software implementation of routing address lookup. These techniques claim to be able to support the currently required Gb/s throughput. We try to evaluate their performance from the practical as well as the theoretical point of view, we especially concentrate on the memory acces characteristics and on the number of principal operations needed to perform the build and lookup functions. We also comment on their potential scalability to the IPv6 environment.. Router Design and Address Lookup Traditionally, the address lookup has been performed by a central processor, called routing engine, that served all the input ports of a router. However, nowadays, with the need for faster performance, we think of separate engines at each input port of a router, thus avoiding the round-trip of the IP packet header between the input port and the central processor. The model we consider here is of a routing engine at each input port, using a static forwarding table capable of great lookup speed, and a central processor, keeping a dynamic routing table used for updates due to changes in the address space and network topology (a potential candidate for such a dynamic scheme would be the method presented in []). The central processor periodically computes the static and more ecient version of the forwarding table and distributes it to the input port routing engines. The most important parameter of the central processor performance is the build time of the forwarding table out of the dynamic structure the processor keeps. Nowadays, at main Internet nodes, the tables change dynamically about every second at peak times, therefore the build procedure must be ecient enough to keep up with the changes in the table. The most important parametres of the static routing lookup schemes themselves are size of the structure and number of memory accesses during lookup. If we can manage to keep the size of the structure small enough that at least its major part could t in the processor cache, than such methodwould perform much better, since the memory accesses would require considerable less time. Nevertheless, the key parameter of the schemes remains to be the number of memory accesses necessary to perform lookup, since this operation is the most time consuming. Both methods presented try to deal with the previously mentioned task and contain particular schemes to perform size compression and lookup path compression.
4 Here we concentrate on the problem of organizing such a static table and on its build, size and number of memory acceses parameters. In addition, we also try to measure the number of shift operations necessary during build and lookup, since these are principal operations in a potential hardware version of a router based on a particular method. Examined techniques. General Approach The forwarding process is based on a best matching prex lookup. The forwarding table comprises of address prexes of various lengths. The task is to nd a prex of maximum length matching the given address. Convenient data structures for preserving the prexes are binary tries, where each prex is equivalent to the path to a node representing the prex, where (resp. ) is equivalent to left (resp. right) turn at a node on the path. Binary tries exploit the fact that various entries share prexes of each other, thus omitting redundancies in the data structure by storing the shared part of the prexes in the same location. The techniques we examine try to improve on the scheme of a standard binary trie (using the fact that the table remains static), in order to minimize the size of the structure and number of memory accesses during search on the structure.. Level Compressed Trie (LC-Trie) and Base Vector ([]) This scheme uses two steps of compression on the original binary trie, path compression and level compression. Path compression removes internal nodes with only one child and preserves the information about the compressed path in the form of a skip number in the following node, indicating how many bits have been skipped. Thus, the length of the path and the size of the trie can be signicantly decreased, however, information about the actual values on the compressed paths is lost. Level compression is used to compress complete levels of a binary trie by replacing the i complete levels of a binary trie with a single node of degree i. This compression leads to no loss of information. Path compression does not decrease the size of the structure, because the number of nodes remains the same. However, it does shorten the length of search path. Since the size of the trie and the length of path decrease enormously,asearch algorithm on this small structure is very fast. However, the result is only an indication of a possible hit, since there are parts of thepathlostdue to path compression. The result has to be veried in a base vector, an array comprising of all the routing table entries that are not prex to any other. Furthermore, in case of a verication failure, we continue the verication in the prex vector, a vector of entries that are prexes of other entries, until either a match is found or all the candidate prexes are exhausted.
5 .3 Binary Trie Level Partition ([3]) Here, the searched string is partitioned into parts of given length and the searches are performed for each part separately, using the fact that in a binary trie, a search of the lower level is only performed on a sub-trie fully determined by the upper level. We perform the search at the given levels of a binary trie by using a precomputed cut of the expanded binary trie (every node must have either none or two children), which enables us to obtain the result at a single access to the cut vector. A cut vector can be further compressed due to some special properties of the expanded binary trie. The cut vector is partitioned into bitmasks of length 6. It can be proved that there are only 678 possible bitmasks of length 6 in an expanded binary trie cut and therefore we can encode 6 bit bitmasks with bits only. Therefore we can actually encode the cut vector into a vector of much smaller size, using a constant maptable. Some sparse lower level cuts can be compressed even further using an entirely dierent approach - simply recording the entries in a list and perform the lookup as binary search. We did not include this optimization in our measurements, since it is inconsistent with the rest of the algorithm and thus would require more conditional branching in a potential router design. 3 Methods Testing 3. General approach We have chosen to implement the given techniques in the C language. Since the goal of the project was to measure and compare the speed of the given techniques, C seemed a natural solution, since its compiled code is still faster than most object oriented languages. For the LC-Trie Method there was some C code made available by the authors at []. However, this code contained undocumented optimizations of the LC-Trie Method, so for the interest of a fair evaluation, these optimizations were taken out of the code. There was no code available for the Method, and, furthermore, the build algorithm was not specied by the authors, therefore the build algorithm had to be designed. We have used the Visual C++ compiler and carried out the tests under the Windows NT environment. However, for large data, the time measurements were greatly aected by the virtul memory assignement policy of the NT system. The tests were performed on a Pentium processor machine. The results presented here concentrate rather on the ratio of performance between the two methods than on the exact measured values. 3. Test data The methods were tested on existing routing tables, as well as articially generated tables. 3
6 3.. Existing tables The existing tables were downloaded from the routing table snapshots provided by the IPMA Project ([5]). Since no reliable studies on the actual Internet trac were available, we used the list of routing table entries to measure the lookup speed as well. 3.. Articially generated tables The articially generated tables were generated in order to show dierences of the methods' behaviour on inputs of particular distribution and particular size. Varius combinations of dierent prex length distributions and prex value distributions were used. Input Data Size { Maximum number of entries used was 6 = entries due to system limitations. Prex Length Distribution { Constant length. { Length distribution as in existing tables. The prex length distribution in existing tables was modelled according to values found at [5]. { Random length. Prex Value Distribution { On one side of prex value spectrum - starting from, the dierence between entries (step) = (i.e. entry i+ -entry i = ). { With constant step (step = i ). Maximum value for step = 3 /(# of entries), in such case entries are regularly distributed. { With random step. For generating the random values, a random generator proposed in [7] was used. The prex length distribution was modelled using the random generator and a random-variate techinque. 3.3 Build For all the methods, we take as a source for building the lookup structures an ordered list of routing table entries. Although in the case of real implementation in a router, the tables would be built from some dynamic structure at the central processor, for each method the structure would be dierent, so as to enable the fastest possible build procedure. It remains to be seen which would be the most convenient one for each method. However, to make a fair comparison of the build time, we chose an ordered list of the entries as the input data to the build process of all methods.
7 Each of the list lines consists of a nexthop identier, length of the prex mask and the prex value. In cases where there were several nexthop possibilities in the original tables, the rst one was selected. The entries in the IPMA routing tables are presented ordered in the snapshots, an ordering criterion being:. The "value" of the entry, that is considering the entry to be 3 bit binary number. The parts of the entries sretching above their length are always assigned value.. In case two entries have the same value, then their prex masks must be of dierent length and then the one with shorter prex mask is considered smaller. However, to ensure correct ordering, we performed the pre-sort of the table, using a quicksort sorting routine taken from [6]. The same sorting procedure and ordering criteria were applied to the articially generated data. The entries were kept in an array consisting of touples of fvalue, len, nexthopg, where value is a 3 bit number, len is the length of the prex mask and nexthop is the 3 bit identier of a nexthop interface LC-Trie Method The rst step is to separate the prex entries from the base entries and to create the prex vector and the base vector. This task is easily performed since in an ordered list of entries, a prex is always directly followed by anentry that comprises the prex, so by comparison with the following entry it is easy to nd out whether an entryisaprex or a base entry. The base entries, as well as prex entries, keep a pointer to their prex, if such exists. Then, out of the base entries, the LC-trie is built, applying in a depth- rst manner step by step the level and path compression, entries inserted from smallest to largest. All leaves contain a pointer to its representative in the base vector Method In the case of the Method, the authors did not specify the build algorithm, only certain requirements for the build procedure were presented: Algorithm is linear in the number of routing entries. Algorithm is linear in the size of the resulting forwarding table. Table is built during a single pass over all routing entries. We have designed our own algorithm, which conrms to these three properties. In the rst step the algorithm inserts the entries one byoneinto a structure consisting of the cut vector and pointers to lower levels. In the second step, the algorithm encodes such a structure using a maptable into a smaller encoded cut. Then the larger cut vector is disposed from memory and only the encoded version remains to perform the lookups. 5
8 The intermediate cut vector structure may have enormous space requirements, which in some cases resulted in very large build time, which was due to allocating the memory required by the NT Virtual Paging. 3. Lookup In all cases, the lookup performance was measured using the entries of the input routing table. One by one, for each entry value a lookup was performed and the parametres recorded. 3.5 Measured Parametres Size Size of the forwarding table after being built (i.e. the static structure). Build time Time necessary to build the forwarding table from the in-memory ordered list of routing table entries. The time to read the values or to perform the sorting is not included. # of shift operations per entry during build Population mean over al entries of all the shift operations performed per entry insertion. We dene a shift operation to be one shift of a 3 bit number either to the left or to the right. # of memory accesses per lookup Population mean over all entries of a number of memory accesses per entry lookup. # of shift operations per entry during lookup Population mean over all entries of all the shift operations performed per entry lookup. 6
9 Tests Results. Tests on Existing Data The tests were performed on the following routing tables: Table Date #ofentries Mae East AADS Paccard-Bell Mae West Paix Table : Existing Routing Tables used.. Build Table shows results of measurements of the build parametres measured over existing tables. Size (B) # of shift oper. Time (s) Table #ofentries LC Trie LC Trie LC Trie maee aads pacbell maew paix Table : Build parametres on existing tables.. Lookup The results of lookup parametres measurements are in Table 3. The mean values are population means over all entries. # of memory accesses # of shift oper. Table LC Trie LC Trie maee aads pacbell maew paix Table 3: Lookup parametres on existing tables 7
10 Results on existing tables.5 x Size (B) MaeE AADS MaeW PacBell Paix Tables Figure : Number of entries in existing tables x Size (B) 5 3 MaeE AADS MaeW PacBell Paix Tables Figure : Size of built forwarding table 3.5 Time (s).5.5 MaeE AADS MaeW PacBell Paix Tables Figure 3: Time to build the forwarding table # of Memory Accesses MaeE AADS MaeW PacBell Paix Tables Figure : Average number of memory accesses 8
11 . Tests on Articially Generated Data For the demonstration of certain properties of the evaluated method we chose to show the results of tests with 5 = 3768 entries... Prex length and step value xed Here, we xed the prex length at, since that is the most frequent entry length in the current routing tables, and we try the varius value distributions, measuring for all possible step = i. The results are summarised in Table. Size (B) # of memory accesses Step #ofentries LC Trie LC Trie Table : Build and lookup parametres on xed length and step entries When the step value is low, many repetitive entries are generated (since only the high bits are taken into account), which are then discarded as duplicates, so for example with step =, out of 5 entries only 8 non duplicate entries remain. With such routing table entries we obtain much better performance of the LC-Trie Method, which is due to symmetry and regularity in the distribution of entries. 9
12 Results on tables with xed prex length and step value 3.5 x 3.5 # of Entries Step Figure 5: Number of entries x Size (B) Step Figure 6: Size of built forwarding table # of Memory Accesses Step Figure 7: Average number of memory accesses
13 .. Length distribution as in existing tables, xed size step We generate entries with random length so as the distribution of the length is equal to the distribution of prex length in major routing tables. That is, we simulate the same distribution as in Mae East of The information about the prex length distribution was obtained through IPMA ([5]). The results are displayed in Table 5. Size (B) # of memory accesses Step #ofentries LC Trie LC Trie Table 5: Build and lookup parametres for length distribution as in existing tables and xed step
14 Results on tables with prex length distribution as in existing tables and step of xed size 3.5 x 3.5 # of Entries Step Figure 8: Number of entries 8 x 5 6 Size (B) Step Figure 9: Size of built forwarding table # of Memory Accesses Step Figure : Average number of memory accesses
15 ..3 Random length of uniform distribution, xed size step In this case, entries are generated with random length of uniform distribution(length between and 3) and the step between entries remains xed. Again, with small step, we obtain many duplicates, but we can observe in Table 6 that with the rising number of valid entries, i.e. increasing step, the Cut Vector space requiremnts grow much faster than those of LC Trie, whereas LC Trie performs lookups on average with less memory accesses. Size (B) # of memory accesses Step #ofentries LC Trie LC Trie Table 6: Build and lookup parametres for uniform length distribution and xed step 3
16 Results on tables with random entry length of uniform distribution and xed size steps. x..8 # of Entries Step Figure : Number of entries x 5 8 Size (B) Step Figure : Size of built forwarding table # of Memory Accesses Step Figure 3: Average number of memory accesses
17 .. Random Entries Several tests were carried out on a set of randomly generated tables, using the random generator proposed in [7]. Both value and prex length are randomly selected. Results of measurements are to be found in Table 7 Size (B) # of memory accesses #oftest #ofentries LC Trie LC Trie Sample Mean Table 7: Build and lookup parametres for a sample of random generated tables 5
18 Results on tables with random generated entries.85 x # of Entries Experiment Figure : Number of entries x 5 Size (B) Experiment Figure 5: Size of built forwarding table # of Memory Accesses Experiment Figure 6: Average number of memory accesses 6
19 5 Results Evaluation 5. Existing Tables It is clear from the results obtained that the forwarding table, alhough takes longer to build, is better in all the other parametres than the LC- Trie method (except for the small Paix table, where just the size of the coding Maptable (35 B) is larger than the coded structure). However, the question we have to pose here is, whether the result of the methods comparison is due to the generally better performance of the Method, or whether it is due to the current routing table entries distribution. Since the current distribution is greatly aected by the past Class Address system, especially as far as the prex length distribution is concerned, we should keep in mind that the bias will slowly be turning away from this somewhat unnatural situation. In order to asess the properties of both methods correctly, we have to look at the results of the tests on the articially generated data. 5. Articially Generated Tables With the articially generated tables, the results seem to be completely overturned. The LC-Trie method exploits to much higher extent all the 'regularity' in the arising distributions and that leads to great path compression. The size of the LC-Trie forwarding table remains stable with distribution changes (its size in bytes is equal to about times the number of entries). The Cut-Vector Method forwarding table size is however greatly aected by dierences in distribution. A more spread spectrum causes the Method to build more lower level cuts, which increases the size of the structure considerably. The lookup parametres of the LC-Trie method also show better performance. However, this is largely due to very unbiased distribution of the the routing table entries in our articial examples. In such a case the path and level compression achieve good results. However, in the case of more biased input data, as in the case of existing tables, stability given by scheme prevails (by stability we mean the fact that to nd a nexthop in the forwarding table we need to search at least one level - memory accesses - and at most 3 levels - maximum of memory accesses). The values of the LC-Trie method may oscillate on a much higher scale - we can easily design a structure on which there would be a node that would require 3 memory accesses, as well as there can be nodes accessible at two memory accesses only. 5.3 Performance Inuencing Factors From the test results and from the method descriptions we can deduce some fundamental relations of proportional equivalence between performance parametres and input data properties: 7
20 LC-Trie Method Size of Forwarding Table # of Routing Table entries. # of Memory Accesses Entry value and length distribution. Method Size of Forwarding Table Entry value and length distribution. # of Memory Accesses Entry length distribution. These properties of proportional equivalence are key factors in determining, whether a given method is suitable for a particular task - rst, we need to analyze the address space and routing entries distribution in order to determine preference for a method. 5. Methods Evaluation The Method performs well on the current routing tables, since it exploits their particular characteristics - the fact that prex length concentrates around certain values (exactly the boundaries of cut levels-6and)andthat routing table entries concentrate around certain values, which enables the Cut Method to achieve good compression, since it does not have to build that many lower level chunks. The LC-Trie Method performs better as a general method of providing a forwarding scheme for unbiased data, however, in particular unfavorable cases might be less ecient. As for the build time measurements, the values on larger data proved unrealistic and incomparable due to the networking environement, which had more inuence over the outcome then the methods themselves. The build time can correctly be compared only in relation to the dynamic structure at the Central Processor, which has yet to be developed for both methods.. 6 Open problems 6. Dynamic Structure For both methods it remains to be seen what would be the most convenient dynamic structure at the Central Processor, from which these static tables would be built. Clearly, none of the structures itself is dynamic in the form presented. An insertion or deletion of a node in case of the LC-Trie method might change the completeness property and force rebuilding the whole table. In case of the Method, insertion operation is possible, but deletion is impossible to carry out, due to the expanding of nodes - we are not able to tell whether a node is just expansion or an entry, once it is in the forwarding table. 6. Optimization Schemes The LC-Trie Method authors already implemented an optimized version, where a node is considered as complete and path is compressed even if there is only more than half of nodes present in its complete descendant's trie. However, this optimization adds high complexity to the build algorithm. 8
21 The Method proposal includes an optimization on the very sparse lower level chunks, on which dierent means of storing entries and lookup procedures could be applied. Such approach reduces the size in some cases considerably and might also lead to better lookup performance. However, it is somehow inconsistent with the overall lookup scheme and thus requires more complicated lookup and build algorithm with more conditional branches. With respect to simplicity of a potential router design, we did not include these optimizations in our experiments. An obvious candidate for another kind of optimization of the Method would be precomputation - rst let us nd out what would be good Levels of Cut (has to be a power of ) according to prex length distribution and then let the method operate on such levels. 6.3 Towards IPv6 Both methods obviously scale non-problematically to the higher level of 8 bit adresses, although, the memory requirements for the build process of the Cut Vector Method might be overwhelming. It remains to be seen how the future routing tables will be organized and what kind of prex distribution will emerge in order to pick the more convenient method. References [] S. Nilsson and G. Karlsson. Fast address lookup for Internet routers. Proceedings IFIP th International Conference on Broadband Communications '98, pp. -, 998. [] S. Nilsson's homepage. [3] M. Degermark, A. Brodnik, S. Carlsson, S. Pink. Small Forwarding Tables for Fast Routing Lookups. ACM Computer Communication Review, 7():3-, October 997. [] W. Doeringer, G. Karjoth and M. Nassehi. Routing on longest-matching prexes. IEEE/ACM Transactions on Networking, ():86-97, February 996. [5] Internet Performance and Analysis (IPMA) Project. Michigan University and Merit Network. [6] J. L. Bentley and M. D. McIlroy. Engineering a sort function. Software - Practise and Experience, 3():9-65. [7] P. L'Ecuyer. Ecient and Portable Combined Random Number Generators. CACM, June 998, Volume 3, Number 6. [8] R. Jain. The Art of Computer Systems Performance Analysis. JohnWiley & Sons, 99. 9
Binary Search Schemes for Fast IP Lookups
1 Schemes for Fast IP Lookups Pronita Mehrotra, Paul D. Franzon Abstract IP route look up is the most time consuming operation of a router. Route lookup is becoming a very challenging problem due to the
More informationEfficient hardware architecture for fast IP address lookup. Citation Proceedings - IEEE INFOCOM, 2002, v. 2, p
Title Efficient hardware architecture for fast IP address lookup Author(s) Pao, D; Liu, C; Wu, A; Yeung, L; Chan, KS Citation Proceedings - IEEE INFOCOM, 2002, v 2, p 555-56 Issued Date 2002 URL http://hdlhandlenet/0722/48458
More informationAN ASSOCIATIVE TERNARY CACHE FOR IP ROUTING. 1. Introduction. 2. Associative Cache Scheme
AN ASSOCIATIVE TERNARY CACHE FOR IP ROUTING James J. Rooney 1 José G. Delgado-Frias 2 Douglas H. Summerville 1 1 Dept. of Electrical and Computer Engineering. 2 School of Electrical Engr. and Computer
More informationIP Address Lookup in Hardware for High-Speed Routing
IP Address Lookup in Hardware for High-Speed Routing Andreas Moestedt and Peter Sjödin am@sics.se, peter@sics.se Swedish Institute of Computer Science P.O. Box 1263, SE-164 29 KISTA, Sweden Abstract This
More informationGrowth of the Internet Network capacity: A scarce resource Good Service
IP Route Lookups 1 Introduction Growth of the Internet Network capacity: A scarce resource Good Service Large-bandwidth links -> Readily handled (Fiber optic links) High router data throughput -> Readily
More informationMultiway Range Trees: Scalable IP Lookup with Fast Updates
Multiway Range Trees: Scalable IP Lookup with Fast Updates Subhash Suri George Varghese Priyank Ramesh Warkhede Department of Computer Science Washington University St. Louis, MO 63130. Abstract In this
More informationFPGA Implementation of Lookup Algorithms
2011 IEEE 12th International Conference on High Performance Switching and Routing FPGA Implementation of Lookup Algorithms Zoran Chicha, Luka Milinkovic, Aleksandra Smiljanic Department of Telecommunications
More informationIP LOOK-UP WITH TIME OR MEMORY GUARANTEE AND LOW UPDATE TIME 1
2005 IEEE International Symposium on Signal Processing and Information Technology IP LOOK-UP WITH TIME OR MEMORY GUARANTEE AND LOW UPDATE TIME 1 G.T. Kousiouris and D.N. Serpanos Dept. of Electrical and
More informationEfficient Construction Of Variable-Stride Multibit Tries For IP Lookup
" Efficient Construction Of Variable-Stride Multibit Tries For IP Lookup Sartaj Sahni & Kun Suk Kim sahni, kskim @ciseufledu Department of Computer and Information Science and Engineering University of
More informationRadix Searching. The insert procedure for digital search trees also derives directly from the corresponding procedure for binary search trees:
Radix Searching The most simple radix search method is digital tree searching - the binary search tree with the branch in the tree according to the bits of keys: at the first level the leading bit is used,
More informationDynamic Routing Tables Using Simple Balanced. Search Trees
Dynamic Routing Tables Using Simple Balanced Search Trees Y.-K. Chang and Y.-C. Lin Department of Computer Science and Information Engineering National Cheng Kung University Tainan, Taiwan R.O.C. ykchang@mail.ncku.edu.tw
More informationDisjoint Superposition for Reduction of Conjoined Prefixes in IP Lookup for Actual IPv6 Forwarding Tables
Disjoint Superposition for Reduction of Conjoined Prefixes in IP Lookup for Actual IPv6 Forwarding Tables Roberto Rojas-Cessa, Taweesak Kijkanjanarat, Wara Wangchai, Krutika Patil, Narathip Thirapittayatakul
More informationFrugal IP Lookup Based on a Parallel Search
Frugal IP Lookup Based on a Parallel Search Zoran Čiča and Aleksandra Smiljanić School of Electrical Engineering, Belgrade University, Serbia Email: cicasyl@etf.rs, aleksandra@etf.rs Abstract Lookup function
More informationIP lookup with low memory requirement and fast update
Downloaded from orbit.dtu.dk on: Dec 7, 207 IP lookup with low memory requirement and fast update Berger, Michael Stübert Published in: Workshop on High Performance Switching and Routing, 2003, HPSR. Link
More informationIP Address Lookup Made Fast and Simple Pierluigi Crescenzi and Leandro Dardini Universita degli Studi di Firenze and Roberto Grossi Universita degli S
Universita di Pisa Dipartimento di Informatica Technical Report : TR-99-1 IP Address Lookup Made Fast and Simple Pierluigi Crescenzi, Leandro Dardini, Roberto Grossi January 17, 1999 ADDR: Corso Italia
More informationCS 268: Route Lookup and Packet Classification
Overview CS 268: Route Lookup and Packet Classification Packet Lookup Packet Classification Ion Stoica March 3, 24 istoica@cs.berkeley.edu 2 Lookup Problem Identify the output interface to forward an incoming
More informationParallel-Search Trie-based Scheme for Fast IP Lookup
Parallel-Search Trie-based Scheme for Fast IP Lookup Roberto Rojas-Cessa, Lakshmi Ramesh, Ziqian Dong, Lin Cai, and Nirwan Ansari Department of Electrical and Computer Engineering, New Jersey Institute
More informationShape Shifting Tries for Faster IP Route Lookup
Shape Shifting Tries for Faster IP Route Lookup Haoyu Song, Jonathan Turner, John Lockwood Applied Research Laboratory Washington University in St. Louis Email: {hs1,jst,lockwood}@arl.wustl.edu Abstract
More informationFast IP Routing Lookup with Configurable Processor and Compressed Routing Table
Fast IP Routing Lookup with Configurable Processor and Compressed Routing Table H. Michael Ji, and Ranga Srinivasan Tensilica, Inc. 3255-6 Scott Blvd Santa Clara, CA 95054 Abstract--In this paper we examine
More informationECE697AA Lecture 21. Packet Classification
ECE697AA Lecture 21 Routers: Flow Classification Algorithms Tilman Wolf Department of Electrical and Computer Engineering 11/20/08 Packet Classification What is packet classification? Categorization of
More informationNovel Hardware Architecture for Fast Address Lookups
Novel Hardware Architecture for Fast Address Lookups Pronita Mehrotra, Paul D. Franzon ECE Department, North Carolina State University, Box 7911, Raleigh, NC 27695-791 1, USA Ph: +1-919-515-735 1, Fax:
More informationShape Shifting Tries for Faster IP Route Lookup
Shape Shifting Tries for Faster IP Route Lookup Haoyu Song, Jonathan Turner, John Lockwood Applied Research Laboratory Washington University in St. Louis Email: {hs1,jst,lockwood}@arl.wustl.edu Abstract
More informationMessage Switch. Processor(s) 0* 1 100* 6 1* 2 Forwarding Table
Recent Results in Best Matching Prex George Varghese October 16, 2001 Router Model InputLink i 100100 B2 Message Switch B3 OutputLink 6 100100 Processor(s) B1 Prefix Output Link 0* 1 100* 6 1* 2 Forwarding
More informationEfficient IP-Address Lookup with a Shared Forwarding Table for Multiple Virtual Routers
Efficient IP-Address Lookup with a Shared Forwarding Table for Multiple Virtual Routers ABSTRACT Jing Fu KTH, Royal Institute of Technology Stockholm, Sweden jing@kth.se Virtual routers are a promising
More informationIEEE/ACM TRANSACTIONS ON NETWORKING, VOL. 9, NO. 6, DECEMBER Routing With a Clue
IEEE/ACM TRANSACTIONS ON NETWORKING, VOL. 9, NO. 6, DECEMBER 2001 693 Routing With a Clue Yehuda Afek, Member, IEEE, Anat Bremler-Barr, and Sariel Har-Peled Abstract We suggest a new simple forwarding
More informationFile Structures and Indexing
File Structures and Indexing CPS352: Database Systems Simon Miner Gordon College Last Revised: 10/11/12 Agenda Check-in Database File Structures Indexing Database Design Tips Check-in Database File Structures
More information* I D ~~~ ~ Figure 2: Longest matching prefix.
A fast and compact longest match prefix look-up method using pointer cache for very long network address Masanori Uga Kohei Shiomoto "IT Network Service Systems Laboratories Midori 3-9-, Musashino, Tokyo
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17
601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17 5.1 Introduction You should all know a few ways of sorting in O(n log n)
More informationV6Gene: A Scalable IPv6 Prefix Generator for Route Lookup Algorithm
Scalable IPv6 Prefix Generator for Benchmark 1 V6Gene: A Scalable IPv6 Prefix Generator for Route Lookup Algorithm Benchmark i Abstract-- Most conventional IPv4-based route lookup algorithms are no more
More informationECE697AA Lecture 20. Forwarding Tables
ECE697AA Lecture 20 Routers: Prefix Lookup Algorithms Tilman Wolf Department of Electrical and Computer Engineering 11/14/08 Forwarding Tables Routing protocols involve a lot of information Path choices,
More information2. CNeT Architecture and Learning 2.1. Architecture The Competitive Neural Tree has a structured architecture. A hierarchy of identical nodes form an
Competitive Neural Trees for Vector Quantization Sven Behnke and Nicolaos B. Karayiannis Department of Mathematics Department of Electrical and Computer Science and Computer Engineering Martin-Luther-University
More informationThe Adaptive Radix Tree
Department of Informatics, University of Zürich MSc Basismodul The Adaptive Radix Tree Rafael Kallis Matrikelnummer: -708-887 Email: rk@rafaelkallis.com September 8, 08 supervised by Prof. Dr. Michael
More informationReview on Tries for IPv6 Lookups
Available online www.ejaet.com European Journal of Advances in Engineering and Technology, 2016, 3(7): 28-33 Review Article ISSN: 2394-658X Review on Tries for IPv6 Lookups Rohit G Bal Department of Computer
More informationPhysical Level of Databases: B+-Trees
Physical Level of Databases: B+-Trees Adnan YAZICI Computer Engineering Department METU (Fall 2005) 1 B + -Tree Index Files l Disadvantage of indexed-sequential files: performance degrades as file grows,
More informationData Structures and Algorithms. Course slides: Radix Search, Radix sort, Bucket sort, Patricia tree
Data Structures and Algorithms Course slides: Radix Search, Radix sort, Bucket sort, Patricia tree Radix Searching For many applications, keys can be thought of as numbers Searching methods that take advantage
More informationRouting Lookup Algorithm for IPv6 using Hash Tables
Routing Lookup Algorithm for IPv6 using Hash Tables Peter Korppoey, John Smith, Department of Electronics Engineering, New Mexico State University-Main Campus Abstract: After analyzing of existing routing
More informationCPSC 320 Sample Solution, Playing with Graphs!
CPSC 320 Sample Solution, Playing with Graphs! September 23, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously
More informationLecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1
CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture
More informationResearch on outlier intrusion detection technologybased on data mining
Acta Technica 62 (2017), No. 4A, 635640 c 2017 Institute of Thermomechanics CAS, v.v.i. Research on outlier intrusion detection technologybased on data mining Liang zhu 1, 2 Abstract. With the rapid development
More informationFast Update of Forwarding Tables in Internet Router Using AS Numbers Λ
Fast Update of Forwarding Tables in Internet Router Using AS Numbers Λ Heonsoo Lee, Seokjae Ha, and Yanghee Choi School of Computer Science and Engineering Seoul National University San 56-1, Shilim-dong,
More informationExtensions to RTP to support Mobile Networking: Brown, Singh 2 within the cell. In our proposed architecture [3], we add a third level to this hierarc
Extensions to RTP to support Mobile Networking Kevin Brown Suresh Singh Department of Computer Science Department of Computer Science University of South Carolina Department of South Carolina Columbia,
More informationUnit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION
DESIGN AND ANALYSIS OF ALGORITHMS Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION http://milanvachhani.blogspot.in EXAMPLES FROM THE SORTING WORLD Sorting provides a good set of examples for analyzing
More informationIP Forwarding. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli
IP Forwarding CSU CS557, Spring 2018 Instructor: Lorenzo De Carli 1 Sources George Varghese, Network Algorithmics, Morgan Kauffmann, December 2004 L. De Carli, Y. Pan, A. Kumar, C. Estan, K. Sankaralingam,
More information16 Greedy Algorithms
16 Greedy Algorithms Optimization algorithms typically go through a sequence of steps, with a set of choices at each For many optimization problems, using dynamic programming to determine the best choices
More informationChapter 5 Lempel-Ziv Codes To set the stage for Lempel-Ziv codes, suppose we wish to nd the best block code for compressing a datavector X. Then we ha
Chapter 5 Lempel-Ziv Codes To set the stage for Lempel-Ziv codes, suppose we wish to nd the best block code for compressing a datavector X. Then we have to take into account the complexity of the code.
More informationImi :... Data:... Nazwisko:... Stron:...
Imi :.................................................... Data:....................... Nazwisko:............................................... Stron:...................... 1. Which of the following protocols
More informationBinary Search Schemes for Fast IP Lookups
Binary Search Schemes for Fast IP Lookups Pronita Mehrotra Paul D. Franzon Department of Electrical and Computer Engineering North Carolina State University {pmehrot,paulf}@eos.ncsu.edu This research is
More informationProblem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results.
Algorithms for Routing Lookups and Packet Classification October 3, 2000 High Level Outline Part I. Routing Lookups - Two lookup algorithms Part II. Packet Classification - One classification algorithm
More informationWhat is the role of teletraffic engineering in broadband networks? *
OpenStax-CNX module: m13376 1 What is the role of teletraffic engineering in broadband networks? * Jones Kalunga This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution
More informationII (Sorting and) Order Statistics
II (Sorting and) Order Statistics Heapsort Quicksort Sorting in Linear Time Medians and Order Statistics 8 Sorting in Linear Time The sorting algorithms introduced thus far are comparison sorts Any comparison
More informationChapter 12 Digital Search Structures
Chapter Digital Search Structures Digital Search Trees Binary Tries and Patricia Multiway Tries C-C Tsai P. Digital Search Tree A digital search tree is a binary tree in which each node contains one element.
More informationTree, Segment Table, and Route Bucket: A Multistage Algorithm for IPv6 Routing Table Lookup
Tree, Segment Table, and Route Bucket: A Multistage Algorithm for IPv6 Routing Table Lookup Zhenqiang LI Dongqu ZHENG Yan MA School of Computer Science and Technology Network Information Center Beijing
More informationLecture (08, 09) Routing in Switched Networks
Agenda Lecture (08, 09) Routing in Switched Networks Dr. Ahmed ElShafee Routing protocols Fixed Flooding Random Adaptive ARPANET Routing Strategies ١ Dr. Ahmed ElShafee, ACU Fall 2011, Networks I ٢ Dr.
More informationADDRESS lookup is one of the fundamental functions
IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 17, NO. 6, JUNE 1999 1083 IP-Address Lookup Using LC-Tries Stefan Nilsson and Gunnar Karlsson, Senior Member, IEEE Abstract There has recently been
More informationPredicting connection quality in peer-to-peer real-time video streaming systems
Predicting connection quality in peer-to-peer real-time video streaming systems Alex Giladi Jeonghun Noh Information Systems Laboratory, Department of Electrical Engineering Stanford University, Stanford,
More informationDepartment of. Computer Science. Remapping Subpartitions of. Hyperspace Using Iterative. Genetic Search. Keith Mathias and Darrell Whitley
Department of Computer Science Remapping Subpartitions of Hyperspace Using Iterative Genetic Search Keith Mathias and Darrell Whitley Technical Report CS-4-11 January 7, 14 Colorado State University Remapping
More informationAlgorithm Efficiency & Sorting. Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms
Algorithm Efficiency & Sorting Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms Overview Writing programs to solve problem consists of a large number of decisions how to represent
More informationImplementing Dynamic Minimal-prefix Tries
SOFTWARE PRACTICE AND EXPERIENCE, VOL. 21(10), 1027 1040 (OCTOBER 1991) Implementing Dynamic Minimal-prefix Tries JOHN A. DUNDAS III Jet Propulsion Laboratory, California Institute of Technology, Mail
More informationsize, runs an existing induction algorithm on the rst subset to obtain a rst set of rules, and then processes each of the remaining data subsets at a
Multi-Layer Incremental Induction Xindong Wu and William H.W. Lo School of Computer Science and Software Ebgineering Monash University 900 Dandenong Road Melbourne, VIC 3145, Australia Email: xindong@computer.org
More informationHomework 1 Solutions:
Homework 1 Solutions: If we expand the square in the statistic, we get three terms that have to be summed for each i: (ExpectedFrequency[i]), (2ObservedFrequency[i]) and (ObservedFrequency[i])2 / Expected
More informationV Advanced Data Structures
V Advanced Data Structures B-Trees Fibonacci Heaps 18 B-Trees B-trees are similar to RBTs, but they are better at minimizing disk I/O operations Many database systems use B-trees, or variants of them,
More informationAn On-line Variable Length Binary. Institute for Systems Research and. Institute for Advanced Computer Studies. University of Maryland
An On-line Variable Length inary Encoding Tinku Acharya Joseph F. Ja Ja Institute for Systems Research and Institute for Advanced Computer Studies University of Maryland College Park, MD 242 facharya,
More informationBMVC 1996 doi: /c.10.41
On the use of the 1D Boolean model for the description of binary textures M Petrou, M Arrigo and J A Vons Dept. of Electronic and Electrical Engineering, University of Surrey, Guildford GU2 5XH, United
More informationCS 6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK
CS 6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK Page 1 UNIT I INTRODUCTION 2 marks 1. Why is the need of studying algorithms? From a practical standpoint, a standard set of algorithms from different
More informationThe Limits of Sorting Divide-and-Conquer Comparison Sorts II
The Limits of Sorting Divide-and-Conquer Comparison Sorts II CS 311 Data Structures and Algorithms Lecture Slides Monday, October 12, 2009 Glenn G. Chappell Department of Computer Science University of
More informationEect of fan-out on the Performance of a. Single-message cancellation scheme. Atul Prakash (Contact Author) Gwo-baw Wu. Seema Jetli
Eect of fan-out on the Performance of a Single-message cancellation scheme Atul Prakash (Contact Author) Gwo-baw Wu Seema Jetli Department of Electrical Engineering and Computer Science University of Michigan,
More informationA Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup
A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup Yan Sun and Min Sik Kim School of Electrical Engineering and Computer Science Washington State University Pullman, Washington
More informationPredecessor Data Structures. Philip Bille
Predecessor Data Structures Philip Bille Outline Predecessor problem First tradeoffs Simple tries x-fast tries y-fast tries Predecessor Problem Predecessor Problem The predecessor problem: Maintain a set
More informationDierential-Linear Cryptanalysis of Serpent? Haifa 32000, Israel. Haifa 32000, Israel
Dierential-Linear Cryptanalysis of Serpent Eli Biham, 1 Orr Dunkelman, 1 Nathan Keller 2 1 Computer Science Department, Technion. Haifa 32000, Israel fbiham,orrdg@cs.technion.ac.il 2 Mathematics Department,
More informationEnhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract
Enhancing Integrated Layer Processing using Common Case Anticipation and Data Dependence Analysis Extended Abstract Philippe Oechslin Computer Networking Lab Swiss Federal Institute of Technology DI-LTI
More informationReport Seminar Algorithm Engineering
Report Seminar Algorithm Engineering G. S. Brodal, R. Fagerberg, K. Vinther: Engineering a Cache-Oblivious Sorting Algorithm Iftikhar Ahmad Chair of Algorithm and Complexity Department of Computer Science
More informationWorst-case running time for RANDOMIZED-SELECT
Worst-case running time for RANDOMIZED-SELECT is ), even to nd the minimum The algorithm has a linear expected running time, though, and because it is randomized, no particular input elicits the worst-case
More informationLECTURE 11. Memory Hierarchy
LECTURE 11 Memory Hierarchy MEMORY HIERARCHY When it comes to memory, there are two universally desirable properties: Large Size: ideally, we want to never have to worry about running out of memory. Speed
More informationV Advanced Data Structures
V Advanced Data Structures B-Trees Fibonacci Heaps 18 B-Trees B-trees are similar to RBTs, but they are better at minimizing disk I/O operations Many database systems use B-trees, or variants of them,
More informationAn Enhanced Bloom Filter for Longest Prefix Matching
An Enhanced Bloom Filter for Longest Prefix Matching Gahyun Park SUNY-Geneseo Email: park@geneseo.edu Minseok Kwon Rochester Institute of Technology Email: jmk@cs.rit.edu Abstract A Bloom filter is a succinct
More informationFile System Internals. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
File System Internals Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics File system implementation File descriptor table, File table
More informationOptimum Alphabetic Binary Trees T. C. Hu and J. D. Morgenthaler Department of Computer Science and Engineering, School of Engineering, University of C
Optimum Alphabetic Binary Trees T. C. Hu and J. D. Morgenthaler Department of Computer Science and Engineering, School of Engineering, University of California, San Diego CA 92093{0114, USA Abstract. We
More informationThe problem of minimizing the elimination tree height for general graphs is N P-hard. However, there exist classes of graphs for which the problem can
A Simple Cubic Algorithm for Computing Minimum Height Elimination Trees for Interval Graphs Bengt Aspvall, Pinar Heggernes, Jan Arne Telle Department of Informatics, University of Bergen N{5020 Bergen,
More informationIndexing and Searching
Indexing and Searching Berlin Chen Department of Computer Science & Information Engineering National Taiwan Normal University References: 1. Modern Information Retrieval, chapter 9 2. Information Retrieval:
More informationScalable Lookup Algorithms for IPv6
Scalable Lookup Algorithms for IPv6 Aleksandra Smiljanić a*, Zoran Čiča a a School of Electrical Engineering, Belgrade University, Bul. Kralja Aleksandra 73, 11120 Belgrade, Serbia ABSTRACT IPv4 addresses
More informationInternational Journal of Scientific & Engineering Research, Volume 4, Issue 7, July ISSN
International Journal of Scientific & Engineering Research, Volume 4, Issue 7, July-201 971 Comparative Performance Analysis Of Sorting Algorithms Abhinav Yadav, Dr. Sanjeev Bansal Abstract Sorting Algorithms
More informationAN ASSOCIATIVE TERNARY CACHE FOR IP ROUTING. 1. Introduction
AN ASSOCIATIVE TERNARY CACHE FOR IP ROUTING James J Rooney 1 José G Delgado-Frias 2 Douglas H Summerville 1 1 Department of Electrical and Computer Engineering 2 School of Electrical Engineering and Computer
More informationTCP over Wireless Networks Using Multiple. Saad Biaz Miten Mehta Steve West Nitin H. Vaidya. Texas A&M University. College Station, TX , USA
TCP over Wireless Networks Using Multiple Acknowledgements (Preliminary Version) Saad Biaz Miten Mehta Steve West Nitin H. Vaidya Department of Computer Science Texas A&M University College Station, TX
More informationCOS 226 Midterm Exam, Spring 2009
NAME: login ID: precept: COS 226 Midterm Exam, Spring 2009 This test is 10 questions, weighted as indicated. The exam is closed book, except that you are allowed to use a one page cheatsheet. No calculators
More informationTR-CS The rsync algorithm. Andrew Tridgell and Paul Mackerras. June 1996
TR-CS-96-05 The rsync algorithm Andrew Tridgell and Paul Mackerras June 1996 Joint Computer Science Technical Report Series Department of Computer Science Faculty of Engineering and Information Technology
More informationA Large TimeAware Web Graph
PAPER This paper was unfortunately omitted from the print version of the June 2008 issue of Sigir Forum. Please cite as SIGIR Forum June 2008, Volume 42 Number 1, pp 78-83 A Large TimeAware Web Graph Paolo
More information2. Sorting. 2.1 Introduction
2. Sorting 2.1 Introduction Given a set of n objects, it is often necessary to sort them based on some characteristic, be it size, importance, spelling, etc. It is trivial for a human to do this with a
More informationIndexing. Week 14, Spring Edited by M. Naci Akkøk, , Contains slides from 8-9. April 2002 by Hector Garcia-Molina, Vera Goebel
Indexing Week 14, Spring 2005 Edited by M. Naci Akkøk, 5.3.2004, 3.3.2005 Contains slides from 8-9. April 2002 by Hector Garcia-Molina, Vera Goebel Overview Conventional indexes B-trees Hashing schemes
More informationPROJECTION MODELING SIMPLIFICATION MARKER EXTRACTION DECISION. Image #k Partition #k
TEMPORAL STABILITY IN SEQUENCE SEGMENTATION USING THE WATERSHED ALGORITHM FERRAN MARQU ES Dept. of Signal Theory and Communications Universitat Politecnica de Catalunya Campus Nord - Modulo D5 C/ Gran
More informationFast binary and multiway prefix searches for packet forwarding
Computer Networks 5 (27) 588 65 www.elsevier.com/locate/comnet Fast binary and multiway prefix searches for packet forwarding Yeim-Kuan Chang Department of Computer Science and Information Engineering,
More informationData Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data
More informationLixia Zhang M. I. T. Laboratory for Computer Science December 1985
Network Working Group Request for Comments: 969 David D. Clark Mark L. Lambert Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 1. STATUS OF THIS MEMO This RFC suggests a proposed protocol
More informationHyperplane Ranking in. Simple Genetic Algorithms. D. Whitley, K. Mathias, and L. Pyeatt. Department of Computer Science. Colorado State University
Hyperplane Ranking in Simple Genetic Algorithms D. Whitley, K. Mathias, and L. yeatt Department of Computer Science Colorado State University Fort Collins, Colorado 8523 USA whitley,mathiask,pyeatt@cs.colostate.edu
More informationCompressing Pattern Databases
Compressing Pattern Databases Ariel Felner and Ram Meshulam Computer Science Department Bar-Ilan University Ramat-Gan, Israel 92500 Email: felner,meshulr1 @cs.biu.ac.il Robert C. Holte Computing Science
More informationCache Justification for Digital Signal Processors
Cache Justification for Digital Signal Processors by Michael J. Lee December 3, 1999 Cache Justification for Digital Signal Processors By Michael J. Lee Abstract Caches are commonly used on general-purpose
More informationRAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE
RAID SEMINAR REPORT 2004 Submitted on: Submitted by: 24/09/2004 Asha.P.M NO: 612 S7 ECE CONTENTS 1. Introduction 1 2. The array and RAID controller concept 2 2.1. Mirroring 3 2.2. Parity 5 2.3. Error correcting
More informationMaster Course Computer Networks IN2097
Chair for Network Architectures and Services Prof. Carle Department for Computer Science TU München Chair for Network Architectures and Services Prof. Carle Department for Computer Science TU München Master
More informationVirtual Memory Outline
Virtual Memory Outline Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations Operating-System Examples
More informationDATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11
DATABASE PERFORMANCE AND INDEXES CS121: Relational Databases Fall 2017 Lecture 11 Database Performance 2 Many situations where query performance needs to be improved e.g. as data size grows, query performance
More informationPart 2: Balanced Trees
Part 2: Balanced Trees 1 AVL Trees We could dene a perfectly balanced binary search tree with N nodes to be a complete binary search tree, one in which every level except the last is completely full. A
More information