[Bloat] What is fairness, anyway? was: Re: finally... winning on wired!

Bob Briscoe bob.briscoe at bt.com
Thu Jan 5 12:52:58 EST 2012


Jim, Justin,

Jumping back one posting in this thread...

At 17:36 04/01/2012, Justin McCann wrote:
>On Wed, Jan 4, 2012 at 11:16 AM, Dave Taht <dave.taht at gmail.com> wrote:
> >
> > On Wed, Jan 4, 2012 at 4:25 PM, Jim Gettys <jg at freedesktop.org> wrote:
> >
> > 1: the 'slower flows gain priority' question is my gravest concern
> > (eg, ledbat, bittorrent). It's fixable with per-host FQ.
>
>Meaning that you don't want to hand priority to stuff that is intended
>to stay in the background?

The LEDBAT/BitTorrent issue wouldn't be fixed by per-host FQ.
LEDBAT/uTP tries to yield to other hosts, not just its own host.

In fact, in the early part of the last decade, the whole issue of 
long-running vs interactive flows showed how broken any form of FQ 
was. This was why ISPs moved away from rate equality (whether 
per-flow, per-host or per-customer site) to various 
per-customer-volume-based approaches (or a mix of both).

There seems to be an unspoken assumption among many on this list that 
rate equality must be integrated into each AQM implementation. That's 
so 2004. It seems all the developments in fairness over the last 
several years have passed completely over the heads of many on this 
list. This page might fill in the gaps for those who missed the last few years:
<http://trac.tools.ietf.org/group/irtf/trac/wiki/CapacitySharingArch>

To address buffer bloat, I advise we "do one thing and do it well": bulk AQM.

In a nutshell, bit-rate equality, where each of N active users gets 
1/N of the bit-rate, was found to be extremely _unfair_ when the 
activity of different users is widely different. For example:
* 5 light users all active 1% of the time get close to 100% of a 
shared link whenever they need it.
* However, if instead 2 of these users are active 100% of the time, 
FQ gives the other three light users only 33% of the link whenever 
they are active.
* That's pretty rubbish for a solution that claims to isolate each 
user from the excesses of others.

Since 2004, we now understand that fairness has to involve accounting 
over time. That requires per-user state, which is not something you 
can do, or that you need to do, within every queue. We should leave 
fairness to separate code, probably on machines specialising in this 
at the edge of a provider's network domain - where it knows about 
users/customers - separate from the AQM code of each specific queue.


Bob









________________________________________________________________
Bob Briscoe,                                BT Innovate & Design 




More information about the Bloat mailing list