Re: [quicwg/base-drafts] Restrict ACK-clocking to ACK-only frames. (#1231)

Marten Seemann <notifications@github.com> Mon, 19 March 2018 10:01 UTC

Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.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 820A8126DEE for <quic-issues@ietfa.amsl.com>; Mon, 19 Mar 2018 03:01:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.009
X-Spam-Level:
X-Spam-Status: No, score=-2.009 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, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=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 nBdtzqkMKCg0 for <quic-issues@ietfa.amsl.com>; Mon, 19 Mar 2018 03:01:27 -0700 (PDT)
Received: from o6.sgmail.github.com (o6.sgmail.github.com [192.254.113.101]) (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 6C656126CBF for <quic-issues@ietf.org>; Mon, 19 Mar 2018 03:01:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; 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=+ztzxbfceNJTUMCLkSBQb1N0Iok=; b=kRN+mR8tFymKHhb+ 16UUKGs4omp+2CTMLnnqqccKYRmdc9ox2bSvIUDpYPfEXXklX1Naaqik9y2R++Na MOiwQJ8/FqJ73qSRp5xhj3lIU7GeyenMmfWL2/eYj8hPlL2Zscq8Z5qug5U4JtLY +k0oLX3sexSwK+YjZrPs2kHuawM=
Received: by filter0029p1las1.sendgrid.net with SMTP id filter0029p1las1-6048-5AAF8A76-20 2018-03-19 10:01:26.854553196 +0000 UTC
Received: from smtp.github.com (out-2.smtp.github.com [192.30.252.193]) by ismtpd0022p1iad2.sendgrid.net (SG) with ESMTP id DkBVa_i1Sn-xc9Kzbp62Jg for <quic-issues@ietf.org>; Mon, 19 Mar 2018 10:01:26.762 +0000 (UTC)
Date: Mon, 19 Mar 2018 10:01:27 +0000
From: Marten Seemann <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abae5f17b6aeaf0b8b01fd636beb38069386553eea92cf0000000116c74c7692a169ce12418d6a@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1231/review/104894712@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1231@github.com>
References: <quicwg/base-drafts/pull/1231@github.com>
Subject: Re: [quicwg/base-drafts] Restrict ACK-clocking to ACK-only frames. (#1231)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5aaf8a76a9f59_3bcc2aedd3b1aecc2230e9"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: marten-seemann
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak0snef/ye3qc3x7nbF79ur/G/5ccmENAsPb9w dONeqMvey2kSQV1HAEGz8DR22vc0C2Jj4/dz1qf1Wk7zWj3f72qxja1GYVYw8yft5KZBMpmAa1XVDd 6M42saatStpTjiOS5Uk9cNa0ZImILL/U4K+WLAJ4Bx/bUNNSfty7VfNrzr+VYBOJgv57trHtHquzzo w=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/caykh9PzdnEbvd6farR3LhG6X5o>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 19 Mar 2018 10:01:29 -0000

marten-seemann commented on this pull request.

I'm not sure I really I understand the problem you're trying to solve.
If you really want to send duplicate ACK frames (without receiving any new packets, and without any timer expiring), the change of the first sentence in your PR would be sufficient.

>  
 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
 an ACK frame has been acknowledged, the packets it acknowledges SHOULD NOT be
 acknowledged again.
 
-A receiver that is only sending ACK frames will not receive acknowledgments for
-its packets.  Sending an occasional MAX_DATA or MAX_STREAM_DATA frame as data is
-received will ensure that acknowledgements are generated by a peer.  Otherwise,
-an endpoint MAY send a PING frame once per RTT to solicit an acknowledgment.
+Because ACK-only packets are not acknowledged, a receiver that is only
+sending ACK frames will only receive acknowledgements for its packets
+if the sender piggybacks them on other packets. In order to enable

Why does it play a role how the sender bundles frames into packets?

>  
 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
 an ACK frame has been acknowledged, the packets it acknowledges SHOULD NOT be
 acknowledged again.
 
-A receiver that is only sending ACK frames will not receive acknowledgments for
-its packets.  Sending an occasional MAX_DATA or MAX_STREAM_DATA frame as data is
-received will ensure that acknowledgements are generated by a peer.  Otherwise,
-an endpoint MAY send a PING frame once per RTT to solicit an acknowledgment.
+Because ACK-only packets are not acknowledged, a receiver that is only
+sending ACK frames will only receive acknowledgements for its packets
+if the sender piggybacks them on other packets. In order to enable
+this, senders SHOULD prioritize sending ACKs along with their data.

I don't think you should prioritize ACKs, if the ACKs don't ack any new retransmittable packets.

>  
 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
 an ACK frame has been acknowledged, the packets it acknowledges SHOULD NOT be
 acknowledged again.
 
-A receiver that is only sending ACK frames will not receive acknowledgments for
-its packets.  Sending an occasional MAX_DATA or MAX_STREAM_DATA frame as data is
-received will ensure that acknowledgements are generated by a peer.  Otherwise,
-an endpoint MAY send a PING frame once per RTT to solicit an acknowledgment.
+Because ACK-only packets are not acknowledged, a receiver that is only
+sending ACK frames will only receive acknowledgements for its packets
+if the sender piggybacks them on other packets. In order to enable
+this, senders SHOULD prioritize sending ACKs along with their data.
+In addition, if a receiver regularly issues additional flow control
+credit rather than just issuing infinite flow control credit at the

Issuing infinite flow control credit is a really bad idea. I don't think we should mention this as an option here.

-- 
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/1231#pullrequestreview-104894712