500 likes | 657 Views
Bitmap Algorithms for Counting Active Flows on High Speed Links. Cristian Estan, George Varghese, Mike Fisk Computer Science and Engineering Department, University of California, San Diego. Why count flows?. Detect port/IP scans Identify DoS attacks Estimate spreading rate of a worm
E N D
Bitmap Algorithms for Counting Active Flows on HighSpeed Links Cristian Estan, George Varghese, Mike Fisk Computer Science and Engineering Department, University of California, San Diego Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Why count flows? • Detect port/IP scans • Identify DoS attacks • Estimate spreading rate of a worm • Packet scheduling Dave Plonka’s FlowScan Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Network bandwidth Memory size & bandwidth Memory Existing flow counting solutions Router Traffic reports Server NetFlow data Analysis Fast link Network Network Operations Center Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Motivating question • Can we count flows at line speeds at the router? • Wrong solution – counters • Naïve solution – use hash tables (like NetFlow) • Our approach – use bitmaps Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting algorithms • A family of algorithms that can be used as building blocks in various systems • Algorithms can be adapted to application • Low memory and per packet processing • Generalize flows to distinct header patterns • Count flows or source addresses to detect attack • Count destination address+port pairs to detect scan Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Talk structure • Per packet processing for bitmap algorithms • Computing flow count estimates from bitmaps • Variance analysis of estimates • Derived algorithms • Related work • Measurements • Conclusions Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap Set bits in the bitmap using hash of the flow ID of incoming packets HASH(green)=10001001 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap Different flows have different hash values HASH(blue)=00100100 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap Packets from the same flow always hash to the same bit HASH(green)=10001001 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap Collisions OK, estimates compensate for them HASH(violet)=10010101 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap HASH(orange)=11110011 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap HASH(pink)=11100000 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap As the bitmap fills up, estimates get inaccurate HASH(yellow)=01100011 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap Solution: use more bits HASH(green)=10001001 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – direct bitmap Solution: use more bits Problem: memory scales with the number of flows HASH(blue)=00100100 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – virtual bitmap Solution: a) store only a portion of the bitmap b) multiply estimate by scaling factor Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – virtual bitmap HASH(pink)=11100000 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – virtual bitmap Problem: estimate inaccurate when few flows active HASH(yellow)=01100011 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – multiple bmps Solution: use many bitmaps, each accurate for a different range Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – multiple bmps HASH(pink)=11100000 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – multiple bmps HASH(yellow)=01100011 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – multiple bmps Use this bitmap to estimate number of flows Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – multiple bmps Use this bitmap to estimate number of flows Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
OR OR Bitmap counting – multires. bmp Problem: must update up to three bitmaps per packet Solution: combine bitmaps into one Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – multires. bmp HASH(pink)=11100000 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting – multires. bmp HASH(yellow)=01100011 Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Talk structure • Per packet processing for bitmap algorithms • Computing flow count estimates from bitmaps • Variance analysis of estimates • Derived algorithms • Related work • Measurements • Conclusions Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Basic estimates Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Find most accurate component Estimate number of flows hashing to it Apply scaling factor Multiresolution bitmap estimate Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Talk structure • Per packet processing for bitmap algorithms • Computing flow count estimates from bitmaps • Variance analysis of estimates • Derived algorithms • Related work • Measurements • Conclusions Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Relative error in estimates Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Error of virtual bitmap Average (relative) error Flow density (flows/bit) Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Memory requirements Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
100 million flows, error 1% Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Talk structure • Per packet processing for bitmap algorithms • Computing flow count estimates from bitmaps • Variance analysis of estimates • Derived algorithms • Related work • Measurements • Conclusions Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Triggered bitmap • Need multiple instances of counting algorithm (e.g. port scan detection) • Many instances count few flows • Triggered bitmap • Allocate small direct bitmap to new sources • If number of bits set exceeds trigger value, allocate large multiresolution bitmap Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Talk structure • Per packet processing for bitmap algorithms • Computing flow count estimates from bitmaps • Variance analysis of estimates • Derived algorithms • Related work • Measurements • Conclusions Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Related work • Flajolet, Martin (1985) probabilistic counting • Memory use similar to multiresolution bitmap • Whang et al (1990) introduce direct bitmap • You, Chang (1996) use virtual bitmap • Chauduri, Motwani, Narasayya (1998) • Counting flows without bias impossible from sampled data • Duffield, Lund, Thorup (2002) • Accurate solutions based on counting TCP SYN flags Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Talk structure • Per packet processing for bitmap algorithms • Computing flow count estimates from bitmaps • Variance analysis of estimates • Derived algorithms • Related work • Measurements • Conclusions Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Multires. bmp. vs. prob. counting Average (relative) error Number of flows (log scale) Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Scan detection memory usage Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Talk structure • Per packet processing for bitmap algorithms • Computing flow count estimates from bitmaps • Variance analysis of estimates • Derived algorithms • Related work • Measurements • Conclusions Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
A family of counting algorithms Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Bitmap counting algorithms • A family of algorithms that can be used as building blocks in various systems • Algorithms can be adapted to application • Low memory and per packet processing • With 2Kbytes error around 1% Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
The end Bitmap algorithms will be available at: http://ial.ucsd.edu/bitmaps/ Any questions? Acknowledgements: Vern Paxson, David Moore, Philippe Flajolet, Marianne Durand, Alex Snoeren, K Claffy, Stefan Savage, Florin Baboescu, NIST,NSF Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Adaptive bitmap • Virtual bitmap measures accurately number of flows if range known in advance • Often number of flows does not change rapidly • Measurement repeated • Can use previous measurement to tune virtual bitmap • Combine a large virtual bitmap with a small multiresolution bitmap used for tuning Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Adaptive bitmap accuracy Average (relative) error Number of flows (log scale) Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
With 2 kilobytes of memory Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003
Increment-decrement algorithms • Active flow defined as flow with packets in queue • Must support additions and deletions • Replace bits of bitmap with counters • Increment when packet arrives • Decrement when packet leaves • Estimate number of flows based on zero counters Bitmap algorithms for flow counting – Internet Measurement Conference, October 2003