Re: [quicwg/base-drafts] Changing the Default QUIC ACK Policy (#3529)

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Fri, 01 May 2020 15:01 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B99D93A1374 for <quic@ietfa.amsl.com>; Fri, 1 May 2020 08:01:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jntDv5kXY8kC for <quic@ietfa.amsl.com>; Fri, 1 May 2020 08:01:36 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [IPv6:2001:630:42:150::2]) by ietfa.amsl.com (Postfix) with ESMTP id 844F63A1370 for <quic@ietf.org>; Fri, 1 May 2020 08:01:36 -0700 (PDT)
Received: from GF-MacBook-Pro.local (fgrpf.plus.com [212.159.18.54]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPSA id E85331B000FF; Fri, 1 May 2020 16:01:29 +0100 (BST)
Subject: Re: [quicwg/base-drafts] Changing the Default QUIC ACK Policy (#3529)
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: quicwg/base-drafts <reply+ABYLLEQELHT6VF64GKSQIKF4WLTRNEVBNHHCFSANWY@reply.github.com>, QUIC WG <quic@ietf.org>, Lars Eggert <notifications@github.com>
References: <quicwg/base-drafts/issues/3529@github.com> <quicwg/base-drafts/issues/3529/620088318@github.com> <16fca907-e06f-d69a-f23d-a6c920c508ee@erg.abdn.ac.uk> <CANatvzwo0rM5-QptvQ0ezs_ckHJ3bnPHj=hkrqr-bhn=0RYsQg@mail.gmail.com>
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Message-ID: <f89c6c01-3048-ffff-87f7-0056979872b8@erg.abdn.ac.uk>
Date: Fri, 01 May 2020 16:01:28 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.7.0
MIME-Version: 1.0
In-Reply-To: <CANatvzwo0rM5-QptvQ0ezs_ckHJ3bnPHj=hkrqr-bhn=0RYsQg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------CC00C263DCCFB1888EBBDD64"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/JWeKm5qVIDEXCu5FvfXliNGEzug>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 May 2020 15:01:44 -0000

These results/article on computational efficiency are really 
interesting. Please see below.

On 01/05/2020 05:40, Kazuho Oku wrote:
> Hi, Gorry
>
> Thank you for sharing your experiments. I'm delighted to see results 
> showing that use of ack10 gives us comparable throughput to ack2.
>
> Recently, I have been looking into how ack-frequency affects the 
> computational efficiency of the server [1]. Using the (almost) same 
> setup, I have today run a benchmark comparing three ACK strategies: 
> ack2, ack10, ack 1/8cwnd.
>
> ack2: 334Mbps
> ack10: 414Mbps
> ack 1/8cwnd: 487Mbps
>
> As can be seen, ack10 is better than ack2, but lags behind ack1/8cwnd. 
> That's because there are still frequent ACKs. They take considerable 
> amount of CPU cycles.
>
This is useful, we see here there's a clear benefit here in using a 
larger ACK Ratio also in terms of server load.  We can see already the 
benefit at 1:10 and GSO helps as expected.
> If we want to see QUIC being as lightweight as TLS over TCP, it is 
> critically important to reduce ACK frequency as much as possible. This 
> is because the cost of processing ACK in QUIC is much more expensive 
> than TCP, due QUIC being a userspace transport.
>
We think that this is also really true. QUIC ACKs are also larger than 
TCP ACKs (see https://erg.abdn.ac.uk/users/gorry/ietf/QUIC/).
> Based on this, if we are to change what we have in the base drafts, 
> I'd much prefer adopting what we have in the proposed delayed ack 
> extension [2], rather than just changing the default ack policy from 
> ack2 to ack10. By adopting what we have in the delayed ack extension, 
> we can expect better performance, and the endpoints would have the 
> freedom to change the behavior when the default ack policy is deemed 
> insufficient (regardless of the default being ack2 or ack10).
>
> [1] 
> https://www.fastly.com/blog/measuring-quic-vs-tcp-computational-efficiency
> [2] https://tools.ietf.org/html/draft-iyengar-quic-delayed-ack-00
>
I don't think the two approaches conflict.

The difference between the two approaches is that the small change to 
the base specification to use an ACK Ratio 1:10 ensures the default 
return path is at least as good as TCP for common traffic (even with 
common TCP ACK Thinning). Without this change, the end user could 
experience significant differences in performance between TCP and 
between different QUIC versions over asymmetric paths.


Whereas to me, the transport parameter extension looks like an exciting 
way to enable many more things, but there are also many ways this could 
usefully evolve based on CC, offload, pacing etec and I think this will 
take much more to work-out what is needed, safe and best ... then to 
reach consensus. We still also need to specify a default ACK Ratio in 
this case as well.

Best wishes,

Gorry

> 2020年4月28日(火) 20:37 Gorry Fairhurst <gorry@erg.abdn.ac.uk 
> <mailto:gorry@erg.abdn.ac.uk>>:
> >
> > On 27/04/2020 17:19, Lars Eggert wrote:
> >
> > Folks who care about a change here need to prioritize progressing 
> this issue. We're close to being able to last-call the specs, and 
> would like this resolved in time..
> >
> > —
> > You are receiving this because you authored the thread.
> > Reply to this email directly, view it on GitHub, or unsubscribe.
> >
> > We’ve completed a round of updated analysis of the proposed change 
> to the QUIC spec, using quicly (changing to a 1:10 policy), and 
> chromium (which currently does 1:10 by default). Our hope is that this 
> change to the spec,  to actually make standard end-to-end QUIC work 
> better than TCP over asymmetric paths!
> >
> > This is a short slide deck about the performance of the proposed change:
> > https://erg.abdn.ac.uk/users/gorry/ietf/QUIC/QUIC-ack10-24-april-00.pdf
> >
> > There have been a number of other change made by the QUIC ID editors 
> relating to ACK processing, so we wanted to be sure these results were 
> up to date. (These results do not consider additional ACKs after 
> re-ordering - reflecting the latest text removing that.)
> >
> > We also really hope this will motivate a change the practice of 
> forcing of QUIC fallback to TCP (with PEP/Thining) over highly 
> asymmetric paths. People may also be interested in work for L4S to 
> evaluate the impact of ACK Thining for TCP-Prague.
> >
> > Please do provide feedback, or any questions on this - as Lars 
> notes, we think the time is running out for considering new changes, 
> even relatively simple ones like this.
> >
> > Gorry
> >
> > P.S. First email: 
> https://mailarchive.ietf.org/arch/msg/quic/NZBbuY88v0lrVspQE2A5br83asA/
>
>
>
> --
> Kazuho Oku