From: Jonathan Morton <chromatix99@gmail.com>
To: Mikael Abrahamsson <swmike@swm.pp.se>
Cc: Luca Muscariello <luca.muscariello@gmail.com>,
"Bless, Roland (TM)" <roland.bless@kit.edu>,
bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] when does the CoDel part of fq_codel help in the real world?
Date: Tue, 27 Nov 2018 14:17:48 +0200 [thread overview]
Message-ID: <D1E43544-CF1E-4FF9-AA5D-D7D671A85F4C@gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.20.1811271217040.7766@uplift.swm.pp.se>
> On 27 Nov, 2018, at 1:21 pm, Mikael Abrahamsson <swmike@swm.pp.se> wrote:
>
> It's complicated. I've had people throw in my face that I need 2xBDP in buffer size to smoothe things out. Personally I don't want more than 10ms buffer (max), and I don't see why I should need more than that even if transfers are running over hundreds of ms of light-speed-in-medium induced delay between the communicating systems.
I think we can agree that the ideal CC algo would pace packets out smoothly at exactly the path capacity, neither building a queue at the bottleneck nor leaving capacity on the table.
Actually achieving that in practice turns out to be difficult, because there's no general way to discover the path capacity in advance. AQMs like Codel, in combination with ECN, get us a step closer by explicitly informing each flow when it is exceeding that capacity while the queue is still reasonably short. FQ also helps, by preventing flows from inadvertently interfering with each other by imperfectly managing their congestion windows.
So with the presently deployed state of the art, we have cwnds oscillating around reasonably short queue lengths, backing off sharply in response to occasional signals, then probing back upwards when that signal goes away for a while. It's a big improvement over dumb drop-tail FIFOs, but it's still some distance from the ideal. That's because the information injected by the bottleneck AQM is a crude binary state.
I do not include DCTCP in the deployed state of the art, because it is not deployable in the RFC-compliant Internet; it is effectively incompatible with Codel in particular, because it wrongly interprets CE marks and is thus noncompliant with the ECN RFC.
However, I agree with DCTCP's goal of achieving finer-grained control of the cwnd, through AQMs providing more nuanced information about the state of the path capacity and/or bottleneck queue. An implementation that made use of ECT(1) instead of changing the meaning of CE marks would remain RFC-compliant, and could get "sufficiently close" to the ideal described above.
- Jonathan Morton
next prev parent reply other threads:[~2018-11-27 12:17 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-26 19:08 Pete Heist
2018-11-26 19:28 ` Neal Cardwell
2018-11-27 20:42 ` Dave Taht
2018-11-27 20:54 ` Toke Høiland-Jørgensen
2018-11-27 21:00 ` Dave Taht
2018-11-27 21:05 ` Toke Høiland-Jørgensen
2018-11-26 21:29 ` Jonathan Morton
2018-11-27 9:24 ` Luca Muscariello
2018-11-27 10:26 ` Bless, Roland (TM)
2018-11-27 10:29 ` Luca Muscariello
2018-11-27 10:35 ` Bless, Roland (TM)
2018-11-27 10:40 ` Luca Muscariello
2018-11-27 10:50 ` Mikael Abrahamsson
2018-11-27 11:01 ` Luca Muscariello
2018-11-27 11:21 ` Mikael Abrahamsson
2018-11-27 12:17 ` Jonathan Morton [this message]
2018-11-27 13:37 ` Luca Muscariello
2018-11-27 13:49 ` Mikael Abrahamsson
2018-11-27 14:07 ` Luca Muscariello
2018-11-27 14:18 ` Mikael Abrahamsson
2018-11-27 18:44 ` Kathleen Nichols
2018-11-27 19:25 ` Dave Taht
2018-11-27 21:57 ` Roland Bless
2018-11-27 11:53 ` Bless, Roland (TM)
2018-11-27 11:58 ` Luca Muscariello
2018-11-27 12:22 ` Bless, Roland (TM)
2018-11-27 11:06 ` Jonathan Morton
2018-11-27 11:07 ` Michael Welzl
2018-11-29 7:35 ` Dave Taht
2018-11-29 18:43 ` Stephen Hemminger
2018-11-29 19:08 ` Dave Taht
2018-11-30 5:51 ` Mikael Abrahamsson
2018-11-30 19:02 ` Dave Taht
2018-11-30 19:58 ` Stephen Hemminger
2018-11-27 11:04 ` Michael Welzl
2018-11-27 12:48 ` Bless, Roland (TM)
2018-11-27 11:40 ` Bless, Roland (TM)
2018-11-27 11:43 ` Bless, Roland (TM)
2018-11-29 7:39 ` Dave Taht
2018-11-29 7:45 ` Jonathan Morton
2018-11-29 7:54 ` Dave Taht
2018-11-29 8:09 ` Luca Muscariello
2018-11-29 13:49 ` Bless, Roland (TM)
2018-11-29 8:41 ` Bless, Roland (TM)
2018-11-29 7:33 ` Dave Taht
2018-11-29 8:13 ` Bless, Roland (TM)
2018-11-29 10:00 ` Pete Heist
2018-11-29 16:09 ` Luca Muscariello
2018-11-29 17:07 ` Mario Hock
2018-11-29 22:30 ` Luca Muscariello
2018-11-30 9:55 ` Mario Hock
2018-11-30 10:32 ` Luca Muscariello
2018-11-30 11:04 ` Jonathan Morton
2018-11-30 11:53 ` jf
2018-12-03 9:42 ` Mario Hock
2018-11-27 11:52 ` Toke Høiland-Jørgensen
2018-11-28 3:37 ` [Bloat] AFD Dave Taht
2018-11-27 20:58 ` [Bloat] when does the CoDel part of fq_codel help in the real world? Dave Taht
2018-11-27 22:19 ` Luca Muscariello
2018-11-27 22:30 ` Roland Bless
2018-11-27 23:17 ` Dave Taht
2018-11-28 3:47 ` Kathleen Nichols
2018-11-28 9:56 ` Luca Muscariello
2018-11-28 10:40 ` Dave Taht
2018-11-28 10:48 ` Luca Muscariello
2018-11-28 12:10 ` Bless, Roland (TM)
2018-11-29 7:22 ` Dave Taht
2018-11-29 7:20 ` Dave Taht
2018-11-27 20:50 ` Dave Taht
2018-11-26 21:56 ` Michael Welzl
2018-11-26 22:13 ` Toke Høiland-Jørgensen
2018-11-27 8:54 ` Pete Heist
2018-11-27 9:31 ` Jonathan Morton
2018-11-27 13:19 ` Michael Richardson
2018-11-27 18:59 ` Jonathan Morton
2018-11-27 20:10 ` Dave Taht
2018-11-27 21:17 ` Michael Welzl
2018-11-27 21:20 ` Michael Welzl
2018-11-29 7:11 ` Dave Taht
2018-11-29 7:28 ` [Bloat] incremental deployment, transport and L4S (Re: when does the CoDel part of fq_codel help in the real world?) Mikael Abrahamsson
2018-11-29 7:36 ` Jonathan Morton
2018-11-29 7:46 ` Mikael Abrahamsson
2018-11-29 8:08 ` Michael Welzl
2018-11-29 10:30 ` Jonathan Morton
2018-11-29 12:06 ` Michael Welzl
2018-11-29 12:52 ` Jonathan Morton
2018-11-30 7:54 ` Michael Welzl
2019-02-03 18:20 ` Dave Taht
2018-11-29 12:12 ` Michael Welzl
2018-11-29 12:56 ` Jonathan Morton
2018-11-29 13:30 ` Mikael Abrahamsson
2018-11-29 23:27 ` Jonathan Morton
2018-11-30 6:01 ` Mikael Abrahamsson
2018-11-29 14:06 ` Bless, Roland (TM)
2018-11-29 8:09 ` Jonathan Morton
2018-11-29 8:19 ` Mikael Abrahamsson
2018-11-29 8:34 ` Jonathan Morton
2018-11-29 10:15 ` Sebastian Moeller
2018-11-29 10:53 ` Mikael Abrahamsson
2018-11-30 4:54 ` Dave Taht
2018-11-28 2:04 ` [Bloat] when does the CoDel part of fq_codel help in the real world? Pete Heist
2018-11-28 3:52 ` 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/bloat.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D1E43544-CF1E-4FF9-AA5D-D7D671A85F4C@gmail.com \
--to=chromatix99@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=luca.muscariello@gmail.com \
--cc=roland.bless@kit.edu \
--cc=swmike@swm.pp.se \
/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