1 / 26

Fast Routing Table Lookup Based on Deterministic Multi-hashing

Fast Routing Table Lookup Based on Deterministic Multi-hashing. Zhuo Huang , David Lin, Jih-Kwon Peir, Shigang Chen, S. M. Iftekharul Alam Department of Computer and Information Science and Engineering University of Florida. Outline. Hash-based routing table lookup

fisk
Télécharger la présentation

Fast Routing Table Lookup Based on Deterministic Multi-hashing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fast Routing Table Lookup Based on Deterministic Multi-hashing Zhuo Huang, David Lin, Jih-Kwon Peir, Shigang Chen, S. M. Iftekharul Alam Department of Computer and Information Science and Engineering University of Florida 1

  2. Outline • Hash-based routing table lookup • Challenges and current approaches • Our solution: DM-Hash • Related works • Performance results • Conclusion

  3. Routing Table Lookup • Find the Next Hop info for each incoming packet based on its destination address and the Routing Table. 01000000 Routing Table Port A Port B Port C 01000000 -> Port B 01000000

  4. Three main approaches • T-CAM based approaches • Low latency • high hardware and power cost • Trie based approaches • Low power, less storage space • Long lookup latency • Hash based approaches • Power efficient, good for large table • Collision issues, special support for LPM

  5. Hash-based IP Lookup • The prefixes are stored in off-chip SRAM; • Organized as buckets; • Each bucket stores several prefixes; • One bucket, one memory access.

  6. IP-lookup Procedure for Length k Destination Address Hash Unit Use the first k bits Match? Fetch from SRAM Matched Prefix and Routing Information

  7. Two Major Problems • Determine the prefix length • Variable lengths in the routing table • Bloom Filters, Prefix Expansion… • Fetch the bucket(s) from the off-chip SRAM • Bottleneck of the routing throughput • Our target

  8. Routing Throughput • n prefixes, m buckets • Memory Bandwidth is B (bits/sec) • Bucket size (bits) s • If the largest bucket has Ω prefixes • each prefix takes l bits • S= Ω * l • Needs to fetch t buckets • The maximum routing throughput is B/(t*s) = B/ (t* Ω * l)

  9. Challenge • A good hash function for hash-based routing table lookup should be: • Optimal or nearly optimal bucket size; (Ω =n/m) • 1 bucket access; (t=1)

  10. Existing Approaches • Single Hash: • Easy to implement; 1-bucket access • Large bucket size • Non-deterministicMultiple Hash: • Nearly optimal bucket size • Need to access multiple buckets • Only achieve 1/k of the optimal throughput, if using k hash functions

  11. Deterministic Multi-hashing • When placing a prefix, it can be placed to multiple buckets • Reduce bucket size • When searching a prefix, only one bucket needs to be searched; • Reduce the number of fetched buckets • Use an index table to record where each prefix goes • Nearly optimal routing throughputs

  12. Index Table • Simplest way: • Record the choice for each prefix • Need a table at least as large as the routing table • A small table: • Suitable to be placed on chip • Different prefixes share the same entry • Each prefix is hashed to multiple entries in the table

  13. DM-Hash Multiple hash functions How to setup it? Xor all the values to determine the bucket On-chip Index table. Each entry stores a value

  14. Index Table Setup • Each prefix is associated to multiple entries; • Each entry is associated to multiple prefixes; • The location of a prefix is determined as long as all the entries in the index table that it hashed to is assigned; • The order matters!

  15. Order Example • Four Prefixes P0, P1, P2, P3; • Index table: 4 entries: E0, E1, E2, E3; • Hash to the index table: • P0: -> E0, E3 • P1: -> E1, E3 • P2: -> E2, E3 • P3: -> E0, E2 • Order: E0, E1, E2, E3; • Order: E3, E2, E1, E0; • E3, E2, E1, E0 is better!

  16. Progressive Order • Find a order to determine the entries • Key idea • Balance the number of prefixes decided by each entry during the setup

  17. Assign Values for the Index Table • Try all the possible m values of the entry E • Get m different ways to place the prefixes whose locations are determined by the value of E • Find the most balanced one among the m possible choices

  18. Results for Random Prefixes • Put 1,000,000 Prefixes to 300,000 buckets:

  19. Analysis • How large the index table should be? • Let x be the index table size • For m=300,000 n=1000,000, we get x>67180

  20. Related Works (1) • Hashing Approaches: • Multiple Hashing: Broder 2001; • D-left Hashing: Bonomi 2006 • Cockoo Hashing: Demetriades 2008 • Peacock Hashing: Kumar 2008 • Perfect Hashing: Lu 2007

  21. Related Works (2) • Bloom filters and its variance: • Bloom filter: Dharmapurikar 2003 • Bloomier filter: Chazelle 2004 • Chisel: Hasan 2006 • Distributed and Load Balanced Bloom Filters: Song 2009

  22. Determine the Prefix Length Off-chip SRAM Expanded to 23 bits On-Chip TCAM

  23. Routing Table Experiment • 5 largest routing tables; • DM-Hash, Single-Hash, NM-Hash (2-left Hash); • Vary the number of buckets from 16K to 2M; • Throughput: • Based on the fastest SRAM QDR SRAM III (72-bits block, 500M read/write operations per second) • Assume each prefix and routing info takes 40 bits

  24. Throughput A future network processor needs to process >150 M packets per second Our DM-Hash can achieve the throughput up to 250 M packets per second

  25. Conclusion • DM-Hash aims at the problem of fast routing table lookup; • It minimizes both the size of each bucket and the number of buckets that needs to be fetched; • It achieves over 250M table lookup per second; • It can be applied to many other applications.

  26. Thanks!Questions? 26

More Related