Summary: | A network service provider typically sells service at a fixed traffic rate to customers. This rate is enforced by allowing or dropping packets that pass through, in a process called policing. Distributed policing is a version of the problem where a number of policers must limit their combined traffic allowance to the specified rate. The policers must coordinate their behaviour such that customers are fully allowed the rate they pay for, without receiving too much more, while maintaining some semblance of fairness between packets arriving at one policer versus another.
A review of prior solutions shows that most use predictions or estimations to heuristically allocate rates, and thus cannot provide any error bounds or guarantees on the achieved rate under all scenarios. Other solutions may suffer from starvation or unfairness under certain traffic demand patterns.
We present a new global ``leaky bucket'' approach that provably prevents starvation, guarantees full utilization, and provides a simple upper bound on the rate allowed under any incoming traffic pattern. We find that the algorithm guarantees a minimum 1/n share of the rate for each policer, and achieves close to max-min fairness in many, but not all cases. We also suggest some experimental modifications that could improve the fairness in practice.
|