From: Jonathan Morton <chromatix99@gmail.com>
To: dpreed@reed.com
Cc: cake@lists.bufferbloat.net, "Klatsky,
Carl" <carl_klatsky@cable.comcast.com>,
Simon Barber <simon@superduper.net>,
cerowrt-devel@lists.bufferbloat.net,
bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] [Bloat] heisenbug: dslreports 16 flow test vs cablemodems
Date: Mon, 18 May 2015 18:40:30 +0300 [thread overview]
Message-ID: <EF8F2CD0-AF82-4118-B3DE-18ADE3D93694@gmail.com> (raw)
In-Reply-To: <1431961775.459218261@apps.rackspace.com>
> On 18 May, 2015, at 18:09, dpreed@reed.com wrote:
>
> I'm curious as to why one would need low priority class if you were using fq_codel? Are the LEDBAT flows indistinguishable? Is there no congestion signalling (no drops, no ECN)? The main reason I ask is that end-to-end flows should share capacity well enough without magical and rarely implemented things like diffserv and intserv.
The Cloonan paper addresses this question. http://snapon.lab.bufferbloat.net/~d/trimfat/Cloonan_Paper.pdf
Let me summarise, with some more up-to-date additions:
Consider a situation where a single application is downloading using many (say 50) flows in parallel. It’s rather easy to provoke BitTorrent into doing exactly this. BitTorrent also happens to use LEDBAT by default (via uTP).
With a dumb FIFO, LEDBAT will sense the queue depth via the increased latency, and will tend to back off when some other traffic arrives to share that queue.
With AQM, the queue depth doesn’t increase much before ECN marks and/or packet drops appear. LEDBAT then behaves like a conventional TCP, since it has lost the delay signal. Hence LEDBAT is indistinguishable from conventional TCP under AQM.
With FQ, each flow gets a fair share of the bandwidth. But the *application* using 50 flows gets 50 times as much bandwidth as the application using only 1 flow. If the single-flow application is something elastic like a Web browser or checking e-mail, that might be tolerable.
But if the single-flow application is inelastic (as VoIP usually is), and needs more than 2% of the link bandwidth to work properly, that’s a problem if it’s competing against 50 flows. That’s one of the Cloonan paper’s results; what they recommended was to use FQ with a small number of queues, so that this drawback was mitigated by way of hash collisions.
Adding Diffserv and recommending that LEDBAT applications use the “background” traffic class (CS1 DSCP) solves this problem more elegantly. The share of bandwidth used by BitTorrent (say) is then independent of the number of flows it uses, and it also makes sense to configure FQ for ideal flow isolation rather than for mitigation.
- Jonathan Morton
next prev parent reply other threads:[~2015-05-18 15:41 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-14 19:13 [Cerowrt-devel] " Dave Taht
2015-05-15 2:48 ` Greg White
2015-05-15 4:44 ` Aaron Wood
2015-05-15 8:18 ` [Cerowrt-devel] [Bloat] " Eggert, Lars
2015-05-15 8:55 ` Sebastian Moeller
2015-05-15 11:10 ` [Cerowrt-devel] [Cake] " Alan Jenkins
2015-05-15 11:27 ` [Cerowrt-devel] " Bill Ver Steeg (versteb)
2015-05-15 12:19 ` Jonathan Morton
2015-05-15 12:44 ` Eggert, Lars
2015-05-15 13:09 ` Bill Ver Steeg (versteb)
2015-05-15 13:35 ` Jim Gettys
2015-05-15 14:36 ` Simon Barber
2015-05-18 3:30 ` dpreed
2015-05-18 5:06 ` Simon Barber
2015-05-18 9:06 ` Bill Ver Steeg (versteb)
2015-05-18 11:42 ` Eggert, Lars
2015-05-18 11:57 ` luca.muscariello
2015-05-18 12:30 ` Simon Barber
2015-05-18 15:03 ` Jonathan Morton
2015-05-18 15:09 ` dpreed
2015-05-18 15:32 ` Simon Barber
2015-05-18 17:21 ` [Cerowrt-devel] [Cake] " Dave Taht
2015-05-18 15:40 ` Jonathan Morton [this message]
2015-05-18 17:03 ` [Cerowrt-devel] " Sebastian Moeller
2015-05-18 17:17 ` Jonathan Morton
2015-05-18 18:14 ` Sebastian Moeller
2015-05-18 18:37 ` Dave Taht
2015-05-19 16:25 ` [Cerowrt-devel] [Cake] " Sebastian Moeller
2015-05-15 16:59 ` [Cerowrt-devel] " Dave Taht
2015-05-15 17:47 ` [Cerowrt-devel] " Dave Taht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=EF8F2CD0-AF82-4118-B3DE-18ADE3D93694@gmail.com \
--to=chromatix99@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=cake@lists.bufferbloat.net \
--cc=carl_klatsky@cable.comcast.com \
--cc=cerowrt-devel@lists.bufferbloat.net \
--cc=dpreed@reed.com \
--cc=simon@superduper.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox