Re: [quicwg/base-drafts] Add note about stale ACK frames breaking ECN (#2879)

Magnus Westerlund <notifications@github.com> Tue, 23 July 2019 15:53 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 25DD5120193 for <quic-issues@ietfa.amsl.com>; Tue, 23 Jul 2019 08:53:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Level:
X-Spam-Status: No, score=-8 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, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, 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 rVV1YcTl3JG5 for <quic-issues@ietfa.amsl.com>; Tue, 23 Jul 2019 08:53:54 -0700 (PDT)
Received: from out-23.smtp.github.com (out-23.smtp.github.com [192.30.252.206]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 429B01203C9 for <quic-issues@ietf.org>; Tue, 23 Jul 2019 08:53:54 -0700 (PDT)
Date: Tue, 23 Jul 2019 08:53:53 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1563897233; bh=QK3BmXSOsrUuBFti/Q3Hrk/U8PC4dxXdgNsHQ7CSEtI=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=0RkSUCWULwIpgvctjVOEtMV15N5Yzx5MiU51xHgybJzjyohdGH/KY0SzU9Rs4RHg+ UUQ2cT19jNEQl3o0FPgd9QlHgvxxPXqP9xRdWtlwMlzsYcNQu5a2R0cadlxtyANvUi jHKsTKgQixqtQDe3EhU3EE1ZLet66AiKBkAbORDU=
From: Magnus Westerlund <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK3X6FIARL4Y2HZBI7N3IRQBDEVBNHHBXP7DOI@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2879/review/265510103@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2879@github.com>
References: <quicwg/base-drafts/pull/2879@github.com>
Subject: Re: [quicwg/base-drafts] Add note about stale ACK frames breaking ECN (#2879)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d372d9153783_19843f8e932cd95c212745"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: gloinul
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/q1bwfYVZPk3U-8WJLien1LM5mXQ>
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: Tue, 23 Jul 2019 15:53:57 -0000

gloinul commented on this pull request.



> @@ -3154,11 +3154,13 @@ to be greater than the number of packets acknowledged in an ACK frame.  When
 this happens, and if verification succeeds, the local reference counts MUST be
 increased to match the counts in the ACK frame.
 
-Processing counts out of order can result in verification failure.  An endpoint
-SHOULD NOT perform this verification if the ACK frame is received in a packet
-with packet number lower than a previously received ACK frame.  Verifying based
-on ACK frames that arrive out of order can result in disabling ECN
-unnecessarily.
+Processing counts out of order can result in verification failure.  This can
+happen when packets containing ACK frames are reordered in the network, or if a
+sender retransmits an ACK frame with stale information.  An endpoint SHOULD NOT
+perform this verification if the ACK frame is received in a packet with packet
+number lower than a previously received ACK frame or if the ACK frame does not
+acknowledge any new packets. ACK frames that arrive out of order can result in


> Rationale: Say I ACK 1-4 then later drop that range (for any reason) and ACK 5-9 in another packet. If those packets get reordered, then when the first eventually arrives, it will have new acknowledgments, but it will still have bad ECN counts. So you can't say that new acknowledgments is necessary.

But, in this situation when the ECN counters increase more than expected, the sender getting the ACK will detect that ECN counter increase more and re-synchronize its state. Per this text: 

   An endpoint could miss acknowledgements for a packet when ACK frames
   are lost.  It is therefore possible for the total increase in ECT(0),
   ECT(1), and CE counts to be greater than the number of packets
   acknowledged in an ACK frame.  When this happens, and if verification
   succeeds, the local reference counts MUST be increased to match the
   counts in the ACK frame.

Thus, if ACK 1-4 arrive then it will not increase the largest acknowledged, it may however ACK new packets if there are no overlapp. But, according to the rules here it will not result in a validation. 
> 
> The packet number is clearly the thing to use - and sufficient on its own - but would it be enough to look for increases in largest acknowledged? ACK processors should not be expected to have access to packet numbers. Allowing implementations to use largest acknowledged would depend on us not allowing that to regress, but that seems like it follows from existing advice.

I think this also will ensure that @janaiyengar  rule about not increasing ECN counter is also not needed, or do I fail to understand the concern? 


-- 
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/pull/2879#discussion_r306398981