Internet Routers http://www.windowsecurity.com/whitepapers/Excerpts_from_The_Encyclopedia_of_Networking_.html Sample Routers Router Functionality I N P U T P O R T S O U T P U T P O R T S Rule Table • Used to decide where to send a packet next (next hop). Destination address. Can get larger than 1M rules Router Rule Table • • • • • • USA Output port 1 Illinois Port 2 Chicago Port 3 Europe Port 4 Asia Port 5 Etc. Router Rules • Range [35, 2096] • Address/mask pair 101100/011101 Matches 101100, 101110, 001100, 001110. • Prefix filter. Mask has 1s at left and 0s at right. 101100/110000 = 10* = [32, 47]. Special case of a range filter. Example Router Table P1 = 10* P2 = 111* P3 = 11001* P4 = 1* P5 = 0* P6 = 1000* P7 = 100000* P8 = 1000000* P1 matches all addresses that begin with 10. Tie Breakers • First matching rule. • Highest-priority rule. • Most-specific rule. [2,4] is more specific than [1,6]. [4,14] and [6,16] are not comparable. • Longest-prefix rule. Longest matching-prefix. Longest-Prefix Matching P1 = 10* P2 = 111* P3 = 11001* P4 = 1* P5 = 0* P6 = 1000* P7 = 100000* P8 = 1000000* Destination = 100000000 P1, P4, P6, P7, P8 match this destination P8 is longest matching prefix Table Size • • • • 1M+ rules Prefix up to 32 bits in IPv4 Prefix up to 128 bits in IPv6 OC192, 10Gbps 32 mpps (40-byte packets) • Log2 n schemes make too many memory accesses. • 50,000 updates/sec Handling Updates • Batch Control Plane Updates No lookup delay Rebuild time Time to switch Double resource Data Plane Lookups Handling Updates • Incremental Control Plane Updates Minimize lookup lockout Data Plane Lookups Types of Solutions • Hardware TCAM (Ternary Content Addressable Memory) Using binary tries for power reduction • Software 1-bit and multibit tries Compact representation of binary tries 2-dimensional tries Ternary CAMs d = 011001 Priority Encoder 011* H7 000* H6 11* H5 Longest prefix matching 01* H4 Highest priority matching 00* H3 Insert/Delete 0* H2 * H1 TCAM SRAM Ternary CAM Limitations • • • • • • • Capacity Cost Power Board space Scalability to IPv6? Ranges? Multidimensional filters? TCAM Power Reduction 011* H7 000* H6 11* H5 01* H4 00* H3 0* H2 * H1 TCAM SRAM Power proportional to size of TCAM searched n rules power ~ cn Use an Indexed TCAM 00* 0,2 000* H6 0* 2,3 * 5,2 00* 011* H3 H7 01* H4 0* 11* H2 H5 ITCAM ISRAM * DTCAM Ideally, |ITCAM| =|each DTAM partition| = sqrt(n) Power ~ 2 sqrt(n) H1 DSRAM Partition Using A Binary Trie 011* H7 000* H6 11* H5 01* H4 00* H3 0* H2 * H1 TCAM SRAM * 0* 00* 000* 01* 11* 011* * DTCAM Partitioning 0* 00* 01* 000* 11* 011* 00* 0,2 000* H6 0* 2,3 * 5,2 00* 011* H3 H7 01* H4 0* 11* H2 H5 ITCAM ISRAM * DTCAM H1 DSRAM 1-Bit Trie P5 P4 P1 = 10* P2 = 111* P3 = 11001* P4 = 1* P5 = 0* P6 = 1000* P7 = 100000* P8 = 1000000* P1 P2 P6 P3 P7 P8 Complexity P5 P4 P1 P2 O(W)/operation P6 P3 P7 P8 Batch Updates • Reduce number of memory accesses for a lookup. Multibit trie. Multibit Tries • Branching at a node is done using >= 1 bit (rather than exactly 1 bit) Fixed stride • Nodes on same level use same number of bits Variable stride Fixed-Stride Tries • Number of levels = number of distinct prefix lengths. • Use prefix expansion to reduce number of distinct lengths. Prefix Expansion P1 = 10* P2 = 111* P3 = 11001* P4 = 1* P5 = 0* P6 = 1000* P7 = 100000* P8 = 1000000* #lengths = 7 P1 = 10* P2a = 11100* P2b = 11101* P2c = 11110* P2d = 11111* P3 = 11001* P4a = 11* P5a = 00* P5b= 01* P6a = 10000* P6b = 10001* P7a = 1000001* P8 = 1000000* #lengths = 3 Fixed-Stride Trie 2 P5 P5 P1 P4 3 P6 P6 3 P3 2 P8 P7 P2 P2 P2 P2 Optimization Problem • Find least memory fixed-stride trie whose height is at most k. P5 P5 P1 P4 P6 P6 P3 P8 P7 P2 P2 P2 P2 P5 Variable-Stride Tries P4 P1 P2 P6 P3 P7 P8 2 P5 P5 P1 P4 3 5 P8 P7 P6 P6 P6 P6 P6 P6 P3 P2 P2 P2 P2 ... Binary Tries 011* H7 000* H6 11* H5 01* H4 00* H3 0* H2 * H1 H1 H2 H3 H6 H4 H5 H7 Succinct Representation of Tries 4 bytes/ptr 8 bytes+ per node 48+ bytes Succinct Representation of Tries a a b b c c d d Internal Bit Map (IBM) = 101001001000000 Next Hop List = abcd 15 bits for IBM vs 48 bytes for child pointers Popcount Succinct Representation of Tries a b c d Shape Bit Map (SBM) = 111101001 Internal Bit Map (IBM) = 101011 Next Hop List = abcd 15 bits for SBM & IBM vs 48 bytes for child pointers Binary Trie P1 = * P2 = 0* P3 = 000* P4 = 10* P5 = 11* (a) prefixes Tree Bitmap Shape Shifting Trie Hybrid Shape Shifting Trie Two-Dimensional Filters • Destination-Source pairs. • (0*, 1100*) Dest address begins with 0 and source with 1100 • Least-cost tie breaker (0*, 11*, 4) and (00*, 1*, 2) Packet (00…, 11…) Use second rule. 2D 1-Bit Tries • • • • • • • F1 = (0*, 1100*, 1) F2 = (0*, 1110*, 2) F3 = (0*, 1111*, 3) F4 = (000*, 10*, 4) F5 = (000*, 11*, 5) F6 = (0001*, 000*), 6) F7 = (0*, 1*, 7) 2D Multibit Tries • • • • • • • F1 = (0*, 1100*, 1) F2 = (0*, 1110*, 2) F3 = (0*, 1111*, 3) F4 = (000*, 10*, 4) F5 = (000*, 11*, 5) F6 = (0001*, 000*), 6) F7 = (0*, 1*, 7) Space-Optimal 2D Multibit Tries • Given k. • Find 2DMT that can be searched with <= k memory accesses and has minimum memory requirement. 2D Binary Tries • Succinct representations • 2D hybrid shape shifting tries with minimal memory and specified bound on number of memory accesses to do a lookup
© Copyright 2026 Paperzz