General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Roland Bless <roland.bless@kit.edu>
To: Matt Mathis <mattmathis@google.com>, Dave Taht <dave.taht@gmail.com>
Cc: Carlo Augusto Grazia <carloaugusto.grazia@unimore.it>,
	jamshid@whatsapp.com, bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] the future belongs to pacing
Date: Mon, 6 Jul 2020 20:32:05 +0200	[thread overview]
Message-ID: <1e04c5f8-4bdc-1835-1070-04b0c2224526@kit.edu> (raw)
In-Reply-To: <mailman.763.1593883755.24343.bloat@lists.bufferbloat.net>

[-- Attachment #1: Type: text/plain, Size: 3083 bytes --]

Hi Matt and Jamshid,

On 04.07.20 at 19:29 Matt Mathis via Bloat wrote:

> Key takeaway: pacing is inevitable, because it saves large content
> providers money (more efficient use of the most expensive silicon in
> the data center, the switch buffer memory), however to use pacing we
> walk away from 30 years of experience with TCP self clock, which is
> the foundation of all of our CC research....

Thanks for the interesting read. I have a few comments:

  * IMO, many of the mentioned problems are related to using packet loss
    as congestion signal rather than self-clocking.

  * In principle, one can keep utilization high and queuing delay low
    with a congestion window based and ACK-clock
    driven approach (see TCP LoLa
    https://ieeexplore.ieee.org/document/8109356). However, it currently
    lacks
    heuristics to deal with stretch/aggregated ACKs, but I think one can
    extend this like already done in BBR.

  * Pacing is really useful and I think it is important to keep sending
    in case the ACK-clock is distorted
    by the mentioned problems, but only for a limited time. If one's
    estimate for the correct sending rate
    is too high, the amount of inflight data increases over time, which
    leads to queuing delay and/or loss.
    So having the inflight cap as in BBRv1 is also an important safety
    measure.

  * "The maximum receive rate is probed by sending at 125% of max_BW .
    If the network is already full and flows have reached their fair share,
    the observed max_BW won’t change."
    This assumption isn't true if several flows are present at the
    bottleneck.
    If a flow sends with 1.25*max_BW on the saturated link, *the observed**
    **max_BW will change* (unless all flows are probing at the same
    time) because the probing flow preempts other flows, thereby
    reducing their current share. Together with the applied max-filter
    this is the reason why BBRv1 is constantly overestimating the available
    capacity and thus persistently increasing the amount inflight data
    until the inflight cap is hit. The math is in [32] (section 3) of your
    references. Luckily BBRv2 has much more safeguards built-in.

  * "The lower queue occupancy indicates that it is not generally taking
    capacity away from other transport protocols..."
    I think that this indication is not very robust, e.g., it may hold
    in case
    there isn't significant packet loss observed. Observing an overall
    lower buffer occupancy does not necessarily tell you something about
    the individual flow shares. In BBRv1 you could have starving Cubic
    flows, because they were backing-off due to loss, while BBR kept
    sending.

  * Last but not least, even BBR requires an ACK stream as
    feedback in order to estimate the delivery rate. But it is actually
    not self-clocked and keeps sending "blindly" for a while. This is
    quite useful to deal with the mentioned stretch/aggregated ACKs,
    if done with care.

Regards,
 Roland



[-- Attachment #2: Type: text/html, Size: 4136 bytes --]

  parent reply	other threads:[~2020-07-06 18:32 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAA93jw5RuBfDA=Yku6+Rm+YEdrUzvZMsoAwVXYduZjBmMVf43Q@mail.gmail.com>
     [not found] ` <CALDN43m=2SzkT4vLeqiFxE6PRd+ZKR1hdeMRwtqbTFuAL7nMLA@mail.gmail.com>
2019-12-13 21:25   ` Dave Taht
2020-07-04 17:29     ` Matt Mathis
     [not found]     ` <mailman.763.1593883755.24343.bloat@lists.bufferbloat.net>
2020-07-04 17:52       ` Daniel Sterling
2020-07-04 18:02         ` Jonathan Morton
2020-07-04 18:29         ` Sebastian Moeller
2020-07-05  6:10           ` Matt Mathis
2020-07-05 12:01             ` Sebastian Moeller
2020-07-05 17:07               ` Matt Mathis
2020-07-05 17:29                 ` Sebastian Moeller
2020-07-05 17:43               ` Michael Richardson
2020-07-05 18:09                 ` Stephen Hemminger
2020-07-05 18:13                   ` Jonathan Morton
2020-07-05 23:06                     ` Matt Mathis
2020-07-06 18:32       ` Roland Bless [this message]
2020-07-06 14:08     ` [Bloat] [Make-wifi-fast] " Luca Muscariello
2020-07-06 14:14       ` Daniel Sterling
2020-07-06 17:01         ` Toke Høiland-Jørgensen

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=1e04c5f8-4bdc-1835-1070-04b0c2224526@kit.edu \
    --to=roland.bless@kit.edu \
    --cc=bloat@lists.bufferbloat.net \
    --cc=carloaugusto.grazia@unimore.it \
    --cc=dave.taht@gmail.com \
    --cc=jamshid@whatsapp.com \
    --cc=mattmathis@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