Approximate Caches for Packet Classification

1
Approximate Caches for Packet Classification http://www.cse.ogi.edu/sysl/ The Motivation: Packet Classifiers are getting more complex and Flow Identifiers are getting more unwieldy (IPv4->IPv6) So Packet Classification Caches are getting bigger and slower The Story: What if we give up accuracy – let’s accept some occasional mistakes. This allows us to save memory and increase performance! Optimizing a Bloom filter: This is the traditional Bloom filter equation – minimizing misclassification probability for a fixed # of elements. Bloom filter caches using different number of hash functions: The curve is very smooth near the optimal point. The interesting properties of a Bloom Filter: 1) The # of elements that we can fit in a Bloom filter is scales linearly with the amount of memory The # of flows we can store, if we use multiple Bloom filters: The decrease in # of flows is approx. logarithmic with # of Bloom filters Number of flows we can fit into a Bloom filter cache: Using different misclassification probabilities, compared to an exact cache. The Payoff: The cache hit rate - comparing Bloom filter caching and traditional exact caching. Francis Chang, Kang Li, Wu-chang Feng {francis, kangli, wuchang}@cse.ogi.edu OGI SCHOOL OF SCIENCE & ENGINEERING OREGON HEALTH & SCIENCE UNIVERSITY Behind the scenes: A Bloom filter optimized for packet classification can store flow identifier signatures. H 1 () H 2 () H 3 () H 4 () H 5 () 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Inserting a flow ID into a Bloom filter Storing Forwarding Paths: A Bloom filter can only store 1 bit of information – set membership. For applications more sophisticated than firewalls, we can store more information by using multiple Bloom filters. So, by using an approximate caching strategy, we can build a cache architecture that’s faster, and more memory efficient than existing exact caching strategies. L k ication misclassif M L p 1 1 ) 1 ln( 1 L p L M L=# hash levels, M=amount of memory, p= probability, k=# of elements (flows). We prefer to maximize the # of elements for a fixed misclassification probability. 20 40 60 80 100 120 140 1000 10000 100000 Hit rate (%) Amount of cache memory (in bytes) OGI Trace, Perfect Cache OGI Trace, Double-Buffered OGI Trace, Cold Cache OGI Trace, Pure LRU (IPv4) OGI Trace, Pure LRU (IPv6) p L 2 log 2) The optimal # of hash levels in Bloom filter is dependent only on the misclassification probability, not the amount of memory: 3) For a misclassification probability of 1 in a billion, optimal dimensioning is L = 30 hash levels Sponsored by Intel

description

Francis Chang, Kang Li, Wu-chang Feng {francis, kangli, wuchang}@cse.ogi.edu. The Motivation: Packet Classifiers are getting more complex and Flow Identifiers are getting more unwieldy (IPv4->IPv6) So Packet Classification Caches are getting bigger and slower The Story: - PowerPoint PPT Presentation

Transcript of Approximate Caches for Packet Classification

  • Approximate Caches for Packet Classificationhttp://www.cse.ogi.edu/sysl/The Motivation: Packet Classifiers are getting more complex and Flow Identifiers are getting more unwieldy (IPv4->IPv6) So Packet Classification Caches are getting bigger and slower

    The Story: What if we give up accuracy lets accept some occasional mistakes. This allows us to save memory and increase performance!Optimizing a Bloom filter: This is the traditional Bloom filter equation minimizing misclassification probability for a fixed # of elements. Bloom filter caches using different number of hash functions: The curve is very smooth near the optimal point.The interesting properties of a Bloom Filter: 1) The # of elements that we can fit in a Bloom filter is scales linearly with the amount of memoryThe # of flows we can store, if we use multiple Bloom filters: The decrease in # of flows is approx. logarithmic with # of Bloom filtersNumber of flows we can fit into a Bloom filter cache: Using different misclassification probabilities, compared to an exact cache.The Payoff: The cache hit rate - comparing Bloom filter caching and traditional exact caching.Francis Chang, Kang Li, Wu-chang Feng {francis, kangli, wuchang}@cse.ogi.eduOGI SCHOOL OF SCIENCE & ENGINEERING

    OREGON HEALTH & SCIENCE UNIVERSITYBehind the scenes: A Bloom filter optimized for packet classification can store flow identifier signatures.H1() H2() H3() H4() H5() 11111111111111Inserting a flow ID into a Bloom filterStoring Forwarding Paths: A Bloom filter can only store 1 bit of information set membership. For applications more sophisticated than firewalls, we can store more information by using multiple Bloom filters.

    So, by using an approximate caching strategy, we can build a cache architecture thats faster, and more memory efficient than existing exact caching strategies. L=# hash levels, M=amount of memory, p= probability, k=# of elements (flows).We prefer to maximize the # of elements for a fixed misclassification probability.2) The optimal # of hash levels in Bloom filter is dependent only on the misclassification probability, not the amount of memory:3) For a misclassification probability of 1 in a billion, optimal dimensioning is L = 30 hash levelsSponsored by Intel