From: Bernd Paysan <bernd.paysan@gmail.com>
To: BBR Development <bbr-dev@googlegroups.com>
Cc: ycheng@google.com, sgunderson@bigfoot.com, bloat@lists.bufferbloat.net
Subject: Re: [Bloat] "BBR" TCP patches submitted to linux kernel
Date: Fri, 25 Nov 2016 04:51:05 -0800 (PST) [thread overview]
Message-ID: <dc9e3456-54ed-4995-92c3-23ce4e7c3358@googlegroups.com> (raw)
In-Reply-To: <CAA93jw4WgQ6hOtWeM31nb1wUuzrPKDwqtVVn9CZTGhHBDZKAkA@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2399 bytes --]
Am Donnerstag, 27. Oktober 2016 20:14:42 UTC+2 schrieb Dave Taht:
>
> On Thu, Oct 27, 2016 at 10:57 AM, Yuchung Cheng <ych...@google.com
> <javascript:>> wrote:
> Well, against cubic on the same link in single queue mode, even
> without ecn, life looks like this:
>
>
> http://blog.cerowrt.org/flent/bbr-ecncaps/bandwidth-share-creaming-cubic-flowblind-aqm.svg
>
> but fq_codel is fine, so long as there is no ecn vs nonecn collission
>
> http://blog.cerowrt.org/flent/bbr-ecncaps/bandwidth-share-ecn-fq.png
Looks like you are on the right track. I've been done some work on
flow/congestion control on my net2o protocol, which is not limited by TCP's
constraints, and I think you should look at what I did. See my 31c3
presentation.
Flow/congestion control discussion starts at 46:00, page 79 on the slides.
https://fossil.net2o.de/net2o/doc/trunk/wiki/31c3.md
The primary algorithm is really simple and straight-forward: I send a short
burst out, and measure the bandwidth achieved on the receiver side - this
time is used to calculate the delays between two bursts, the average
sending rate. In TCP, you would measure the ACKs back at the sender, and
calculate bandwidth achieved based on the delays between the acks; that
should be a bit less precise, but good enough. These bursts allow to adapt
to changing loads quickly, and there is no need to fill the buffer at all
(you don't need to create more increase in RTD than those few packets in
the burst take). This primary algorithm is ignorant of the buffer fill
state, so it works together with a buffer filled up by normal TCP
congestion control.
I took a great deal at providing fairness even without a fair queuing
policy (much more complicated second order regulation; I'm still not happy
with the results and trying to figure out something better), therefore, FQ
is really necessary, everywhere, including on the last mile routers (see
timings of 4 concurrent streams on page 108 w/o FQ and 109 w. net2o's own
FQ). The spikes in the last diagrams result from the receivers regularly
writing the data away to disk, and when they do so, temporarily stopping
the transmission of their stream for a short period of time. That shows
how fast the bursts can react on changed bandwidth. With just one client,
I can hide that delay with a second thread, but with 4 clients on one CPU,
it just shows up.
[-- Attachment #1.2: Type: text/html, Size: 4107 bytes --]
next prev parent reply other threads:[~2016-11-25 12:51 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-16 21:04 Dave Taht
2016-09-16 21:11 ` Steinar H. Gunderson
2016-09-16 21:14 ` Eric Dumazet
2016-09-16 22:29 ` Dave Taht
2016-09-29 11:24 ` Mário Sérgio Fujikawa Ferreira
2016-09-29 19:43 ` Dave Täht
2016-09-29 20:35 ` Aaron Wood
2016-09-30 8:12 ` Mikael Abrahamsson
2016-09-30 14:16 ` Aaron Wood
2016-09-29 21:23 ` Steinar H. Gunderson
2016-09-30 1:54 ` Mario Ferreira
2016-09-30 3:50 ` Dave Täht
2016-09-30 4:29 ` Aaron Wood
2016-09-29 23:26 ` Benjamin Cronce
2016-09-30 1:58 ` Mario Ferreira
2016-10-21 8:47 ` Steinar H. Gunderson
2016-10-21 10:28 ` Eric Dumazet
2016-10-21 10:42 ` Steinar H. Gunderson
2016-10-21 10:47 ` Steinar H. Gunderson
2016-10-21 10:55 ` Eric Dumazet
2016-10-21 10:52 ` Eric Dumazet
2016-10-21 11:03 ` Steinar H. Gunderson
2016-10-21 11:40 ` Eric Dumazet
2016-10-21 11:45 ` Steinar H. Gunderson
2016-10-27 17:04 ` Steinar H. Gunderson
2016-10-27 17:31 ` Eric Dumazet
2016-10-27 17:33 ` Dave Taht
2016-10-27 17:52 ` Eric Dumazet
2016-10-27 17:59 ` Dave Taht
2016-10-27 17:57 ` Yuchung Cheng
2016-10-27 18:14 ` Dave Taht
2016-10-27 21:30 ` [Bloat] [bbr-dev] " Yuchung Cheng
2016-11-01 23:13 ` Yuchung Cheng
2016-11-01 23:49 ` Jonathan Morton
2016-11-02 9:27 ` Mikael Abrahamsson
2016-11-02 17:21 ` Klatsky, Carl
2016-11-02 18:48 ` Dave Täht
2016-11-25 12:51 ` Bernd Paysan [this message]
2016-10-21 10:50 ` [Bloat] " Zhen Cao
2016-10-27 19:25 Ingemar Johansson S
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=dc9e3456-54ed-4995-92c3-23ce4e7c3358@googlegroups.com \
--to=bernd.paysan@gmail.com \
--cc=bbr-dev@googlegroups.com \
--cc=bloat@lists.bufferbloat.net \
--cc=sgunderson@bigfoot.com \
--cc=ycheng@google.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