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

Gorry Fairhurst <> Fri, 01 May 2020 04:41 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D99E63A0868 for <>; Thu, 30 Apr 2020 21:41:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.919
X-Spam-Status: No, score=-3.919 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.82, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id VNjNZ6kvH8Xi for <>; Thu, 30 Apr 2020 21:41:31 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 296303A0866 for <>; Thu, 30 Apr 2020 21:41:29 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 1ACCB282B94 for <>; Thu, 30 Apr 2020 21:41:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1588308088; bh=EQAM/Im5RhzpXq0ut50CMFz4woWQk2HcC/y/OFBJuaA=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=AU3aesH5TU6e8liluQKkd3+nJks3A+kFxdGfFGvpvOAWKj0Dg24ktvVNtq0FwN8eH TwTLsRsQmRpfJ2203XaR4SXHWk6pYrgts8I3VYaWUQW0Vu3yQIWPa1RgqmlnU72G/t SNie4LyzgXGZpgItR9NeHRv4u79r28sO87C6IWs8=
Date: Thu, 30 Apr 2020 21:41:28 -0700
From: Gorry Fairhurst <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/3529/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Changing the Default QUIC ACK Policy (#3529)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5eaba878bf16_25e33f98cf8cd96010451c"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: gorryfair
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 01 May 2020 04:41:33 -0000

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.

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.

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).


2020年4月28日(火) 20:37 Gorry Fairhurst <>:
> 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:
> 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:

Kazuho Oku

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: