Re: [quicwg/base-drafts] Allow alternate restarts after idle (#2187)

ianswett <notifications@github.com> Mon, 17 December 2018 16:28 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 B17A1124C04 for <quic-issues@ietfa.amsl.com>; Mon, 17 Dec 2018 08:28:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.46
X-Spam-Level:
X-Spam-Status: No, score=-9.46 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.46, 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: 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 Lt58wINA4piW for <quic-issues@ietfa.amsl.com>; Mon, 17 Dec 2018 08:28:44 -0800 (PST)
Received: from out-2.smtp.github.com (out-2.smtp.github.com [192.30.252.193]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 75A7D124BF6 for <quic-issues@ietf.org>; Mon, 17 Dec 2018 08:28:44 -0800 (PST)
Date: Mon, 17 Dec 2018 08:28:43 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1545064123; bh=Vl71312DoAmsTIaieKorE9WsteEJ32zozz1MDYrImAI=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=d0MYQ39F1wNw02P247L1Oe/h6D8syjCtcaXoqxbThLUTYKs0f10erho9b1ISPpv4+ NUtRK5vDH+xrMTEFEgpWvbgpI7Mg0CUbb3Lu5eLnH98DXHRmMad3/jIDitE2LBut3/ 6GtRvOOC+YCIQ46pdVs6LRkMeZrjUjsclvIhAVdI=
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab4c6b8da3100e509f2938a0040e48946cb936e0d792cf00000001182f90bb92a169ce1752fa68@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2187/review/185676204@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2187@github.com>
References: <quicwg/base-drafts/pull/2187@github.com>
Subject: Re: [quicwg/base-drafts] Allow alternate restarts after idle (#2187)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c17cebb5a7d2_4b963fdafb2d45b83703d1"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
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/3Ikt-9DwOTAazaUIPFPl_ZPyJp8>
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: Mon, 17 Dec 2018 16:28:47 -0000

ianswett commented on this pull request.

I'm a bit worried we're subtly missing an important case we want to catch.

> -the size of bursts sent into the network, the behavior when restarting from
-idle depends upon whether pacing is used.
-
-If the sender uses pacing, the connection should limit the initial burst of
-packets to no more than the initial congestion window and subsequent packets
-SHOULD be paced. The congestion window does not change while the connection
-is idle.
-
-A sender that does not use pacing SHOULD reset its congestion window to the
-minimum of the current congestion window and the initial congestion window.
-This recommendation is based on Section 4.1 of {{?RFC5681}}.
+## Sending data after an idle period
+
+A sender is considered idle if it has no bytes in flight and no pending
+ack-eliciting data to send.  A sender can become idle when it is application
+limited or when it encounters a retransmission timeout.

Probe timeout?  Also, we want the case after a PTO to be considered idle, correct?  But one may have data to send, so this text doesn't catch that.

> -minimum of the current congestion window and the initial congestion window.
-This recommendation is based on Section 4.1 of {{?RFC5681}}.
+## Sending data after an idle period
+
+A sender is considered idle if it has no bytes in flight and no pending
+ack-eliciting data to send.  A sender can become idle when it is application
+limited or when it encounters a retransmission timeout.
+
+A sender's congestion window MUST not increase while it is idle.
+
+When a sender starts sending data after an idle period, it's sending rate SHOULD
+be decided as follows.
+
+  - If the sender uses pacing, it does not need to reduce its congestion
+    window. It SHOULD however pace the congestion window and MAY allow an
+    initial burst no larger than the initial congestion window.

How about "It MAY allow an initial burst as large as the initial congestion window and MUST pace out the rest of the congestion window."

> +A sender is considered idle if it has no bytes in flight and no pending
+ack-eliciting data to send.  A sender can become idle when it is application
+limited or when it encounters a retransmission timeout.
+
+A sender's congestion window MUST not increase while it is idle.
+
+When a sender starts sending data after an idle period, it's sending rate SHOULD
+be decided as follows.
+
+  - If the sender uses pacing, it does not need to reduce its congestion
+    window. It SHOULD however pace the congestion window and MAY allow an
+    initial burst no larger than the initial congestion window.
+
+  - If the sender does not use pacing, it SHOULD reset its congestion window to
+    the smaller of the current congestion window and the initial congestion
+    window, as recommended for TCP (see Section 4.1 of {{?RFC5681}}).

Pacing is the answer.

-- 
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/2187#pullrequestreview-185676204