[Bloat] What is fairness, anyway? was: Re: finally... winning on wired!
Bob Briscoe
bob.briscoe at bt.com
Sat Jan 7 14:42:51 EST 2012
Jonathan,
At 20:34 06/01/2012, Jonathan Morton wrote:
>On 5 Jan, 2012, at 7:52 pm, Bob Briscoe wrote:
>
> > 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.
>
>According to the LEDBAT I-D
>(https://datatracker.ietf.org/doc/draft-ietf-ledbat-congestion/?include_text=1),
>they expressly considered the effect of AQM and FQ, and considered
>that even if they defeated the LEDBAT mechanism itself, it didn't
>matter because they would achieve the LEDBAT *goal*.
Yup, I was involved in the ML wordsmithing of that. You've subtly
changed the sense by altering the words: The draft says "achieving an
outcome that is in line with LEDBAT's goals", which is not the same
as "achieving LEDBAT's goals [in full]".
>That goal is to avoid starving other flows, *not* to ensure that
>LEDBAT flows would always be starved by others.
But a goal of LEDBAT *is* to temporarily yield to interactive flows.
FQ trumps LEDBAT and prevents it achieving this goal.
> > 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.
>
>Wait, WTF? Isn't the long-running versus interactive problem
>precisely what FQ *does* solve, by prioritising sparse flows over dense ones?
Nooo. Pure FQ doesn't prioritise it equalises (instantaneous
bit-rate). Cisco's WFQ does give a very short period of extra
scheduling priority at the start of a flow. But that is a tiny effect
compared to what would be required for true fairness /over time/.
>We do need both per-flow and per-user fairness.
No. One precludes the other - you can't have both. We need per-user
fairness, which requires very unequal bit-rates per flow. The more
that per-flow fairness is enforced in each queue, the harder it will
be to remove it from the Internet to get per-user fairness.
See "Flow Rate Fairness: Dismantling a Religion"
<http://dl.acm.org/citation.cfm?id=1232926>
For the avoidance of doubt, if anyone thinks "per-user fairness"
means equal bit-rate per user, that's not what I take it to mean. I
mean fairness /over time/. Not equality only at each instant, which
doesn't take account of the huge benefit from a user staying inactive.
>SFQ and QFQ aim for per-flow fairness, as currently
>implemented. Providers currently use a variety of mechanisms - some
>more effective or more morally acceptable than others - to implement
>per-user fairness.
Per-user fairness is a perfectly innocent goal. The political problem
has been about who's in control. That doesn't make per-user fairness
wrong. The ISP deciding what per-user fairness means has been the
wrong part. As you say, some ISPs have done this broadly in their
customer's interests (more so where there's the discipline of competition).
[Aside: I believe some anti-bloat code being proposed on this list
uses exactly the same politically unacceptable DPI techniques to
detect exceptions to FQ, (e.g. for LEDBAT). Having to make exceptions
to FQ should ring alarm bells that FQ isn't actually a good starting
point. But people get confused and think that FQ holds the moral high
ground, perhaps because it has inappropriately hijacked the word
'fair' in its name.]
>But there is currently no easy way for the latter to communicate
>with the former - ECN doesn't count here - if the former is
>implemented at the CPE, thereby reducing their effectiveness. Heck,
>I have to manually configure my "router" (actually a computer) to
>know what the upload bandwidth of the modem is.
>
>Why doesn't ECN count? Because the signalled packets come through
>the wrong channel - flowing past the router and passing through a
>different queue, facing in the opposite direction. The queue that
>needs to see the information, doesn't. In any case, if ECN were
>already deployed sufficiently well, the sending host would be
>backing off appropriately and we wouldn't be talking about the problem here.
We invented ConEx (congestion exposure) precisely to solve this
problem of the signals being in the wrong direction.
<http://tools.ietf.org/html/draft-ietf-conex-abstract-mech>
Cheers
Bob
> - Jonathan Morton
________________________________________________________________
Bob Briscoe, BT Innovate & Design
More information about the Bloat
mailing list