From: Jonathan Morton <chromatix99@gmail.com>
To: Alex Elsayed <eternaleye@gmail.com>
Cc: bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] Bloat done correctly?
Date: Fri, 12 Jun 2015 22:14:02 +0300 [thread overview]
Message-ID: <CAJq5cE2K9KkoidCKD_Jw1Xn9Ric5S7UyXnzGYn3rURM8n0xPpw@mail.gmail.com> (raw)
In-Reply-To: <mlf9o8$tl3$1@ger.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1409 bytes --]
We have a test in Flent which tries to exercise this case: 50 flows in one
direction and 1 in the other, all TCP. Where the 50 flows are on the narrow
side of an asymmetric link, it is possible to see just what happens when
there isn't enough bandwidth for the acks of the single opposing flow.
What I see is that acks behave like an unresponsive flow in themselves, but
one that is reasonably tolerant to loss (more so than to delay). On a
standard AQM, the many flows end up yielding to the acks; on a
flow-isolating AQM, the acks are restricted to a fair (1/51) share, but
enough of them are dropped to (eventually) let the opposing flow get most
of the available bandwidth on its side. But on an FQ without AQM, acks
don't get dropped so they get delayed instead, and the opposing flow will
be ack clocked to a limited bandwidth until the ack queue overflows.
Cake ends up causing odd behaviour this way. I have a suspicion about why
one of the weirder effects shows up - it has to get so aggressive about
dropping acks that the count variable for that queue wraps around.
Implementing saturating arithmetic there might help.
There is a proposed TCP extension for ack congestion control, which allows
the ack ratio to be varied in response to ack losses. This would be a
cleaner way to achieve the same effect, and would allow enabling ECN on the
acks, but it's highly experimental.
- Jonathan Morton
[-- Attachment #2: Type: text/html, Size: 1514 bytes --]
next prev parent reply other threads:[~2015-06-12 19:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 4:45 Benjamin Cronce
2015-06-12 9:08 ` Sebastian Moeller
2015-06-12 15:33 ` Benjamin Cronce
2015-06-12 17:51 ` Sebastian Moeller
2015-06-12 18:44 ` Benjamin Cronce
2015-06-12 18:51 ` Alex Elsayed
2015-06-12 19:14 ` Jonathan Morton [this message]
2015-06-12 19:54 ` Sebastian Moeller
2015-06-12 21:19 ` Benjamin Cronce
2015-06-12 19:21 ` Sebastian Moeller
2015-06-12 22:56 ` Alex Elsayed
2015-06-13 7:13 ` Sebastian Moeller
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=CAJq5cE2K9KkoidCKD_Jw1Xn9Ric5S7UyXnzGYn3rURM8n0xPpw@mail.gmail.com \
--to=chromatix99@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=eternaleye@gmail.com \
/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