Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Mikael Abrahamsson <swmike@swm.pp.se>,
	bloat <bloat@lists.bufferbloat.net>
Cc: "cerowrt-devel@lists.bufferbloat.net"
	<cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] BBR congestion control algorithm for TCP in net-next
Date: Wed, 21 Sep 2016 04:19:37 -0700	[thread overview]
Message-ID: <CAA93jw5t0au0P03nnPhy2nh9RWObrRr9SgWBtEiq8kfO8XTiRw@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1609211210280.1477@uplift.swm.pp.se>

On Wed, Sep 21, 2016 at 3:15 AM, Mikael Abrahamsson <swmike@swm.pp.se> wrote:
> On Wed, 21 Sep 2016, Dave Taht wrote:
>
>> I dunno, I'm just reading tea leaves here!
>>
>> can't wait for the paper!
>
>
> +1.
>
> I would like to understand how BBR interacts with a window-fully-open
> classic TCP session and FIFO induced delay that is in steady-state before
> the BBR session starts.

I did a fairly comprehensive string of tests today, comparing it at
20Mbits, 48ms RTT, to cubic and competing with cubic, against a byte
fifo of 256k, pie, cake, cake flowblind, and fq_codel.

The flent datasets are now at:
http://blog.cerowrt.org/flent/bbr-comprehensive.tgz

You will need the latest flent from git to plot the new
tcp_4up_squarewave test. That test starts 1 BBR flow, then 3 seconds
later, cubic, 3 seconds after that, bbr again, 3 seconds after cubic
again.

It's 4am here, and we've also been busy with something else due today,
but some observations:

* respecting ecn appears unimplemented, so if you compare cubic with
ecn against bbr not respecting it, bad things happen. I bug reported
this to the bbr mailing list. To some extent cake's and pie's overload
on ecn drop mechanism helps. fq_codel/cake with fq is fine, so long as
there are no collisions.

* It seriously outcompetes cubic, particularly on the single queue
aqms. fq_codel is fine. I need to take apart the captures to see how
well it is behaving in this case. My general hope was that with fq in
place, anything that was delay based worked better as it was only
competing against itself.

* It does the right things against bfifo when multiple streams are
present, but in the presence of reverse traffic, cubic starves. (the
dataset for this is kind of wrong in that the legend of the
"smackdown" chart claims BBR is on on the download, but it was
unimplemented in that direction, I only had it running on the upload.)

Did I mention fq* was fine? :)

I'm going to bed.

> So let's say I have 100ms of lightspeed-in-fiber RTT, and I am then running
> a file transfer with some other TCP algorithm which is sitting there, window
> fully open, creating an additional 100ms of stupid-router-FIFO-buffering
> delay.
>
> So new BBR TCP session comes along, sees 200ms of RTT, and starts sending. I
> guess the classic TCP algorithm still keeps its window fully open, and
> doesn't care that RTT now increased to 210ms by the BBR flow packets.

I see evidence of the classic latecomer advantage but it subsides in 10-20 sec:

http://blog.cerowrt.org/flent/bbr-comprehensive/latecomer_advantage.svg

>
> Now what? BBR flow sees increased latency, and backs off, right? So how much
> of the bandwidth will each flow get? How do these interact?

Plot it in flent.

>
> --
> Mikael Abrahamsson    email: swmike@swm.pp.se



-- 
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org

  parent reply	other threads:[~2016-09-21 11:19 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-17 18:34 Maciej Soltysiak
2016-09-17 18:53 ` Dave Taht
2016-09-21  9:06   ` Alan Jenkins
2016-09-21  9:39     ` Dave Taht
2016-09-21 10:10       ` Alan Jenkins
2016-09-21 10:15       ` Mikael Abrahamsson
2016-09-21 11:14         ` Alan Jenkins
2016-09-21 11:28           ` Mikael Abrahamsson
2016-09-21 11:19         ` Dave Taht [this message]
2016-09-21 11:32           ` Mikael Abrahamsson
2016-09-21 12:40           ` Mikael Abrahamsson
2016-09-21 13:49             ` [Cerowrt-devel] [Bloat] " Alan Jenkins
2016-09-17 20:11 ` [Cerowrt-devel] " Jonathan Morton
2016-09-26 18:47 ` Aaron Wood
2016-09-26 19:30   ` Neal Cardwell
2016-09-26 19:45     ` Aaron Wood
2016-09-26 21:38       ` Dave Taht
2016-09-26 22:09         ` Aaron Wood

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=CAA93jw5t0au0P03nnPhy2nh9RWObrRr9SgWBtEiq8kfO8XTiRw@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    --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