180 likes | 341 Views
Tree, Segment Table, and Route Bucket A Multi-Stage Algorithm for IPv6 Routing Table Lookup. Authors: Zhenqiang LI and Dongqu ZHENG Yan MA Presenter: Yi-Sheng, Lin ( 林意勝 ) Date: Nov. 1, 2007 Publisher/Conf. : INFOCOM 2007.
E N D
Tree, Segment Table, and Route Bucket A Multi-Stage Algorithm for IPv6 Routing Table Lookup Authors: Zhenqiang LI and Dongqu ZHENG Yan MA Presenter: Yi-Sheng, Lin (林意勝) Date: Nov. 1, 2007 Publisher/Conf. : INFOCOM 2007 Dept. of Computer Science and Information Engineering National Cheng Kung University, Taiwan R.O.C.
Outline • Introduction • Observations • The Proposed Algorithm • Evaluation Results • Conclusions
Introduction • Based on the observations on 1. the IPv6 address structure 2. IPv6 address allocation policies 3. real world IPv6 backbone BGP routing table • Multi-stage IPv6 routing table lookup algorithm (called TSB) which combines three data structures : 1. The binary tree 2. The segment table 3. The route bucket
ObservationsStructure of IPv6 address • 45-bit global routing prefix ( the first three bits should always be ‘001’) • 16-bit subnet ID • 64-bit interface ID • Only the global routing prefix and the subnet ID are used for routing
ObservationsAllocation policies for IPv6 address /23 /32 /48, /64, /128
ObservationsCharacteristics of real IPv6 backbone BGP routing tables
ObservationsCharacteristics of real IPv6 backbone BGP routing tables • There are only a few different values for the first 16 bits (0x2001, 0x2002, 0x2003, 0x2400, 0x2404, 0x2610, 0x2800, 0x2A01, and 0x3FFE) • Most of the routing prefixes begin with 0x2001 • Routing prefixes begin with other values are very few (usually no more than 64) • Routing prefixes with the same value (same first 16 bits) for the 17-32nd bits are very few
ObservationsCharacteristics of real IPv6 backbone BGP routing tables
The Proposed AlgorithmRouting Update • Insertion: For adding a routing entry, say R, we first find the position to insert by looking up R in TSB data structure. There are 3 types of possible positions to add R. • R should be placed in the binary tree • R should be placed in segment table • R should be placed in route bucket • Deletion: Deleting a routing entry from the TSB data structure is similar to the insertion. 3 kinds of cases exist
The Proposed AlgorithmDiscussion • For the first stage1) The ordinary binary tree without any improvement 2) Height balanced binary tree to enhance the worst case lookup performance 3) The binary tree rooted in the node that the majority of the Internet traffic potentially match • For the second stage Different sizes can be used to trade off between the lookup performance and memory consumption. • For the third stage1) linear search 2) TCAM (Ternary Content Addressable Memory) 3) binary search on prefix interval
Evaluation ResultsEvaluation results using real world IPv6 routing tables
Evaluation ResultsEvaluation results using real world IPv6 routing tables
Evaluation ResultsScalability tests using synthesized IPv6 routing tables
Evaluation ResultsScalability tests using synthesized IPv6 routing tables
Evaluation ResultsScalability tests using synthesized IPv6 routing tables
Conclusions • This scheme performs faster, occupies less memory, scales better, and supports incremental update.