Download presentation
Presentation is loading. Please wait.
Published byLily Hawkins Modified over 9 years ago
1
1 Routing with a clue Anat Bremler-Barr Joint work with Yehuda Afek & Sariel Har-Peled Tel-Aviv University
2
2 IP Lookup IP lookup - given an IP address, determine the next hop for reaching that destination Fast Address lookup key component for high performance routers 1011001101011011001111110101 Destination Address Prefix NxtHop * 4 00* 12 011101110* 3 01111* 7 1* 2 10000001* 3 10110* 3 101111* 5 10110011 * 2 10110011010* 4 Forwarding Table
3
3 Best Matching Prefix (BMP) Routers today use kind of trie data structure (Patricia) BMP lookup is expensive –Count in number of memory reference 1 1 0 Prefix NxtHop * 1 00* 2 000* 3 0001* 4 01* 2 1* 1 110* 3 Forwarding table trie Example: The BMP of 0000 is 000* 01 0 01
4
4 Faster data structureFaster data structure –[WVTP 97] log W (W=32) –[DBCP 97] [ DKVZ 99] [CM99] [NK98] compression –[LSV 98] binary and 6-way search –[SV 98] version on tries –[ CP99] caching HardwareHardware –CAMs [MF 93] –Pipeline [GLM 98], [HZPS99] Reducing the need of IP lookupReducing the need of IP lookup –Tag-Switching –CSR –ARIS –IP-Switching –threaded indices –MPLS Three Approaches
5
5 Our Approach Routing with a Clue: Distributed IP-lookup Clue: Telling a router where its upstream neighbor ended the IP lookup R1R2R3 00 1 0 1 1 1 1 R4 0 1 1 1 Many times the BMP ’ s are identical
6
6 Distributed IP-lookup Prefix length Work in Trie Work with a clue 32 backbone 1
7
7 Distributed IP lookup, why ? Each router on the path to the destination performs a similar IP-lookup: Same destination address Similar forwarding tables at neighboring routers Number of Prefixes
8
8 Forwarding tables are similar Number of Prefixes
9
9 Even if the routers are not neighbors Number of Prefixes
10
10 Outline: Simple method Clue table and fields Advanced method Experimental results MPLS improvements Conclusions
11
11 In many cases the Clue directly determines the best matching prefix: When the clue vertex (in the trie): (a) has no descendants, (b) does not exist Trie of R1Trie of R2 (a) (b) R1R2
12
12 In other cases the clue is - a good point to start IP lookup Search from the vertex that corresponds to the clue If search fails, then forward according to the BMP of the clue string Trie of R1 Trie of R2 0 0 1 1 1 0 0 R1R2 Dest. Add. :001101010...
13
13 Clue Table R1 R2 R3 Clue table Clue table Clues table
14
14 The clue table An entry for each clue a router may receive from its neighbors Two fields, that are pre-computed: –Ptr –Ptr - pointer to the vertex that corresponds to the clue –FD –FD - Final Decision (BMP, next hop): When clue fixes the BMP When the search from the clue fails (two cases are distinguished by Ptr value) Clue table size: Estimation 500KB
15
15 Example R1R2 Prefix NxtHop * 00* 0001* 01* 1* Prefix NxtHop * 00* 0001* 00010* 0101* 011* 1* Clue FD Ptr * 00* 0001* 01* * 1* 0 0 0 0 0 0 1 1 1 1 1 1 1 Forwarding table Clue table Forwarding table 0 1 0
16
16 Combining the clue table of several neighbors A clue table at each interface If not, combine them into one table
17
17 Clue encoding in the header 5 bits (IPv4) indicating the prefix of the dest. address which is the clue Example: Dest address Dest address:10110011111101011011001111110101 Clue is coded Clue is coded : 10001 The clue The clue : 10110011111101011 Need a hash-table
18
18 To avoid hash-table Replace clue with pair: index is into the clue table (16 bits) Learning on the fly Dest address Dest address:10110011111101011011001111110101 Clue is coded Clue is coded : 10001 The clue The clue : 10110011111101011 Index: Index: 1110110101010110 1011…01 1110110101010110 Clue Ptr FD Similar to the idea [CV96]
19
19 Example R1R2 Prefix NxtHop * 00* 0001* 01* 1* Prefix NxtHop * 00* 0001* 00010* 0101* 011* 1* Clue FD Ptr * 00* 0001* 01* * 1* 0 0 0 0 0 0 1 1 1 1 1 1 1 Forwarding table Clue table Forwarding table 0 1 0
20
20 Advanced method or get more from a clue Trie at R1Trie at R2 clue BMP of clue R1R2
21
21 Advanced Method - Claim: No search is necessary, if on any path going down from the “clue” at the trie of R2, a prefix of R1 is encountered, before or at the same time that a prefix of R2 is encountered If Claim holds on the received clue, lookup costs one memory reference Otherwise Problematic clues need further search
22
22 Problematic Clues 2.45% 0.0008% AT&T1->AT&T2 AT&T2->AT&T1 Number of Prefixes Number of Prefixes
23
23 Problematic Clues 0.0011% 0.0006% ISP-B1->ISP-B2 ISP-B2->ISP-B1 Number of Prefixes Number of Prefixes
24
24 Combining the clue table of several neighbors A clue table at each interface Advanced method - behavior depends on which neighbor the clue came from: Three solutions: – Intersection No search - if all neighbors agree that no further search is necessary –Bit Map Join the clues of neighbors in one table Add a Bit Map to each clue entry: The j bit is set - further search is necessary if clue came from the j-th neighbor –Sub-tables: One table for the intersection: the clues that behave the same, Specific table per neighbors for the other clue
25
25 Method of continued search Trie, Patricia[S93,LS88], binary, 6-way[LSV98], Log W [WVTP97] Clue from R1 Trie at R2 Prefix of R1 Prefix of R2
26
26 Experimental results AT&T1 AT&T2 Mem ref’s
27
27 Experimental results AT&T2 AT&T1 Mem ref’s
28
28 Multi Protocol Label Switching “ Route once switch many ”
29
29 CLUE & MPLS MPLS still needs an IP-lookup – Data driven: at set up – Control driven: at aggregation point The label here is the clue R1R2R3R4 R5 R6 10.0.0/24 10.0.0.1/25 10.0.0.0/25
30
30 Simplicity 10 times faster Switching speed, without major changes (but MPLS w/o TE) Heterogeneous IP networks No coordination No setup time Helps MPLS too
31
31 Future Work Clue with multidimensional classification Further experiments
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.