RE: quic-ack-frequency: fewer OK, but not excess

Mike Bishop <mbishop@evequefou.be> Wed, 04 August 2021 18:58 UTC

Return-Path: <mbishop@evequefou.be>
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 1C69D3A117F for <quic@ietfa.amsl.com>; Wed, 4 Aug 2021 11:58:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=evequefou.onmicrosoft.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 sO12EtTY_-ld for <quic@ietfa.amsl.com>; Wed, 4 Aug 2021 11:58:09 -0700 (PDT)
Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1anam02on2122.outbound.protection.outlook.com [40.107.96.122]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6711F3A117A for <quic@ietf.org>; Wed, 4 Aug 2021 11:58:08 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SmVoP3Y/TXfZZApG4CP1jTUL/KM1vsMHSS6YOHNHrBQNjg9JyRScNUt4GsP3RBXHgFL99T9Hs3gRAvJLEjB4JCIlk6TLYUuv/Od1z5UaAyhu9iDgjWnM8neBx+uon/XiblbNnadDh+JdNp2diNDGdUGZh+gi/RWWt0mXa4dQB0p+qrYXnP4BMuyjbq3SBI1l+QpycBvooC8YElAEdRi6wXfB+kYyJAQYdLKM4WTPbmePIbg/J/k6LzAfq7LBgXZSiohMTYo99vaYTCCzTGKc6kZeEFC9ou7NM+lyniJj7VT3fgRCMUI+ZSd/xB3z0isJQCbFdSGN6h33N+NeEt+AtQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B55E5gMjcqeQfjSwEdyWMFAaQl5pqeBb+fZQx9JE7xI=; b=BnMwy9aicDtV3BzqJddMYPWmb6r4mCwM4xomh962qwvFxxDj0wlwj9QdsnLiOW+KQRjR3592nTrkTKtofy2azIwVFg3YFCR69q9/zGQNbCLEbKXD1uKlDmKgfUuaq9kZYFk5G/OJEHc0PIwbrClNbER10dvJ/6yh7jBasz0xOqHAzKbHwFRXt6hAF5gIveSHPeQw9gBYxvfKgHVoB7S5ocv0Gj3FVIDT83+dBxtpis2691B4JFAcXC+ZIa713aGQl9M07VAcnxUTBpqUo4u+Odyoa6zUMlOZhEXBWA/sq4Ocn+NGlPzHikraUIrGOChL7gg3LpbfztShwN7Jsw9I6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=evequefou.be; dmarc=pass action=none header.from=evequefou.be; dkim=pass header.d=evequefou.be; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=evequefou.onmicrosoft.com; s=selector2-evequefou-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B55E5gMjcqeQfjSwEdyWMFAaQl5pqeBb+fZQx9JE7xI=; b=csnKbMUKlrzPFwPICjTjvWDwZapySVew5Umh+cPD7Hw2idpsk/cSHPcPRDId1yt/G8nFsVI2uZf0GBCYkLmNrG3QYr3f41cFpqnm0cxFSQnQBxaN7Hwl7AtI0dZ3+FX8l3HZrc3VetW1FENdTzgF02XvOKniXqM0GvazBZWXjls=
Received: from BLAPR22MB2259.namprd22.prod.outlook.com (2603:10b6:208:27b::11) by MN2PR22MB2014.namprd22.prod.outlook.com (2603:10b6:208:20c::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.16; Wed, 4 Aug 2021 18:58:06 +0000
Received: from BLAPR22MB2259.namprd22.prod.outlook.com ([fe80::2549:c98c:dcda:526c]) by BLAPR22MB2259.namprd22.prod.outlook.com ([fe80::2549:c98c:dcda:526c%7]) with mapi id 15.20.4373.026; Wed, 4 Aug 2021 18:58:05 +0000
From: Mike Bishop <mbishop@evequefou.be>
To: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, Bob Briscoe <ietf@bobbriscoe.net>
CC: Jana Iyengar <jri.ietf@gmail.com>, Ian Swett <ianswett@google.com>, QUIC IETF mailing list <quic@ietf.org>
Subject: RE: quic-ack-frequency: fewer OK, but not excess
Thread-Topic: quic-ack-frequency: fewer OK, but not excess
Thread-Index: AQHXgzjTTRiBOYOWD0yYq26jljqDHatjhNMAgAA4ZTA=
Date: Wed, 04 Aug 2021 18:58:05 +0000
Message-ID: <BLAPR22MB225986246F6025B6CBB699D3DAF19@BLAPR22MB2259.namprd22.prod.outlook.com>
References: <16303ca7-7a41-7f28-46e9-5d16c007cb00@bobbriscoe.net> <CAKKJt-dor+pysgsREM8Zfuc52kCm9cpM18_sNAKF3roRhVuOkA@mail.gmail.com>
In-Reply-To: <CAKKJt-dor+pysgsREM8Zfuc52kCm9cpM18_sNAKF3roRhVuOkA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=evequefou.be;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 482d3b7f-9def-4111-9feb-08d95779cb00
x-ms-traffictypediagnostic: MN2PR22MB2014:
x-microsoft-antispam-prvs: <MN2PR22MB201462E646D6BFA4AB97CB9EDAF19@MN2PR22MB2014.namprd22.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: u08fCAIPZMmdVZU4Jp7hlBcKqWNH4QCXV5Tbm/HGWsK640f5LNnPPiW/bDgEMWD86/VKKkq2emT+hGRtVtp7uOLGHmDKDLG57FB4OW6p5Nv2lYTMoLgUB/e8UuTOlh8R7o3rLdw5X4dlfYqCW62+CmXRNG0lWJ22znvucRpRbmxkRhiODQr31LrMnpra1oO4tJJnOCkRlnUQseR6F+wAhlqYeCF0N2cmO0/n32VgXANxQcDxHl2+C9W2bmXouaY/Gvyp5BmKmqjUg/nq84JLdJbBgTLIwJqD/tXzbEa0vrwhkiWhnqJ3sJoyFl7yDLMs+fW77VloZqDx2S2SHVMKjq+YR9dj95E7g3LhFjsepgAiTVGwg8LnnMlbwVyK9obF9h2GwOPw7nrTj6X0ee4jZ+yzHPf3YnIDGXGJuDXzm4vj1TfXDiyCp/NUHQ07DeSz6S8cwXp0WJQpWR9oKNvUKhpf29K9JHUKjUxFSAQZTD4bBG6QmrXSH6Bc0UKLfJkiTgDf11M7psOh8g2asOYkUOGLlMdYH/INSvRxbC7beNE6vq3e0I3hlsZTjDNrYmVFt7Jb22E7yxteCKfT2x+42V31oOhxlN8Uvnb3pFnRGxgwIuF0c+Wa6Re9acRIKgFkHTc1P6hMK3P74y/JkzjMs+P5qKNYpo4YmYwIIoeat5fhYGU8e1IHI69ZUJmm34HVWI5nP1Wp7K2lrBvJj50IdkFFZ//X7he727nI1gUR+8Of/gUVZVHXldtuJ6ucHMQ6T9CTwjLftGwRWG4GfL8Vlw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR22MB2259.namprd22.prod.outlook.com; PTR:; CAT:NONE; SFS:(376002)(346002)(136003)(39830400003)(366004)(396003)(66556008)(66476007)(54906003)(966005)(86362001)(52536014)(110136005)(122000001)(83380400001)(66946007)(66446008)(64756008)(5660300002)(71200400001)(38100700002)(76116006)(9686003)(55016002)(478600001)(4326008)(38070700005)(33656002)(8936002)(7696005)(26005)(8676002)(53546011)(6506007)(166002)(2906002)(186003)(316002); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: ck98lkKMTIPa9fxCfu7FIHkV0SFEajMaCQuFoHNPon29OBCUrfA1fkp1dAlGLIz5IqikNAOKpNvO/duVcUQzaR+fST9ylEkIHxk64G089dR/jKhKAoafqc3KLoVD3SPoisPgxUmC34x4gLv+tBZoBKmxp9RdmjfrjyiePERlxH+IKg3MyKMg8hezezNLcpkyaCX19Mb2LKZKdPxpzEXCdC7hnOWn+axGgvAEA4rYHLqFBm3R5rJMPuqdKpLE/hQSbwuTSVU4bdl/hy1uQrJs4vyQ65GpmgLG+XjL4Kjskc6MiFrwLph7dodUa1r4g3QSOi1I+Xfl4nPhrzijBxLnVqwf8Gei67QyzdthuODwnYEIYueMrAPXUMPwVOkfPW0s3nfyLCHcK4rwnGN5bLresv0rslv4dF0qLRCLl9K78oGFnahrhkdWpYLbV6dm1S79Y3HTJ+RiYVU0WmSrilCOtSTTbjuXhAEEkKORtyVFwew4DWqpDC9om+NZv6+WugNMQ5xPPeXi8LBaLuYvnT0mjHoA8+ujC16GXqiD5veHCpLspjpPxoP8KIejbTh8lw2KuDyr1qPBVs53cl7gz3dgeQWIqhjQUgIl5RsiDfcn+nV6YwBTjQveXFdZ5xb/LiI/3z4z8FyGK2WtdW/PV+x2qE5upg7D680JuSxXhE7CfQGCPsT9Wz2tdAcKQkUbdy4IiifvwzUzeS5C+KzUSxULSplfDl/omKcrREUnoFRlvHL6lY/Dc1NoUfz0vbO+MODw6Z+sLfmwHxtrD1H+09F1FI6wznp2s75NNiZEQHmo4OCzhaf/O5tzMB8c93W1wSUFZE1r4Gpm09yogZKLDb9WvT9H7kT7hyoeFYwOBjLdoRPBPjBWgfxs6KwMi7AA8gpUTjHVML7cTc+seoai8LRfUrM+QNEevfpbl84m3vKSJSbgoxWUJ6qUs9CYXH8LFlsBSMr0boEozmgB0dk3SUXJEj9WAoSVAx/e8lYN1uQ9HNYRS6oOnIHLF4cSErdxKF8KD/nxAmEAa45U+JwFtkZpbf3XoIzVO/1E9vH8ihm3eQlmB02IahgHuA6uKvw/pVlU5mT2/bKl1uUDkDz/Sq0z3gpgRygGs0Kvre/toyxKPm6xrHF40Dk9lEnHbQGoLdaMbs56KMroPZEddsWRAQSxbERdCSRPpUlC1dDLMvA94Fi1GVfGWnbPRoA0fOP7rhc3VaTSR5/DHNwbGvQcaULHfPIlOTr+DcUMxlusxWm6SDDOmJRg2rFNijiNog744qE78+c8pHvrr2ZAY4j7tRTqQnsFZpb4KLvnm9TKR3c0uJM=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_BLAPR22MB225986246F6025B6CBB699D3DAF19BLAPR22MB2259namp_"
MIME-Version: 1.0
X-OriginatorOrg: evequefou.be
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BLAPR22MB2259.namprd22.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 482d3b7f-9def-4111-9feb-08d95779cb00
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2021 18:58:05.6786 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 41eaf50b-882d-47eb-8c4c-0b5b76a9da8f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: dTDyi+1M+ITElXsAMziLVxBiIsIopl32tDpRQBlv3krPEA87OExBlJJLwKRrr0baCU53uzVL9DO7Kf9fI/GxbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR22MB2014
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/txJA01q3tZEik7r8u9MNnGZGiUI>
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: Wed, 04 Aug 2021 18:58:14 -0000

This also seems to fall into the realm of requirements that are difficult to enforce against the other side.  There are some corner cases where you might be sure, and if you cared to track over time you could infer whether your peer is complying within a reasonable probability… but it would be hard to be certain.  This seems like a SHOULD.

From: QUIC <quic-bounces@ietf.org> On Behalf Of Spencer Dawkins at IETF
Sent: Wednesday, August 4, 2021 11:30 AM
To: Bob Briscoe <ietf@bobbriscoe.net>
Cc: Jana Iyengar <jri.ietf@gmail.com>; Ian Swett <ianswett@google.com>; QUIC IETF mailing list <quic@ietf.org>
Subject: Re: quic-ack-frequency: fewer OK, but not excess

Hi, Bob,

On just one point (and it's a BCP 14 point),

On Tue, Jul 27, 2021 at 5:43 PM Bob Briscoe <ietf@bobbriscoe.net<mailto:ietf@bobbriscoe.net>> wrote:
In 6. Sending Acknowledgments<https://datatracker.ietf.org/doc/html/draft-ietf-quic-ack-frequency-00#section-6> it says "On receiving an ACK_FREQUENCY frame...endpoint MUST send an acknowledgement when..."

What if it doesn't? Why MUST?
The underlying question here is what is the interoperability requirement?
Imagine I'm host A, and I instruct B to set ACK-eliciting threshold = 8 packets.

  1.  What if B ACKs more frequently? e.g. every packet, is it a DoS attack? Is this a protocol violation?
  2.  The spec allows B to ACK less often (it says greater than or equal to "ACK-eliciting threshold"), but it says no longer than max_ack_delay. What if A has told B to set max_ack_delay = 960 μs, but B has other things taking up its resources, so B sends an ACK every 2ms? A's congestion controller might not perform quite so well, but is this a protocol violation? What can A do about it, and does it really need to expect B to do anything differently?
To propose answers to my own questions, I would suggest that:

  1.  A MAY consider B is violating the protocol if B ACKs more frequently than ACK-eliciting threshold (after having acknowledged the relevant ACK_FREQUENCY frame). Then if A can cope, it just keeps calm and carries on. But if it can't it is entitled to panic.
 I may be missing something, but is that saying that A MAY consider B is violating the protocol if B ACKs more frequently because of packet reordering (as in https://datatracker.ietf.org/doc/html/draft-ietf-quic-ack-frequency-00#section-6.1)?

From a BCP 14 perspective - I've sent plenty of email about SHOULDs, both as a GenART reviewer and as an AD, asking "so why would an endpoint NOT do that ("why is that SHOULD not a MUST?"). But in this case, I THINK you're describing where B MUST do something (In Section 6), but B has a good reason to violate the MUST (in 6.1) from A's perspective, and A might or might not decide that even if B violates the MUST, A can just go on.

Do I have that wrong?

If so, my apologies, but if not, this is a poster child for SHOULD, rather than a MUST that can be ignored, or not, depending on how A is feeling that day.

Best,

Spencer

  1.  In contrast, A needs no recourse if B sends any or all ACKs more infrequently than the max_ack_delay. The connection performance goes to pieces, but that's what happens when one machine can't cope.

Changes to the text of §6 that would put all the above into effect:

  *   s/"max_ack_delay"/at least "max_ack_delay"/ in second bullet.
  *   After the two bullets, add something to the effect of "...MAY consider B is violating..." as in the bullet above.
  *   §6.3 (Batch Processing of Packets) should not be described as an exception. It's just an example of a case when an ACK is sent when the number of received ack-eliciting packets is greater than, not equal to, the "ACK-eliciting threshold" (as already allowed in the first bullet).

________________________________
In 6.2.  Expediting Congestion Signals<https://datatracker.ietf.org/doc/html/draft-ietf-quic-ack-frequency-00#section-6.2> there's a similar issue. It says
   "...an endpoint SHOULD immediately acknowledge packets marked with the ECN Congestion Experienced (CE)..."

Up to a point this is OK, but during overload in one direction, it causes every packet to be ACKd in the other. The forward direction is going to have to slow down due to the CE marking, but it might not be the best idea to stuff up the queue with ACKs on the reverse path at just the same moment.

Also, if QUIC is used in a DC, or with L4S across an ECN AQM that uses a simple step marking threshold, it can lead to runs of 100% ECN marking lasting for around 1 RTT. But by the quoted rule, the receiver SHOULD ACK every packet. I'm aware that this is a quote from RFC9000, but at least RFC9000 allows us to "deviate from these requirements after careful consideration" because it seems wrong.

There's also the question of whether this is meant to mean that an endpoint SHOULD ACK acknowledgement packets marked CE, which could lead to an interminable ACK ping-pong.

There has been a long discussion going on about a similar subject in tcpm. You might want to refer to the thread:
Seeking WG opinions on ACKing ACKs with good cause<https://mailarchive.ietf.org/arch/msg/tcpm/xudSM54FV2HRyzF9fbrj34-0ST8/>

It might be quicker to just read the text resulting from that thread, which is now in the Accurate ECN TCP Feedback draft:
https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn#section-3.2.2.5.1
There's a lot of tricky stuff there.

Cheers



Bob




--

________________________________________________________________

Bob Briscoe                               http://bobbriscoe.net/