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

Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com> Wed, 04 August 2021 15:30 UTC

Return-Path: <spencerdawkins.ietf@gmail.com>
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 BA8543A07BC for <quic@ietfa.amsl.com>; Wed, 4 Aug 2021 08:30:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 IaCvLTciDXJI for <quic@ietfa.amsl.com>; Wed, 4 Aug 2021 08:30:53 -0700 (PDT)
Received: from mail-vs1-xe2f.google.com (mail-vs1-xe2f.google.com [IPv6:2607:f8b0:4864:20::e2f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 917343A082F for <quic@ietf.org>; Wed, 4 Aug 2021 08:30:49 -0700 (PDT)
Received: by mail-vs1-xe2f.google.com with SMTP id t29so1225435vsr.5 for <quic@ietf.org>; Wed, 04 Aug 2021 08:30:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1yo2nyJXt7MYsv2QngcewGOvYNj0agkQ/ODXuxen/ZE=; b=ohpn+oYOsrlccbgj4Aj6hmxrh6oGkp2a5i1np/gYMWCpD0TzSUOyb0r1YNxI4bhO9b FHzPTgwafWxEpRVn4AlNpLuQFzD0wM4XQmqWDjFaGWZPCQsSqr7h6A01WbifZ+T/46db WIY0jFWabe6Y+HpFqrmYkPx8b8S0FTIBy2lT9Xxns1mI3y/x0dbXhKYwuWd2x98ic6Ov zDzs5Zc+m4m89R9V0WEfvd8lo3s8zVaUZrTgHF7+r6Q670eSe+9LRFInjD2HphHR75Fm 100b5O4PPgfiOmqylYtiTVvydzFWAJhF0GmJaymeScn84dSevjGk6bOWdEpnC6kOUwIn r97Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1yo2nyJXt7MYsv2QngcewGOvYNj0agkQ/ODXuxen/ZE=; b=ImjbFGI81BinTBa/TTP9KnGJoysv5rPLZMoR1dteooTiIoM3ieoK/hzdQCu8rGbGaA q6Wd6eVl9ga3bVxa08Ff3ckK2JPGX4m9wQjCoIk+kGTvBn4Vv4UJByB4G7FJPD5ODwhe YVxG8UIYxZcWbyImEKI48pMN7Yt5QEuICR+2UrQYUKOR503roLI3IHCz7VQvYv+hXrVP 4PTvSN2KcK5/mCte/C6H9aUwt1YtU37b8ODB+Mm3+A/Hfcj/KvaXF/03zGK91KU7DPPI CksTOEFr2njtOm9ncW9gmqF7fPedhq6lw9o45TSsoIKddnpmu4gkYcWzTvWgWPzdpV9Q 1F0A==
X-Gm-Message-State: AOAM531N1GzlOUGRBTorVG26KmcxGsZrGQb/QANiwmvaeKoMhwKKLBdQ fuWGrTDkmrKf56GRc6a99eoigFuqbxL3SvGSl54=
X-Google-Smtp-Source: ABdhPJworPRIjLYgZQqmmgqIcTEmaCr4s7Oy9R6gxfFblXpfybGDI1WQZVSs2oGGZCgPGVarccYjdX0GVMdGBJ/ZjQQ=
X-Received: by 2002:a67:7d09:: with SMTP id y9mr449201vsc.26.1628091046800; Wed, 04 Aug 2021 08:30:46 -0700 (PDT)
MIME-Version: 1.0
References: <16303ca7-7a41-7f28-46e9-5d16c007cb00@bobbriscoe.net>
In-Reply-To: <16303ca7-7a41-7f28-46e9-5d16c007cb00@bobbriscoe.net>
From: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Date: Wed, 04 Aug 2021 10:30:20 -0500
Message-ID: <CAKKJt-dor+pysgsREM8Zfuc52kCm9cpM18_sNAKF3roRhVuOkA@mail.gmail.com>
Subject: Re: quic-ack-frequency: fewer OK, but not excess
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>
Content-Type: multipart/alternative; boundary="00000000000081b1aa05c8bd7c3b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/sAPmHs6fa-NmOFcfmznAo8vxfF4>
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 15:30:58 -0000

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> 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/
>
>