* Re: [Cake] [Bloat] benefits of ack filtering
[not found] ` <7i1skhrln1.wl-jch@irif.fr>
@ 2017-11-29 18:41 ` Dave Taht
2017-11-29 23:29 ` Steinar H. Gunderson
2017-11-29 23:59 ` Stephen Hemminger
0 siblings, 2 replies; 5+ messages in thread
From: Dave Taht @ 2017-11-29 18:41 UTC (permalink / raw)
To: Juliusz Chroboczek; +Cc: Mikael Abrahamsson, bloat, Cake List
On Wed, Nov 29, 2017 at 10:21 AM, Juliusz Chroboczek <jch@irif.fr> wrote:
>> The better solution would of course be to have the TCP peeps change the
>> way TCP works so that it sends fewer ACKs.
>
> Which tends to perturb the way the TCP self-clocking feedback loop works,
> and to break Nagle.
Linux TCP is no longer particularly ack-clocked. In the post pacing,
post sch_fq world, packets are released (currently) on a 1ms schedule.
Support was recently released for modifying that schedule on a per
driver basis, which turns out to be helpful for wifi.
see: https://www.spinics.net/lists/netdev/msg466312.html
>
>> In the TCP implementations I tcpdump regularily, it seems they send one
>> ACK per 2 downstream packets.
>
> That's the delack algorithm. One of the stupidest algorithms I've had the
> displeasure of looking at (a fixed 500ms timeout, sheesh).
Nagle would probably agree. He once told me he wished for 1 ack per
data packet...
We were young then.
>
> And yes, it breaks Nagle.
>
>> I don't want middle boxes making "smart" decisions
Ironically, it was dave reed's (co-author of the end to end argument)
50x1 ratio network connection that was an impetus to look harder at
this, and what I modeled in
http://blog.cerowrt.org/post/ack_filtering/
(I note there is discussion and way more tests landing on the cake mailing list)
The astounding number was that we were able to drop 70% of all packets
(and 90+% of acks) without doing any visible harm on the tests.
>
> I agree, especially if they use transport-layer data to make their
> decisions.
I'm not particularly fond of the idea myself! But I didn't invent
severe network asymmetry, or cpus that can't context switch worth a
damn.
>> Since this ACK reduction is done on probably hundreds of millions of
>> fixed-line subscriber lines today,
What I'd started with was wanting to create impairments for netem that
matched common ack-filtering schemes in the field already.
> what arguments do designers of TCP have
>> to keep sending one ACK per 2 received TCP packets?
this would be a good list to have.
I note osx does stretch acks by default.
>
> I think it's about growing the TCP congestion window fast enough. Recall
> that that AIMD counts received ACKs, not ACKed bytes.
the cake code has a specific optimization to preserve slow start. It
can be improved.
>
> (And not breaking Nagle.)
>
> -- Juliusz
--
Dave Täht
CEO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-669-226-2619
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Cake] [Bloat] benefits of ack filtering
[not found] ` <7izi75q6rj.wl-jch@irif.fr>
@ 2017-11-29 18:48 ` Dave Taht
0 siblings, 0 replies; 5+ messages in thread
From: Dave Taht @ 2017-11-29 18:48 UTC (permalink / raw)
To: Juliusz Chroboczek; +Cc: bloat, Cake List
On Wed, Nov 29, 2017 at 10:28 AM, Juliusz Chroboczek <jch@irif.fr> wrote:
>> Recently Ryan Mounce added ack filtering cabilities to the cake qdisc.
>> The benefits were pretty impressive at a 50x1 Down/Up ratio:
>
> If I read this posting right, you're only measuring bulk performance.
> What about interactive traffic, when there's only one or two data segments in
> flight at a given time
In this design, you can only filter out an ack when you have a queue of them.
I am thinking saying "filter" has been misleading. Tho plenty
stateless ack filters exist.
ack-queue-compression?
>> I'd rather like to have a compelling list of reasons why not to do
>> this!
>
> I haven't looked at Cake in detail, and I haven't put much thought into
> ACK filtering, but off the top of my head:
>
> - not risking breaking any of the TCP-related algorithms that depend on
> ACKs arriving in a timely manner (AIMD, Nagle, Eifel, etc.),
> especially in the case of just one segment in flight;
> - not contributing to the ossification of the Internet by giving an
> unfair advantage to TCP over other protocols;
> - limiting the amount of knowledge that middleboxes have of the
> transport-layer protocols, which leads to further ossification;
> - avoiding complexity in middleboxes, which leads to a more brittle
> Internet;
> - not encouraging ISPs to deploy highly asymmetric links.
I'll add these to my list!
>
> This is not my area of expertise, and therefore I don't feel competent to
> have an opinion, but I think that before you deploy ACK filtering, you
> really should consider the worries expressed above and whatever other
> worries more competent people might have.
been worrying ever since I touched the wet paint!
> -- Juliusz
--
Dave Täht
CEO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-669-226-2619
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Cake] [Bloat] benefits of ack filtering
2017-11-29 18:41 ` [Cake] [Bloat] benefits of ack filtering Dave Taht
@ 2017-11-29 23:29 ` Steinar H. Gunderson
2017-11-29 23:59 ` Stephen Hemminger
1 sibling, 0 replies; 5+ messages in thread
From: Steinar H. Gunderson @ 2017-11-29 23:29 UTC (permalink / raw)
To: Dave Taht; +Cc: Juliusz Chroboczek, Cake List, bloat
On Wed, Nov 29, 2017 at 10:41:41AM -0800, Dave Taht wrote:
> Linux TCP is no longer particularly ack-clocked. In the post pacing,
> post sch_fq world, packets are released (currently) on a 1ms schedule.
Most Linux hosts don't run sch_fq, though. I mean, it's not even default in a
4.15 kernel.
/* Steinar */
--
Homepage: https://www.sesse.net/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Cake] [Bloat] benefits of ack filtering
2017-11-29 18:41 ` [Cake] [Bloat] benefits of ack filtering Dave Taht
2017-11-29 23:29 ` Steinar H. Gunderson
@ 2017-11-29 23:59 ` Stephen Hemminger
2017-11-30 0:21 ` Eric Dumazet
1 sibling, 1 reply; 5+ messages in thread
From: Stephen Hemminger @ 2017-11-29 23:59 UTC (permalink / raw)
To: Dave Taht; +Cc: Juliusz Chroboczek, Cake List, bloat
On Wed, 29 Nov 2017 10:41:41 -0800
Dave Taht <dave.taht@gmail.com> wrote:
> On Wed, Nov 29, 2017 at 10:21 AM, Juliusz Chroboczek <jch@irif.fr> wrote:
> >> The better solution would of course be to have the TCP peeps change the
> >> way TCP works so that it sends fewer ACKs.
> >
> > Which tends to perturb the way the TCP self-clocking feedback loop works,
> > and to break Nagle.
>
> Linux TCP is no longer particularly ack-clocked. In the post pacing,
> post sch_fq world, packets are released (currently) on a 1ms schedule.
> Support was recently released for modifying that schedule on a per
> driver basis, which turns out to be helpful for wifi.
>
> see: https://www.spinics.net/lists/netdev/msg466312.html
Also TCP BBR has lost its initial luster since it is unfair and ignores
losses and ECN (see recent netdev paper).
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Cake] [Bloat] benefits of ack filtering
2017-11-29 23:59 ` Stephen Hemminger
@ 2017-11-30 0:21 ` Eric Dumazet
0 siblings, 0 replies; 5+ messages in thread
From: Eric Dumazet @ 2017-11-30 0:21 UTC (permalink / raw)
To: Stephen Hemminger, Dave Taht; +Cc: Cake List, Juliusz Chroboczek, bloat
On Wed, 2017-11-29 at 15:59 -0800, Stephen Hemminger wrote:
> On Wed, 29 Nov 2017 10:41:41 -0800
> Dave Taht <dave.taht@gmail.com> wrote:
>
> > On Wed, Nov 29, 2017 at 10:21 AM, Juliusz Chroboczek <jch@irif.fr>
> > wrote:
> > > > The better solution would of course be to have the TCP peeps
> > > > change the
> > > > way TCP works so that it sends fewer ACKs.
> > >
> > > Which tends to perturb the way the TCP self-clocking feedback
> > > loop works,
> > > and to break Nagle.
> >
> > Linux TCP is no longer particularly ack-clocked. In the post
> > pacing,
> > post sch_fq world, packets are released (currently) on a 1ms
> > schedule.
> > Support was recently released for modifying that schedule on a per
> > driver basis, which turns out to be helpful for wifi.
> >
> > see: https://www.spinics.net/lists/netdev/msg466312.html
>
> Also TCP BBR has lost its initial luster since it is unfair and
> ignores
> losses and ECN (see recent netdev paper).
Recent netdev paper (from Larry) mentioned that fq_codel is used.
fq_codel is stochastic, so not a fairness champion with many flows.
There is a reason we use fq [1] instead ;)
We asked Larry how to reproduce his (surprising) results, because we
suspect some setup error or bias. He has to update his github trees.
netem can be tricky to use properly.
[1] Although the choice of packet scheduler is no longer an issue with
BBR now TCP can fallback to internal pacing implementation.
About ECN : We do not enable ECN for edge communications, so BBR runs
without ECN being negotiated/accepted.
We will probably take care of this point soon, but we had more urgent
problems.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-11-30 0:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CAA93jw47ZAXAJmiOVCb2NR3JRcCfmX0TLr+55O0G+J6HCW5bVQ@mail.gmail.com>
[not found] ` <alpine.DEB.2.20.1711290655590.32099@uplift.swm.pp.se>
[not found] ` <7i1skhrln1.wl-jch@irif.fr>
2017-11-29 18:41 ` [Cake] [Bloat] benefits of ack filtering Dave Taht
2017-11-29 23:29 ` Steinar H. Gunderson
2017-11-29 23:59 ` Stephen Hemminger
2017-11-30 0:21 ` Eric Dumazet
[not found] ` <7izi75q6rj.wl-jch@irif.fr>
2017-11-29 18:48 ` Dave Taht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox