Re: [quicwg/base-drafts] Clarify when to send acks (#907)

Martin Thomson <> Wed, 08 November 2017 20:16 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3E2B6129BC4 for <>; Wed, 8 Nov 2017 12:16:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.02
X-Spam-Status: No, score=-2.02 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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 S5REqzZRBGTb for <>; Wed, 8 Nov 2017 12:16:38 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 953AB129BBF for <>; Wed, 8 Nov 2017 12:16:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=l9PRp4ffbL6gTZc/TJgtyQmqwR4=; b=A9iXudutu8NZn0PF eyzd3DRfluiSO+huMTK3hHFN6fhqIk5IzLZUSMNdh20RSLahoZZ8kXMo1T/cPSSE c6O7CPURLoANsV/vE3yTAjhoXimx44dHq+DjO0Mm+dpaiSmFJ4mwmAnVUG7iSDAi OzLY9a3i2Z/QArGZTqsLTAe7aks=
Received: by with SMTP id filter0183p1iad2-10463-5A036625-9 2017-11-08 20:16:37.068051875 +0000 UTC
Received: from ( []) by (SG) with ESMTP id 7pV8yFM1T0u9AXzzucfjzg for <>; Wed, 08 Nov 2017 20:16:37.053 +0000 (UTC)
Date: Wed, 08 Nov 2017 20:16:37 +0000
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/907/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Clarify when to send acks (#907)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5a036624dc5e2_39ab3fbfa9aecf384343fb"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak1et+skxcsCuw3Hh5eVz21z3HYiA+nTLDjkZX ZzoMSGCeAyJXeddehKXMckT53z6HZiuKcaC3n8djbqwD2Sfiqk1Du6w6OSoKOC3/0XmsKS+E0qFOOo CF3IzcaRfv42fYX0RdfmjurBqz7SqT2ymsZ6RyebEf6Q81ZbCVL4AN7fN/YwE/ZFyzJ1bLo3wdc9j3 E=
Archived-At: <>
X-Mailman-Version: 2.1.22
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: Wed, 08 Nov 2017 20:16:40 -0000

martinthomson commented on this pull request.

> @@ -2427,6 +2407,32 @@ ACK Block (repeated):
   packets preceding the largest packet number, as determined by the
   preceding Gap.
+### Sending ACK Frames
+Implementations MUST NOT generate packets that only contain ACK frames in
+response to packets which only contain ACK frames. However, they SHOULD
+acknowledge packets containing only ACK frames when sending ACK frames in
+response to other packets.  Implementations MUST NOT send more than one ACK
+frame per received packet that contains frames other than ACK frames.  Packets
+containing non ACK frames MUST be acknowledged immediately or when a delayed
+ack timer expires.
+To limit ACK blocks to those that have not yet been received by the sender, the
+receiver SHOULD track which ACK frames have been acknowledged by its peer.  Once

This isn't an example of limiting state, it's limiting bytes transmitted.  I think that your formulation here (MAY avoid sending an acknowledgment if an ACK frame containing the same acknowledgment is already in flight) is a good way to deal with this.

The limiting of state does end up having the same net effect (fewer ACK ranges), but it's because the receiver is discarding information.  This would require more effort.

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