Title: Advanced topics in Computer Networks
1Advanced topics inComputer Networks
Lecture 8 Trie-based lookup
- University of Tehran
- Dept. of EE and Computer Engineering
- By
- Dr. Nasser Yazdani
2Trie Based Methods
- Trie or radix tree is a data structure in which
each data element is represented by the path to
the leaf and no. of internal nodes are the no. of
alphabet.
Two branching. Black node in the leaves
represent next hops
3Trie Based Methods (cont)
- Trie has been the base of many methods.
- There are two main problems with trie
- The blank nodes do not correspond to any data
element in the lookup table. - The number of branching is small, 2.
- Both of these add to the height of trie, waste
memory and prolong the search time. - The Max search time is proportional to string
length or O(32) for IPv4 and O(128) for IPv6.
4Trie Based Methods (cont)
- Trie based schemes try to reduce the memory usage
and shorten the trie height and expedite the
search time. - In the worst case, the memory usage can be O(NL)
where N is number of prefixes and L is their
length. - Compressed Trie
- The idea is to eliminate blank node as much as
possible. - Patricia trie compress the path from root to
the leaf.
5Trie Based Methods (cont)
The information of skipped bits can be kept in
links
Max memory usages is O(2N) The worst case search
is again O(NL).
6Trie Based Methods (cont)
- Dynamic Prefix Trie (DP-Trie)
- Introduced by IBM research center in Zurich.
- the idea is to
- I) Eliminate the blank nodes completely
- II) Push common prefixes upper.
- III) To Make the height proportional to the
of prefixes than prefix lengths. - IV) Compare more bits as much as possible.
- They introduce a specific data structure each
node having the following fields.
7Trie Based Methods (cont)
- Index differentiating bit
- position.
- LeftKey and RightKey
- Prefixes with leftKeyIndex0
- RightKeyIndex1.
- The trie is build dynamically.
- Example 1000100, 1001, 10, 1111, 11
- First the trie is empty. Then, 1000100 is
- inserted. A node is allocated.
8Trie Based Methods (cont)
6 in the first implies the differentiating bit is
6th. In the second node, 1001 is inserted. The
differentiating bit is 3th. 10 inserted. Index
is 1. New node is allocated.
9Trie Based Methods (cont)
And the final trie with those elements is
10Trie Based Methods (cont)
- Problems
- Two way branching.
- Too much overhead for
- each node.
What is next?
11Trie Based Methods (cont)
- Controlled Prefix Expansion
- the idea is to compare more bits at the same
time. (reduce the height of trie) - Reduce prefixes with N distinct lengths to
equivalent prefixes of M (MltN) lengths. - Expansion Expand Prefix P of length L into two
Prefixes P0 and P1 of lengths L1. - Reduction delete any repeated prefix.
- Indeed, this method compress few level together
and use extra memory to reduce trie height. -
12Trie Based Methods (cont)
- Example The same data set
- Expand length 1 -gt 2. Then,
- 00, 01, 10, 11
- P5, P5, P1, P4
Final lengths are 2, 5 and 7.
Reduce the search time from 7 to 3.
13Trie Based Methods (cont)
- Problem Extra memory usage.
- Solution Optimize the memory usage.
- Pick stride s for root and recursively solve the
covering problem for the subtrees rooted at Trie
level s1 using k-1 level
The dynamic programming method can be used to
build the data structure bottom up with all
values of K. Insertion?
14Trie Based Methods (cont)
- Level Compress Trie LC-trie
- the idea is the same as the previous one, to
compare more bits at the same time. - Few levels are compress together.
15Trie Based Methods (cont)
- LC-trie reduces the height of trie in the
expense of memory usage. - In order to have better memory utilization, it
uses Greedy algorithm and compress the part which
is more populated.
In each level, we have to keep all possible
combination like 000, 001, 010, etc.
16Trie Based Methods (cont)
- Problems With expansion methods.
- Insertion may need to reconstruct the trie.
- Not scaleable to IPv6.
- Problems with LC-trie
- It uses greedy algorithm and optimize memory
locally, the final memory utilization may not be
good. - Higher trie height and skip count compression
leads to slower search times. - The Controlled Prefix Expansion method uses the
same technique but, try to globally optimize
memory usage.