|
Applications like network security,
accounting/billing, and network forensics require counting packets in
network connections or flows.
This problem has been studied for the past 10
years and there have been two main approaches. The early approach
sought to collect exact measurements: count every packet of every flow.
While very desirable, this approach is both expensive and not scalable.
This led to the second approach: count only the packets of the large
"elephant" flows, ignore the small "mice" flows. This approach requires
quickly identifying elephants and counting their packets and is
inherently approximate.
We present a novel per-flow counting method
that is scalable, simple to implement and accurate. Our method
introduces and uses two innovations:
(i) a message passing estimation algorithm
derived from sparse random graph codes, and (ii) a new data structure,
called "counter braids,"
which is an efficient way of saving counter
space while measuring flows of widely varying sizes (e.g. elephants and
mice).
Joint work with: S. Dharmapurikar, A. Kabbani,
Y. Lu and A. Montanari. |