Re: Old packets in draft-ietf-quic-ack-frequency-11
Martin Duke <martin.h.duke@gmail.com> Thu, 15 May 2025 17:43 UTC
Return-Path: <martin.h.duke@gmail.com>
X-Original-To: quic@mail2.ietf.org
Delivered-To: quic@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 976A828F81E1 for <quic@mail2.ietf.org>; Thu, 15 May 2025 10:43:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0Dy3tpjtfv0l for <quic@mail2.ietf.org>; Thu, 15 May 2025 10:43:36 -0700 (PDT)
Received: from mail-vk1-xa33.google.com (mail-vk1-xa33.google.com [IPv6:2607:f8b0:4864:20::a33]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id BACF828F81D3 for <quic@ietf.org>; Thu, 15 May 2025 10:43:36 -0700 (PDT)
Received: by mail-vk1-xa33.google.com with SMTP id 71dfb90a1353d-5242f137a1eso412717e0c.1 for <quic@ietf.org>; Thu, 15 May 2025 10:43:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747331016; x=1747935816; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Tlj0GP7B9lKXQSwqelPH4S+Xe4sUWSCql6okD3oSe9A=; b=hXfFDKSChUlP6Agx22GcLaGFVCzSK9pt0GLsPjn8kUva8jRvWT/uI8QZ50vTTlHpDo dfvyUDTjf67SEm4xs3YTW6lDObEUc1GMTXooUKS/vyWCnRgjXfnuSlZlElTDCgHDYt+w VdFW3T7qjgNT3/IuYmdadHctxT5r5hSLclBGlDuu2Z68JNFXKcVZhAMh+fUBS3a80sxh 2jXXYLMtLXb3Xu+p8gg9XFtRFqB9rkho+OZD5ryN7sXByN1XvgXvRKKEry6duZhJVx6H rhEDOBG60sX9SCYV2++SjNP6ajIOwXwDzxWByIzBalZO8Ny3/42/44ReOCIBiOsmmijR tn8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747331016; x=1747935816; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Tlj0GP7B9lKXQSwqelPH4S+Xe4sUWSCql6okD3oSe9A=; b=RsLeBVSn+b4/vZHQkFy+NLqC8yOz5pnWD9JovR4NDajWgs5iCBAgfoPRzhIyV71L0m 80KQH145aBH6zAfAkMEo6a4gdq4Qh/yocNE1F5taNBLtLW3BgS5tluawknVmZZXLAQ5n D758CswFcsSdAMqTh+SyFj271dOebp2zXvct3UKvZgK1koQvXkTO5p7R++XUsZzQpATh j8d6eVtDYyhIpqg/k3URlc0jPNh+hjTULoXnX5bA30C4oIsm3zGDAGQXH0f3OqUsQUHu l4+6aJ4+WUNnevUdpsJ5dbTkcC8ZS6122pQdQidjD21Z7gnXU+Kzsb6QINQY4HtqXgZ9 gapw==
X-Forwarded-Encrypted: i=1; AJvYcCWed47jxvdZlebLc1wRRKi629fDwRF8G43824LlwWubC51jYdA7Eb96pAb+Qq7R/PVVs6iy@ietf.org
X-Gm-Message-State: AOJu0YyhIXQ1Xq8D+/UpFGjMFzIXx91v6wDA6mx8wW6TM9VbTwrZCAmY ifMwYUPN73STjEMCwc4FrsVnK53pYQ29wypZQ/WaH3KvSGqTTnvHUfL9KC0imxzNb6j8HikSFc2 kgrVAlN72llAJNekDQ4+V7j8Lky3xGBA=
X-Gm-Gg: ASbGnctgowqCvfdzhctXvAMZUCcnNx7IaDjaV9qopbkMaBInakp1V9AM9e21zqQjp7v C/4lZGV7lbQDeVm4deh3HHZWkWG+SdCdbCcTH+uJZT5RYqSt9rzf0Tqnz2dDSkoFQ3FhO2hJu0P BtaMtuUukdXMkd/+gZ31WWWY/BCxcBGeiMS/aSMnIZVpUSsZfucWZ8nX3YzGYKqVE=
X-Google-Smtp-Source: AGHT+IGDPtiRZiwYbJbLgonVY7pBIeT12V2L1kbfsytTXSVRQYgr5fzMN9dWbzAdEgzSlYAunO1ispiqT+lYbhffv1U=
X-Received: by 2002:a05:6122:88c:b0:526:1ddd:7603 with SMTP id 71dfb90a1353d-52dba613255mr986457e0c.0.1747331016062; Thu, 15 May 2025 10:43:36 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxQZcPCHHX2z=iS0gJS=U77XrUe7xOXHnAvt2oTki91DQQ@mail.gmail.com> <CAKcm_gM0ZYOXqZVuHF_19UobYfDw1z-QmDAeSnpRyw2RidvpCw@mail.gmail.com> <4DAC0DBA-DD77-4994-B591-C816F66618E8@ericsson.com> <CAM4esxS8EDVwoNXnopuTWUkCXmPUeK7ZLWL6diVuRkSdibRMjg@mail.gmail.com> <4E2759E2-C29B-4C69-ACC1-8B90546F1AEB@ericsson.com>
In-Reply-To: <4E2759E2-C29B-4C69-ACC1-8B90546F1AEB@ericsson.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 15 May 2025 10:43:24 -0700
X-Gm-Features: AX0GCFu5MtRQelcb9yii6bApeCYogYnmRsuvc0ERL2WMCFhtCZ829ShY10RNaPg
Message-ID: <CAM4esxR=GVPExe43R_J-W9p2HG8mRWCpX2xwMxcSF+nX2y+meA@mail.gmail.com>
Subject: Re: Old packets in draft-ietf-quic-ack-frequency-11
To: Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>
Content-Type: multipart/alternative; boundary="000000000000847f5b0635303455"
Message-ID-Hash: A6Q2UZPA253UGFZAQQ7IN7GNI4KHMVOC
X-Message-ID-Hash: A6Q2UZPA253UGFZAQQ7IN7GNI4KHMVOC
X-MailFrom: martin.h.duke@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-quic.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Ian Swett <ianswett=40google.com@dmarc.ietf.org>, IETF QUIC WG <quic@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/R9_duyCdImw_p42eibQvLkGl5f0>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Owner: <mailto:quic-owner@ietf.org>
List-Post: <mailto:quic@ietf.org>
List-Subscribe: <mailto:quic-join@ietf.org>
List-Unsubscribe: <mailto:quic-leave@ietf.org>
Compared to acking packets occasionally in accordance with ack_eliciting_threshold. On Thu, May 15, 2025 at 10:27 AM Mirja Kuehlewind < mirja.kuehlewind@ericsson.com> wrote: > „accomplishes very little“ compared to what? Not acking is not an option > and as such we simply apply the rule that is already in RFC9000 without > further optimization. In other words we simply didn’t consider > changing/optimizating the “gap filling” logic in the draft. I guess you > could so something like only sending an ACK for the first packet in a gap > and if the gap is filled completely but that sounds all complicated. > > > > > > *From: *Martin Duke <martin.h.duke@gmail.com> > *Date: *Thursday, 15. May 2025 at 18:06 > *To: *Mirja Kuehlewind <mirja.kuehlewind@ericsson.com> > *Cc: *Ian Swett <ianswett=40google.com@dmarc.ietf.org>, IETF QUIC WG < > quic@ietf.org> > *Subject: *Re: Old packets in draft-ietf-quic-ack-frequency-11 > > > > I agree that not sending acks at all would be a problem. > > > > I don't have any data. But my contention is that the current rule > accomplishes very little while making this "not super likely" case > considerably worse. > > > > On Thu, May 15, 2025 at 9:01 AM Mirja Kuehlewind < > mirja.kuehlewind@ericsson.com> wrote: > > Note that issue #306 was also related to this: > https://github.com/quicwg/ack-frequency/issues/306 > > > > As I said there, you could probably further optimize this but it would be > a mistake if you don’t send ACK for packets that arrive late at all (which > wasn’t clearly explicitly covered in the draft before). > > > > However, I think your example below is also not the super likely case. In > your examples it’s basically that packets 10 and 11 arrive earlier, while a > whole range of packets would get delayed. So not sure how important it is > to optimize for that case. I would expect it is more likely to see single > packets re-ordered. Do you happen to have any data on re-ordering patterns? > > > > Mirja > > > > > > > > *From: *Ian Swett <ianswett=40google.com@dmarc.ietf.org> > *Date: *Thursday, 15. May 2025 at 17:34 > *To: *Martin Duke <martin.h.duke@gmail.com> > *Cc: *IETF QUIC WG <quic@ietf.org>, Ian Swett <ianswett= > 40google.com@dmarc.ietf.org> > *Subject: *Re: Old packets in draft-ietf-quic-ack-frequency-11 > > > > These are some excellent observations and please file an issue. I'm not > sure we want to make substantial changes, but we might want to at least > call this out. > > > > If the peer is accurately communicating their packet threshold in the > ACK_FREQUENCY frame, then I believe you're correct that this requirement to > immediately send an ACK is useless, at least for the purposes of packet > threshold loss detection. Time threshold is much more difficult to > reason about, particularly because transmission delays are variable and > timers aren't perfect. Currently the peer's ack delay is included in PTO > timer, but not time threshold loss detection, because this immediate ACK > behavior is assumed. > > > > There are some potential interactions with congestion control, > particularly when first entering recovery when the CWND might have > decreased substantially and/or you're doing packet conservation. You might > be able to declare a number of packets lost, but only send one or two, so > getting an ACK earlier could prevent some spurious retransmissions. Or it > might not because the ACKs you're getting might be exactly the packets > you've already spuriously retransmitted. > > > > Thanks, Ian > > > > On Thu, May 15, 2025 at 10:37 AM Martin Duke <martin.h.duke@gmail.com> > wrote: > > I'm finally turning my attention to updating our ack-frequency > implementation from draft-iyengar-quic-delayed-ack-01 (!!!) to the current > draft. > > > > *TL;DR **The ack-frequency draft defers to RFC 9000 by saying that any > packet < largest_acked is acked immediately regardless of any of the > ACK_FREQUENCY frame fields. Maybe that's suboptimal?* > > I stumbled across issue 304 > <https://github.com/quicwg/ack-frequency/issues/304>, which clarifies > that RFC 9000 rules about ACKing packets < largest_acked still apply: > > When an ack-eliciting packet is received with a packet number less than > Largest Acked, this still triggers an immediate acknowledgement in an > effort to avoid the packet being spuriously declared lost. > > > > To be clear: this totally works, and in no case makes things worse than > the baseline. In the "normal" case when packet gaps are loss, not > reordering, it has no effect at all. > > > > However, I wonder if this rule is far less than optimal in cases with a > lot of reordering, and may add little to no value in more common cases. > Loss and reordering both manifest as a sudden jump in sequence number; if a > reordering case, the gap packets will arrive later. The reordering_thresh > field can suppress the ack of this first jump, but not the followon packets > with lower numbers. > > > > For example, Say that ack_eliciting_threshold is 1 (the default) but > reordering_threshold is zero (meaning, ignore reordering). If the pattern > of packet arrival is 10, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, then there will be > 10 ACKs: one for 11, as the second packet to arrive, and then one for each > of 1:9 because they are all less than largest_acked. In this case, network > reordering has caused the ack rate to be roughly double what the receiver > requested. Without the text in question, one would expect an ack for 11, 2, > 4, 6, and 8. > > > > In the issue, the stipulation is that acking these packets will prevent > spurious retransmits. If true, that would be valuable. However: > > > > - If the sender is using RFC 9002 time-based recovery, the important thing > is that the ack arrives before the timeout. IIUC, this is best ensured via > requested_max_ack_delay rather than through this mechanism. > > > > - If the sender is using packet-based recovery, the additional acks don't > really help. If ack_eliciting_threshold is set correctly, there won't be a > retransmission until another ACK arrives. If the ACK is delayed till > another packet arrives, the sender's state for the early packet won't > change in the meantime. > > > > I find this hard to reason about, and am happy to be told I'm holding it > wrong. There are second-order considerations about lost acks, etc. But if > others think the text is suboptimal, I'm happy to file an issue. > > > > Martin > >
- Re: Old packets in draft-ietf-quic-ack-frequency-… Mirja Kuehlewind
- Re: Old packets in draft-ietf-quic-ack-frequency-… Martin Duke
- Old packets in draft-ietf-quic-ack-frequency-11 Martin Duke
- Re: Old packets in draft-ietf-quic-ack-frequency-… Ian Swett
- Re: Old packets in draft-ietf-quic-ack-frequency-… Mirja Kuehlewind
- Re: Old packets in draft-ietf-quic-ack-frequency-… Martin Duke
- Re: Old packets in draft-ietf-quic-ack-frequency-… Mirja Kuehlewind
- Re: Old packets in draft-ietf-quic-ack-frequency-… Martin Duke
- Re: Old packets in draft-ietf-quic-ack-frequency-… Kazuho Oku
- Re: Old packets in draft-ietf-quic-ack-frequency-… Martin Duke