Re: [quicwg/base-drafts] Send an immediate ACK (#2025)

martinduke <> Tue, 15 January 2019 18:18 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 47192130EEC for <>; Tue, 15 Jan 2019 10:18:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -12.553
X-Spam-Status: No, score=-12.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, 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_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id puPY1ma_yaJZ for <>; Tue, 15 Jan 2019 10:18:02 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 581B8130EE6 for <>; Tue, 15 Jan 2019 10:18:02 -0800 (PST)
Date: Tue, 15 Jan 2019 10:18:01 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1547576281; bh=6I8lfk9E7/6SOG7rySkT+egZhPuCnNbmEfFM2leZTpg=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=DGyxwqNnFiUh1fevjt9FfJ8lhcfP1peF0Dvt3E0zfdR0TdqQezfWuHOUB6z6DRc9T MYlNYQemWhQtxqXqgJyFyuclQMBDeoRIhLgUW8Of0uepYWSHcWgIe4+GyVAiPv5ZS3 DGMsHVfG3VoM5vWRVHHX3gZ3j+Zni8XvFwdgx/Z4=
From: martinduke <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2025/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Send an immediate ACK (#2025)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c3e23d967082_53183f9d2a0d45c416301b"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinduke
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 15 Jan 2019 18:18:06 -0000

martinduke commented on this pull request.

I am not sure where this stack of SHOULDs leaves us.

There is one MUST, which is that we MUST ack within max_ack_delay.

Beyond that, receivers:
SHOULD NOT ack every packet
SHOULD ack every other packet.
SHOULD immediately ack if OOO
MAY immediately ack subsequent packets, but
SHOULD NOT do it for a whole RTT.

The MAY seems a little redundant; it is clearly authorized by the lack of any MUSTs. I think you are trying to say "receivers SHOULD immediately ack an OOO packet and the next few packets after that to improve the chance of delivery". Maybe just say that?

 Out-of-order packets SHOULD be acknowledged more quickly, in order to accelerate
 loss recovery.  The receiver SHOULD send an immediate ACK when it receives a new
-packet which is not one greater than the largest received packet number.
+packet which is not the next expected one. That is, its packet number is not one
+greater than the largest received packet number.  A receiver MAY immediately
+ack subsequent packets after first receiving a packet out of order. A receiver
+SHOULD NOT send an immediate ACK any time there is a gap in the ACK frame,

the ACK frame it is sending, or the ACK it is receiving? I think you mean the ACK frame it's sending, but it took me a couple of readings to get it.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: