630 likes | 965 Vues
Name Lookup in Named Data Networking(NDN). Bin Liu. Dept of Computer Science and Technology Tsinghua University. Email: liub@tsinghua.edu.cn. Dec 7,2013. ——Outline. 1. Introduction to NDN Name Lookup 2. Name Lookup Evaluation Criteria 3. Name Lookup: Algorithms and Data Structure
E N D
Name Lookup in Named Data Networking(NDN) Bin Liu Dept of Computer Science and Technology Tsinghua University Email: liub@tsinghua.edu.cn Dec 7,2013
——Outline 1. Introduction to NDN Name Lookup 2. Name Lookup Evaluation Criteria 3. Name Lookup: Algorithms and Data Structure ---NSDI’13 ---INFOCOM2013 ---ICDCS2012+Computer Networks’13 ---CCNx/Hashing 4. NDN Name Lookup TestBench 5. Conclusion and Future Work
——Outline 1. Introduction to NDN Name Lookup 2. Name Lookup Evaluation Criteria 3. Name Lookup: Algorithms and Data Structure ---NSDI’13 ---INFOCOM2013 ---ICDCS2013+Computer Networks’13 ---CCNx/Hashing 4. NDN Name Lookup TestBench 5. Conclusion and Future Work
—— Introduction: NDN Namelookup • Named Data Networking (NDN) • Named Data Networking is proposed recently as the clean-slate network architecture for future Internet, which no longer concentrates on “where” the information is located, but “what” the information (content) is needed. • NDN uses names to identify every piece of contents instead of IP addresses for hardware devices attached to IP network.
——Introduction: NDN Namelookup • Naming in NDN • An NDN name is hierarchically structured and composed of explicitly delimited components • Interest and Data Packets in NDN • /cn/edu/tsinghua/cs/s-router/~liubin/research/papers ~liubin research papers cs cn edu tsinghua s-router
——Introduction: NDN Namelookup • Name-based forwarding/routing • In-network caching • Multi-path transmission/delivery Interest Packet Data Packet Replica Client Content Store Content Provider 6/30
——Introduction: NDN Namelookup • A forwarding table consists of name prefixes. • A core challenge and enabling technique in implementing NDN is exactly to perform name lookup for packet forwarding at wire speed.
——Introduction: NDN Namelookup • Three kinds of tables in an NDN router, each has different function
——Introduction: NDN Namelookup • Packet Forwarding Process
——Introduction: NDN Namelookup • Two High-level Requirements for NDN Name Lookup: 1) Longest name Prefix Matching(LPM) 2) Strict latency requirement (<100us) T
——Introduction: NDN Namelookup • The detailed challenges of name lookup • Complex name structure 1) consists of digits and characters; 2) variable length name; 3) without an externally imposed upper bound. • The large-scale name table
——Introduction: NDN Namelookup 400k Prefixes 100M Active Domain Names Number of Active Web-site Worldwide Backbone IP Table Size Name tables could be 2~3 orders of magnitude larger thanIP lookup table
——Introduction: NDN Namelookup • The detailed challenges of name lookup • Complex name structure 1) consists of digits and characters; 2) variable length name; 3) without an externally imposed upper bound. • The large-scale name table (2~3 orders larger ) • Frequently update • Wire Speed (100Gbps Ethernet, OC-3072)
——Introduction: NDN Namelookup A quick comparisonbetween IP lookup table and NAME lookup table
——Outline 1. Introduction to NDN Name Lookup 2. Name Lookup Evaluation Criteria 3. Name Lookup: Algorithms and Data Structure ---NSDI’13 ---INFOCOM2013 ---ICDCS2013+Computer Networks’13 ---CCNx/Hashing 4. NDN Name Lookup TestBench 5. Conclusion and Future Work
——NamelookupEvaluation Criteria • Throughout • Wire speed lookup (100Gbs_GE, 160Gbps_OC-3072) • Gbps • MSPS(Million Search per Second) • Memory efficiency • hundreds of millions of entries • each entry has tens, even hundreds of characters • Update • network topology changes and routing policy modifications • one new type of FIB updates----contents published/deleted • Search latency (< 100us) • Scalability
——Outline 1. Introduction to NDN Name Lookup 2. Name Lookup Evaluation Criteria 3. Name Lookup: Algorithms and Data Structure ---NSDI’13 ---INFOCOM2013 ---ICDCS2012+Computer Networks’13 ---CCNx/Hashing 4. NDN Name Lookup TestBench 5. Conclusion and Future Work
—NSDI’13: Algorithm & Data Structure Two-Dimensional State Transition Table (STT) • Character Trie Name Table b c / / 2 3 4 5 a 0 1 b 6 7 8 9 / c / Character Trie
—NSDI’13: Algorithm & Data Structure • Two-Dimensional State Transition Table (STT) • Advantage • Easy to build • Fast speed: One State Transition needs one memory access only • Disadvantage • Too much memory required to be implemented
—NSDI’13: Algorithm & Data Structure • Aligned Transition Array (ATA) to compress STT Aligned Transition Array STT 1000 998 999 998+b=1096 999+b=1097 1000+a=1097 offset + character’s ASCII code
—NSDI’13: Algorithm & Data Structure • ATA • Advantage • Keep fast speed: one state transition needs one memory access • Low memory space • Disadvantage • Building speed is too slow for large-scale name table • Cannot support incremental updates
—NSDI’13: Algorithm & Data Structure ATA Multiple Stride Character Trie Name Table “a/” = 24879 d-stride character trie, every state may have 28dtransitions at most. bc / a/ 1 2 3 0 ab 4 5 6 / c/ 2-stride Character Trie ATA cannot support multiple Stride Character Trie
—NSDI’13: Algorithm & Data Structure Multi-ATA Multiple Stride Character Trie Name Table “a/” Mod 7=1 “bc” Mod 7=1 “bc” Mod 3=2 bc / a/ 1 2 3 0 ab 4 5 6 / c/ “ab” Mod 7=3 2-stride Character Trie
—NSDI’13: Algorithm & Data Structure • MATA • Advantage • Improve lookup throughput: one state transition consumes multiple characters, and each state transition requires only one memory access • Further compress memory space • Small ATAs in MATA are easier to build and manage • Support fast incremental update
—NSDI’13: Name Lookup Engine Implementation Name Trace Name Table NVIDIA GeForce GTX590 GPU board GPU Aligned Transition Array PCIe Character Trie PCIe Forwarding Update CPU Name Lookup Engine
—NSDI’13: Latency Optimization Name Trace Name Table Name Batch GPU Aligned Transition Array PCIe Character Trie A PCIe Forwarding Update B CPU Name Lookup Engine
——NSDI’13: Experimental Results • Platform: A commodity PC • Name Table • Download from DMOZ website: 3M • Crawl from Internet: 10M • Name Trace • Average workload: random name prefix + suffix • Heavy workload: the longest 10% name prefix + suffix
——NSDI’13: Experimental Results • Memory Space • 3M name table • ATA vs STT: 101× • MATA vs STT: 130 × • 10M name table • ATA vsSTT: 102× • MATA vsSTT: 142×
——NSDI’13: Experimental Results • Lookup Speed (Million Searches per Second, MSPS) • 10M, Average Workload • 10M, Heavy Workload
——NSDI’13: Experimental Results • Scalability • Lookup speed • Memory • Latency
——NSDI’13: Experimental Results • Update Nearly 600K deletion per second More than 30K insertion per second
——NSDI’13: Conclusion • MATA is proposed to compress memory space and improve name lookup speed • Implement a wire speed name lookup engine based on a commodity PC installed with a GTX590 GPU board • Extensive experiments demonstrate: • Name lookup speed: 63.52 MSPS,>127 Gbpswire-speed • Latency: <100us • Memory: compress >140× • Good Scalability Open Website: http//www.namelookup.org
——Outline 1. Introduction to NDN Name Lookup 2. Name Lookup Evaluation Criteria 3. Name Lookup: Algorithms and Data Structure ---NSDI’13 ---INFOCOM2013 ---ICDCS2012+Computer Networks’13 ---CCNx/Hashing 4. NDN Name Lookup TestBench 5. Conclusion and Future Work
—INFOCOM2013_NameFilter:Algorithm & Data Structure [5] SarangDharmapurikar, P. Krishnamurthy, and D. E. Taylor, “Longest prefix matching using bloom filters,” in Proceedings of ACM SIMCOMM’03, 2003. • NameFilter: Basic Framework First Stage: Bloom filters for ascertaining the prefix length of a name Second Stage: Hash Table for ascertaining forwarding ports /com/google/maps/ name: prefix: /com/google/maps/…/ /com/google/maps/ prefix: prefixes: … Prefix Hash Table: 1-th B-th 2-th 3-th … … Bloom filters: Next Port … Match Vector:
—NameFilter:Algorithm & Data Structure • NameFilter: Improved Framework First Stage: Bloom Filters for ascertaining the prefix length of a name Second Stage: Merged Bloom Filters for ascertaining forwarding port(s) name: /com/google/maps/…/ prefix: /com/google/maps/ prefixes: … Merged Bloom Filters: 1-th w-th 2-th 3-th … … Bloom filters: … Next Ports Match Vector:
—NameFilter: Algorithm & Data Structure • NameFilter: Improved Framework • Merged Bloom Filter Merged Bloom filter: Hash functions (prefix) 1-th Bloom filter: Hash functions (prefix) Merge and Transpose Hash functions (prefix) 2-th Bloom filter: … N-th Bloom filter: Hash functions (prefix) Memory access times is reduced from k to 1 11..1 & 11..1 & 10..0 & 11..1 => 10..0
——NameFilter: Experimental Results • Platform: A commodity PC • Name Table • Download from DMOZ website: 3M • Crawl from Internet: 10M • Name Trace • Average workload: random name prefix + suffix • Heavy workload: the longest 10% name prefix + suffix
——NameFilter: Experimental Results • Lookup Speed (Million Searches per Second, MSPS) • One processing thread • NameFilter: 16× of Character Trie • 1.8× of Bloomhash
——NameFilter: Experimental Results • Lookup Speed (Million Searches per Second, MSPS) • 24 processing threads • NameFilter11.7× of Character Trie
——NameFilter: Experimental Results • Memory Space • Compared with Character Trie, NameFilter saves more than 77% memory space. • Compared with BloomHash, NameFilter saves more than 65% memory space.
——NameFilter: Experimental Results • Scalability • Lookup speed • Memory
——NameFilter: Experimental Results • Update Nearly 3.4M deletion per second More than 3M insertion per second
——Outline 1. Introduction to NDN Name Lookup 2. Name Lookup Evaluation Criteria 3. Name Lookup: Algorithms and Data Structure ---NSDI’13 ---INFOCOM2013 ---ICDCS2012+Computer Networks’13 ---CCNx/Hashing 4. NDN Name Lookup TestBench 5. Conclusion and Future Work
—Component Coding : Algorithm & Data Structure • The idea of Name ComponentEncoding (NCE) /com/google/map/china /10/10/0
—Component Coding : Algorithm & Data Structure level-1 level-2 level-3 level-4 level-5 news 4 yahoo 3 uk 5 6 maps 2 maps com google 7 8 1 maps google A B cn sina 9 C map baidu D E < yahoo,1> <google, 2> <baidu,1> <sina, 2> <google, 3> <baidu,1> <google, 2> <google, 3> <sina, 3> <yahoo, 1> <baidu,1> <google, 4> <sina, 3> <yahoo, 1>
—Component Coding : Algorithm & Data Structure • Global-Code Allocation Mechanism
—Component Coding : Algorithm & Data Structure • Local-Code Allocation Mechanism
—Component Coding:Implementation • GPU-based Implementation
—Component Coding:Experimental Results • Experimental Result: Memory
—Component Coding:Experimental Results • Experimental Result: Throughput