Re: [quicwg/base-drafts] Changing the Default QUIC ACK Policy (#3529)
Gorry Fairhurst <notifications@github.com> Fri, 29 May 2020 09:40 UTC
Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 130CE3A0D6C for <quic-issues@ietfa.amsl.com>; Fri, 29 May 2020 02:40:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.101
X-Spam-Level:
X-Spam-Status: No, score=-3.101 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.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
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 p3d4M8trSlYA for <quic-issues@ietfa.amsl.com>; Fri, 29 May 2020 02:40:45 -0700 (PDT)
Received: from out-27.smtp.github.com (out-27.smtp.github.com [192.30.252.210]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DEA993A0D6B for <quic-issues@ietf.org>; Fri, 29 May 2020 02:40:44 -0700 (PDT)
Received: from github-lowworker-bb778fb.ash1-iad.github.net (github-lowworker-bb778fb.ash1-iad.github.net [10.56.102.56]) by smtp.github.com (Postfix) with ESMTP id D6F12E1612 for <quic-issues@ietf.org>; Fri, 29 May 2020 02:40:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1590745243; bh=BLxyAtOej624SA5mxeby+4EC8+EWt5vEBcy9974J3lQ=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=zX8U1Mcbj+fXh4Iz7ArHkyyzuCpHqVVjVrlhCBbKbzT1pw3PKvyl8nVG/G2W/DuGr tF092dc8kk9d+WpfsOIzNQVwxv23jRmywyNl0QCcEqQLjXzgvZ00Be4fFhi/iFSkdM vF5Ca3hIuVeC94rlpPtkcSjsM87Q/dAg7RkaElBM=
Date: Fri, 29 May 2020 02:40:43 -0700
From: Gorry Fairhurst <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK3I3SD3JZ4552F3WMN43S4ZXEVBNHHCFSANWY@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3529/635878980@github.com>
In-Reply-To: <quicwg/base-drafts/issues/3529@github.com>
References: <quicwg/base-drafts/issues/3529@github.com>
Subject: Re: [quicwg/base-drafts] Changing the Default QUIC ACK Policy (#3529)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5ed0d89bc7f72_4373fbd1d8cd95c4536d"; 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
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/GDJOiXirUawTzppZ5roEMB5-KIM>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 May 2020 09:40:47 -0000
I think the new ACK text is improving the specification, but I'd like to be sure we have thought about this decision. Let me try to carefully respond on-list here, to see where we agree/disagree: On 29/05/2020 07:41, Jana Iyengar wrote: > > @gorryfair <https://github.com/gorryfair> : I understand your > position. While I agree that ack thinning happens with TCP, it is not > what I expect to find on a common network path. And as far as I know, > the endpoints still implement the RFC 5681 recommendation of acking > every other packet. > I disagree, I think we shouldn't be perpetuating a myth that a sender receives a TCP ACK for every other packet. Even in the 90's implementations TCP stacks often generated stretch-ACKs for 3 segments. Since then, limited byte counting was introduced and significantly improved the sender's response to stretch ACKs, and that has been good for everyone. Senders still rely on byte-counting in TCP to handle Stretch-ACKs, and this need is not decreasing: new network cards reduce per-packet receive processing using Large Receive Offload (LRO) or Generic Receiver Offload (GRO). > > What you are arguing is that /with ack thinners in the network/ TCP's > behavior on /those/ network paths is different. > I am saying many TCP senders actually do today see stretch-ACKs. There are papers that have shown significant presence of stretch ACKs, e.g., (H. Ding and M. Rabinovich. TCP stretch acknowledgements and timestamps: findings and implications for passive RTT measurement. ACM SIGCOMM CCR, 45(3):20–27, 2015.). A TCP Stretch-ACK of 3 or 4 was common in their datasets (about 10% of cases). In some networks, the proportion of Stretch-ACKs will be much much higher, since ACK Thining is now widely deployed in WiFi drivers as well as cable, satellite and other access technologies - often reducing ACK size/rate by a factor of two. > However, I do not believe we understand the performance effects of > these middleboxes, that is, how they might reduce connection > throughput when the asymmetry is not a problem. > I am intrigued and would like to know more, in case I missed something? Typical algorithms I am aware of track a queue at the "bottleneck" and then make a decision based on upon the contents of the queue. If there is no asymmtery, there isn't normally a queue and the algorithm won't hunt to discard an "ACK". > Importantly, I don't think we should be specifying as default what > some middleboxes might be doing without fully understanding the > consequences of doing this. > But, maybe, there is some truth in being wary: Encrypted flows can also build return path queues (as does QUIC traffic). Without an ability to interpret the transport data (which nobody, including me, wants for QUIC), a bottleneck router is forced to either use another rule to drop packets from the queue (such as the smallest packets) or to allow a queue to grow, limiting forward direction throughput. I would say neither of these outcomes are great because the router is trying to fix the transport's asymetry. However, if QUIC causes this problem, I suggest some method will proliferate as QUIC traffic increases. > Please bear in mind that Chrome's ack policy of 1:10 works with BBR, > not with Cubic or Reno. > I didn't find something in QUIC spec. that was a major concern. It looked to me like QUIC had learned from TCP how to handle stretch-ACKs. After that, we changed quicly to use 1:10 with Reno, and things worked well. Didn't @kazuho <https://github.com/kazuho> also use Reno? > I do not believe there is a magic number at the moment, > Sure, the deisgn of TCP recognised that AR 1:1 generated too much traffic, AR 1:2 for TCP resulted in an Forward:Return traffic ratio of ~1.5%, and QUIC increases this ~3%. However, as network link speeds increased, this proved too low for many network links and so, TCP ACK thinning came into being. This often reduces the TCP AR to around 1:4 (<1%). If QUIC were to use an AR 1:10 it would be ~0.5%, of course if QUIC specified a default AR 1:4, it would also help in many cases. > and as @kazuho <https://github.com/kazuho> noted, even 1:10 is not a > small enough ratio under some conditions. > I totally agree, an endpoint might wish to change the AR. However, I don't see many **paths** where subnetwork link asymmetry drives that use case (spending ~10% of transmission bursts on ~1% of traffic seems like something that most links will be designed/dimensioned to work with). On the other hand, endpoint application/stack considerations (such as a different CC, e.g. the BBR case you note) will likely benefit from other ratios/behaviours. I agree this motivates your ID, and that a transport parameter can be of great value to synchronise the endpoint behaviours. However, that was not my comment: The endpoints know little-to-nothing about layer 2 congestion... and if we wish to discourage mitigations such as thinning or small packet discard, which I really would like to disincentivise), then we shouldn't make the QUIC default worse than TCP! > Given this, and given that we know 1:2 is used by TCP endpoints, it > makes the most sense to specify that as the suggested guidance. > That is a myth wrt to the sender, which is why I would like this discussed. Even in 2010, RFC 5690 seemed to ignore the presence of ACK Thinning, let's not do this again. > > The new text proposed in #3706 > <https://github.com/quicwg/base-drafts/pull/3706> describes the > tradeoff involved, and the rationale for using 1:2. I am strongly > against doing anything substantially different without /overwhelming > information/. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/quicwg/base-drafts/issues/3529#issuecomment-635790986>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/ABYLLERPAQNQCY5NVBUIDRLRT5KI3ANCNFSM4LOJ4RQA>. > What do we agree upon? Gorry P.S. I'll certainly review #3706 <https://github.com/quicwg/base-drafts/pull/3706> and will do this without bias, whatever the outcome is. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/quicwg/base-drafts/issues/3529#issuecomment-635878980
- [quicwg/base-drafts] Changing the Default QUIC AC… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… martinduke
- Re: [quicwg/base-drafts] Changing the Default QUI… ianswett
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… mirjak
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… ianswett
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… IngJohEricsson
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… IngJohEricsson
- Re: [quicwg/base-drafts] Changing the Default QUI… Lars Eggert
- Re: [quicwg/base-drafts] Changing the Default QUI… Lars Eggert
- Re: [quicwg/base-drafts] Changing the Default QUI… Lars Eggert
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… IngJohEricsson
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… IngJohEricsson
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… Bob Briscoe
- Re: [quicwg/base-drafts] Changing the Default QUI… IngJohEricsson
- Re: [quicwg/base-drafts] Changing the Default QUI… Lars Eggert
- Re: [quicwg/base-drafts] Changing the Default QUI… Lars Eggert
- Re: [quicwg/base-drafts] Changing the Default QUI… Mark Nottingham
- Re: [quicwg/base-drafts] Changing the Default QUI… Lars Eggert
- Re: [quicwg/base-drafts] Changing the Default QUI… Bob Briscoe
- Re: [quicwg/base-drafts] Changing the Default QUI… Jana Iyengar
- Re: [quicwg/base-drafts] Changing the Default QUI… IngJohEricsson
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… Jana Iyengar
- Re: [quicwg/base-drafts] Changing the Default QUI… Lars Eggert
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… Kazuho Oku
- Re: [quicwg/base-drafts] Changing the Default QUI… Gorry Fairhurst
- Re: [quicwg/base-drafts] Changing the Default QUI… Lucas Pardue
- Re: [quicwg/base-drafts] Changing the Default QUI… Jana Iyengar
- Re: [quicwg/base-drafts] Changing the Default QUI… Martin Thomson