Re: [quicwg/base-drafts] Simplify TLP and RTO into Probe Timeout (#2114)

janaiyengar <notifications@github.com> Fri, 14 December 2018 03:32 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 48CA6131000 for <quic-issues@ietfa.amsl.com>; Thu, 13 Dec 2018 19:32:32 -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 5gMFmQ2h6Xo2 for <quic-issues@ietfa.amsl.com>; Thu, 13 Dec 2018 19:32:30 -0800 (PST)
Received: from out-1.smtp.github.com (out-1.smtp.github.com [192.30.252.192]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6BD49130FF8 for <quic-issues@ietf.org>; Thu, 13 Dec 2018 19:32:30 -0800 (PST)
Date: Thu, 13 Dec 2018 19:32:29 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1544758349; bh=PNVU5WOB3HgAuxGaN1yDtJnATlLEQ0lH19FDFmcPCNc=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=vYRzrnxjpMiMwPmv4DgsF3jJ5iRIL1KsJVS8Tc8oanwgUpV7wV2hMbHlSQlx4E+be nzKt6zQkRQZ810S3WKFvWvRq2qMGIUwRaYF/wbJozjZ2MogAA55YCarznVost4uPZE 7UQ7StQSNaexW3M1/hKMhEuKVhmojYfW9qhS2beM=
From: janaiyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abc7dcbf64163ee743deb2869f4552c602f87a382292cf00000001182ae64d92a169ce173c5dcf@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2114/review/184957703@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2114@github.com>
References: <quicwg/base-drafts/pull/2114@github.com>
Subject: Re: [quicwg/base-drafts] Simplify TLP and RTO into Probe Timeout (#2114)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c13244d49651_47b13faebced45b81525f"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: janaiyengar
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/qP7DVDVp_cDRTvppGKUXOJ4SOMo>
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: Fri, 14 Dec 2018 03:32:32 -0000

janaiyengar commented on this pull request.

Thanks for you comments! Responses inline.

>  
-A packet sent at the tail is particularly vulnerable to slow loss detection,
-since acks of subsequent packets are needed to trigger ack-based detection. To
-ameliorate this weakness of tail packets, the sender schedules a timer when the
-last ack-eliciting packet before quiescence is transmitted. Upon timeout,
-a Tail Loss Probe (TLP) packet is sent to evoke an acknowledgement from the
-receiver.
+A Probe Timeout (PTO) triggers a probe packet when ack-eliciting data is in
+flight but an acknowledgement is not received within the expected period of
+time.  A PTO enables a connection to recover from loss of tail packets or acks.
+The PTO algorithm used in QUIC implements the reliability functions of Tail Loss
+Probe {{?TLP=I-D.dukkipati-tcpm-tcp-loss-probe}}, RTO {{?RFC5681}} and F-RTO

I think the function we're talking about is TLP, though I'm happy to add and cite RACK separately somewhere. I'll do that separately.

>  
-kMinRTOTimeout:
-:  Minimum time in the future an RTO timer may be set for. The RECOMMENDED
-   value is 200ms.
+: Timer granularity. This is a system-dependent value.  However, implementations
+  SHOULD use a value no smaller than 1ms.
 
 kDelayedAckTimeout:
 : The length of the peer's delayed ack timer. The RECOMMENDED value is 25ms.
 
 kInitialRtt:

Would you mind opening a separate issue for this? I'd argue for 100ms, but I don't want to do it in this PR. FWIW, I think the cost of an early timeout is not high, so having this be aggressive seems fine to me.

>  
-When retransmissions are sent due to a retransmission timeout timer, no change
-is made to the congestion window until the next acknowledgement arrives.  The
-retransmission timeout is considered spurious when this acknowledgement
-acknowledges packets sent prior to the first retransmission timeout.  The
-retransmission timeout is considered valid when this acknowledgement
-acknowledges no packets sent prior to the first retransmission timeout.  In this
-case, the congestion window MUST be reduced to the minimum congestion window and
-slow start is re-entered.
+If two consecutive PTOs have occurred (pto_count is at least 3), the network is

This is based on the number of timeouts that happened, not based on packets sent.  We want cwnd collapse at the equivalent of the first RTO's occurrence. This is the third timeout (2 TLP timeouts and then 1 RTO), which means pto_count is at least 3. Or am I doing this math wrong?

-- 
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/2114#pullrequestreview-184957703