From: Dave Taht <dave.taht@gmail.com>
To: Michael Welzl <michawe@ifi.uio.no>
Cc: bloat <bloat@lists.bufferbloat.net>, David Ros <dros@simula.no>
Subject: Re: [Bloat] benefits of ack filtering
Date: Wed, 29 Nov 2017 23:45:12 -0800 [thread overview]
Message-ID: <CAA93jw6DpuhPt+N4bak3BctmfcaReRLTvJ2VQ8WSj+RQ6eF1Kw@mail.gmail.com> (raw)
In-Reply-To: <7B92DF4D-B6B5-4A64-9E10-119DCA2D4A6F@ifi.uio.no>
On Wed, Nov 29, 2017 at 11:03 PM, Michael Welzl <michawe@ifi.uio.no> wrote:
> Hi Bloaters,
>
> I’d like to give offer some information and thoughts on AckCC, at the bottom
> of this email.
>
>
> On Nov 29, 2017, at 4:53 PM, Luca Muscariello <luca.muscariello@gmail.com>
> wrote:
>
>
>
> On Wed, Nov 29, 2017 at 3:31 PM, Mikael Abrahamsson <swmike@swm.pp.se>
> wrote:
>>
>> On Wed, 29 Nov 2017, Luca Muscariello wrote:
>>
>>>> Why does it say to do this? What benefit is there to either end system
>>>> to
>>>> send 35kPPS of ACKs in order to facilitate a 100 megabyte/s of TCP
>>>> transfer?
>>>
>>>
>>> Did you check RFC 3449 ?
>>> https://tools.ietf.org/html/rfc3449#section-5.2.1
>>
>>
>> RFC3449 is all about middleboxes doing things.
>>
>> I wanted to understand why TCP implementations find it necessary to send
>> one ACK per 2xMSS at really high PPS. Especially when NIC offloads and
>> middleboxes frequently strip out this information anyway so it never reaches
>> the IP stack (right?).
>>
>
> I would say because it is complex to guess at which PPS to work. You would
> need an adaptation mechanism. Need also to change the client and the server
> sides. The AckCC Jonathan has mentioned
> might be a solution to that.
> Probably an ACK pacer in the end host, out of the TCP stack, doing Ack
> filtering and decimation can be simpler to implement than the proper
> adaptation mechanism in TCP.
> Maybe inside sch_fq it would be doable. Maybe not.
>
>
> I’m adding the response from Jonathan Morton here to make this more
> self-contained:
> ***
> Given an RTT estimate and knowledge of the congestion window, the AckCC
> option could be used to target a handful of acks (maybe 4 to 10) per RTT.
> As usual, extra acks would be sent when loss is suspected, on ECN events,
> and when the push flag is set.
>
> That would be perfectly sufficient.
>
> - Jonathan Morton
>
> ***
>
> A few years ago, David Ros, whom I’m adding in cc, one of the original
> authors of RFC 5690 did a sabbatical with me at the University of Oslo. As
> part of that, we advised a master student to carry out tests with AckCC, and
> analyze the RFC to understand how it would have to change if we were to
> proceed to Proposed Standard. The result of his investigation is here:
> http://heim.ifi.uio.no/michawe/teaching/dipls/marius-olsen/mastersthesis-mariusno.pdf
> and his code is here: http://folk.uio.no/mariusno/master/
>
> Now, after finishing the thesis, when it came to writing a paper about it,
> we got stuck in the discussion of “how are we going to explain that this is
> really necessary?”
> - we didn’t want to submit a “solution searching for a problem” paper and
> didn’t want to get rejected for not having shown that the problem truly
> exists. Searching for this a little in the academic world (papers) gave us
> no result, at least back then.
>
> Interestingly, at IETF 98, not so long ago, Ingemar Johansson explained to
> folks at TSVWG that the problem IS real:
> https://datatracker.ietf.org/meeting/98/materials/slides-98-tsvwg-sessb-7-transport-protocol-feedback-overhead-issues-and-solutions/
>
> So, let me now try to answer “why is TCP not doing that?”.
> - First, AFAIK, AckCC isn’t implemented anywhere (except that we have this
> old patch - please feel free to download, adapt, and play with it !!)
> - Second, if someone was to update TCP to support this, a bit more than
> simple statements about the amount of traffic being large would be good IMO
> - I mean, some convincing proof that the large number of ACKs *really* is a
> problem.
> - Third, once this is implemented and deployed and found to be beneficial,
> it would be useful to follow up in the IETF and update RFC 5690.
>
> Since nobody seems to be doing any of these things, nothing changes. But
> consider this: I see folks from Google doing a lot of TCP updates in the
> IETF for which they themselves appear to have an immediate need. Given the
> heterogeneity and magnitude of traffic produced by Google, if they don’t see
> a pressing need for it, I suspect that, indeed, the problem might not be so
> real after all?!
>
> Also, a word of caution. In this thread, there seems to be general agreement
> that TCP sends way too many ACKs, and that reducing that number would be
> fantastic.
> I’m not so convinced. Okay, even if TCP isn’t that ACK-clocked anymore in
> Linux: 1) there isn’t only Linux in this world,
Nor one Linux.
>2) ACKs are still quite
> important in Fast Recovery,
If you are already achieving twice the rate, what does occasionally
losing fast recovery cost?
>3) BBR might not need to clock out ACKs, but it
> measures their incoming rate.
if it collapses to a punctuated paced source, it could also notice
acks being lost, and extrapolate.
> For another example, consider a non-BBR
> sender in slow start: without ABC, missing ACKs would let it grow its cwnd
> too cautiously. Thanks to ABC, this can be done more aggressively - but ABC
> recommends a limit on how quickly to “jump” in the rate in response to a
> single ACK, for good reason - to avoid producing even heavier bursts. But
> with this limit, again, the TCP sender is unnecessarily cautious in Slow
> Start just because it misses ACKs.
I'm not a huge fan of slow start in IW10.
And: Strike "unnecessarily is", and substitute "may not be", as
http://blog.cerowrt.org/flent/ack_filter/1Gbit-20Mbit-rrul_be.png
seems to show. The ack-filter result shows one flow growing rapidly,
and three others not.
> My point is: the ACKs ARE the feedback that TCP works on; when you take them
> away, TCP becomes “blind”, and whatever improvement is made to TCP will have
> to be developed on that basis.
>
> I’m not saying that 1 ACK for every two packets is really necessary… but
> unless there’s hard proof that this really is a problem, I’d caution against
> a “downward spiral” here: the level of asymmetry offered to users today is
> probably somehow related to the commonly seen TCP ACK rate - so if TCP
> starts to reduce the ACK rate, folks may decide to make links even more
> asymmetric, etc. etc. … I’m not sure this is a good direction.
>
> Just some thoughts, and some context.
>
> Cheers,
> Michael
>
>
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat
>
--
Dave Täht
CEO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-669-226-2619
next prev parent reply other threads:[~2017-11-30 7:45 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-28 21:48 Dave Taht
2017-11-29 6:09 ` Mikael Abrahamsson
2017-11-29 9:34 ` Sebastian Moeller
2017-11-29 12:49 ` Mikael Abrahamsson
2017-11-29 13:13 ` Luca Muscariello
2017-11-29 14:31 ` Mikael Abrahamsson
2017-11-29 14:36 ` Jonathan Morton
2017-11-29 15:24 ` Andrés Arcia-Moret
2017-11-29 15:53 ` Luca Muscariello
[not found] ` <CAJq5cE3qsmy8EFYZmQsLL_frm8Tty9Gkm92MQPZ649+kpM1oMw@mail.gmail.com>
2017-11-29 16:13 ` Jonathan Morton
2017-11-30 7:03 ` Michael Welzl
2017-11-30 7:24 ` Dave Taht
2017-11-30 7:45 ` Dave Taht [this message]
2017-11-30 7:48 ` Jonathan Morton
2017-11-30 8:00 ` Luca Muscariello
2017-11-30 10:24 ` Eric Dumazet
2017-11-30 13:04 ` Mikael Abrahamsson
2017-11-30 15:51 ` Eric Dumazet
2017-12-01 0:28 ` David Lang
2017-12-01 7:09 ` Jan Ceuleers
2017-12-01 12:53 ` Toke Høiland-Jørgensen
2017-12-01 13:13 ` [Bloat] [Make-wifi-fast] " Кирилл Луконин
2017-12-01 13:22 ` Luca Muscariello
2017-12-11 17:42 ` Simon Barber
2017-12-01 13:17 ` [Bloat] " Luca Muscariello
2017-12-01 13:40 ` Toke Høiland-Jørgensen
2017-12-01 17:42 ` Dave Taht
2017-12-01 20:39 ` Juliusz Chroboczek
2017-12-03 5:20 ` [Bloat] [Make-wifi-fast] " Bob McMahon
2017-12-03 10:35 ` Juliusz Chroboczek
2017-12-03 11:40 ` Jan Ceuleers
2017-12-03 13:57 ` Juliusz Chroboczek
2017-12-03 14:07 ` Mikael Abrahamsson
2017-12-03 19:53 ` Juliusz Chroboczek
2017-12-03 14:09 ` Ryan Mounce
2017-12-03 19:54 ` Juliusz Chroboczek
2017-12-03 20:14 ` Sebastian Moeller
2017-12-03 22:27 ` Dave Taht
2017-12-03 15:25 ` Robert Bradley
2017-12-04 3:44 ` Dave Taht
2017-12-04 14:38 ` David Collier-Brown
2017-12-04 15:44 ` Juliusz Chroboczek
2017-12-04 17:17 ` David Collier-Brown
2017-12-03 19:04 ` Bob McMahon
2017-12-01 21:17 ` Bob McMahon
2017-12-01 8:45 ` [Bloat] " Sebastian Moeller
2017-12-01 10:45 ` Luca Muscariello
2017-12-01 18:43 ` Dave Taht
2017-12-01 18:57 ` Luca Muscariello
2017-12-01 19:36 ` Dave Taht
2017-11-30 14:51 ` Neal Cardwell
2017-11-30 15:55 ` Eric Dumazet
2017-11-30 15:57 ` Neal Cardwell
2017-11-29 16:50 ` Sebastian Moeller
2017-12-12 19:27 ` Benjamin Cronce
2017-12-12 20:04 ` Dave Taht
2017-12-12 21:03 ` David Lang
2017-12-12 21:29 ` Jonathan Morton
2017-12-12 22:03 ` Jonathan Morton
2017-12-12 22:21 ` David Lang
[not found] ` <CAJq5cE3nfSQP0GCLjp=X0T-iHHgAs=YUCcr34e3ARgkrGZe-wg@mail.gmail.com>
2017-12-12 22:41 ` Jonathan Morton
2017-12-13 9:46 ` Mikael Abrahamsson
2017-12-13 10:03 ` Jonathan Morton
2017-12-13 12:11 ` Sebastian Moeller
2017-12-13 12:18 ` Jonathan Morton
2017-12-13 12:36 ` Sebastian Moeller
2017-12-13 12:39 ` Luca Muscariello
2017-11-29 18:21 ` Juliusz Chroboczek
2017-11-29 18:41 ` Dave Taht
2017-11-29 23:29 ` Steinar H. Gunderson
2017-11-29 23:59 ` Stephen Hemminger
2017-11-30 0:21 ` Eric Dumazet
2017-12-11 20:15 ` Benjamin Cronce
2017-11-29 18:28 ` Juliusz Chroboczek
2017-11-29 18:48 ` Dave Taht
2017-12-11 18:30 ` Jonathan Morton
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=CAA93jw6DpuhPt+N4bak3BctmfcaReRLTvJ2VQ8WSj+RQ6eF1Kw@mail.gmail.com \
--to=dave.taht@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=dros@simula.no \
--cc=michawe@ifi.uio.no \
/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