Re: [quicwg/base-drafts] Should kPersistentCongestionThreshold be 1 or 2? (#2556)

Jana Iyengar <notifications@github.com> Tue, 26 March 2019 17:09 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 75431120423 for <quic-issues@ietfa.amsl.com>; Tue, 26 Mar 2019 10:09:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3
X-Spam-Level:
X-Spam-Status: No, score=-3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, 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 DBUiEBbegZOr for <quic-issues@ietfa.amsl.com>; Tue, 26 Mar 2019 10:09:54 -0700 (PDT)
Received: from o8.sgmail.github.com (o8.sgmail.github.com [167.89.101.199]) (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 D43F91202FA for <quic-issues@ietf.org>; Tue, 26 Mar 2019 10:09:53 -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=ZI9XDBCph+UAqMgx8pX8qkHZU9w=; b=hbBJd87rQNwazgBI pDTrmh7xq/lVuKSdm0rsCYwDvQtG5qSD4/zgFkzyZ7MJ/JtzXEg8/YShMFpYQT4g vAjE8kqyBZ8czYezGLqrgmchSK1QMZIPTSZsyCUPC+xCshXUI0tVtZnIJUWvC1Pn R4bK1XhbnYPNED5x3GCMduKgz+4=
Received: by filter1709p1mdw1.sendgrid.net with SMTP id filter1709p1mdw1-3542-5C9A5CE0-17 2019-03-26 17:09:52.37740219 +0000 UTC m=+693720.329332388
Received: from github-lowworker-63e61ec.cp1-iad.github.net (unknown [192.30.252.36]) by ismtpd0010p1iad1.sendgrid.net (SG) with ESMTP id vDkBMVI5QRKRx4VcR8v7WQ for <quic-issues@ietf.org>; Tue, 26 Mar 2019 17:09:52.356 +0000 (UTC)
Received: from github.com (localhost [127.0.0.1]) by github-lowworker-63e61ec.cp1-iad.github.net (Postfix) with ESMTP id 58BC62A086E for <quic-issues@ietf.org>; Tue, 26 Mar 2019 10:09:52 -0700 (PDT)
Date: Tue, 26 Mar 2019 17:09:52 +0000
From: Jana Iyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab627cf063bcc02f5eafc8d3fd28b8bdfee012ea8392cf0000000118b21ee092a169ce195b9436@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2556/476751807@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2556@github.com>
References: <quicwg/base-drafts/issues/2556@github.com>
Subject: Re: [quicwg/base-drafts] Should kPersistentCongestionThreshold be 1 or 2? (#2556)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c9a5ce056bef_24573f8b4b2d45b811030"; 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
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak0CSpJoL9nxe9yscoBX+EvzSo4yXlcY5A6hjt aN+fVW1uPBDL5qk/EnTsQ+oN5iaHb/4x+yyl+46kPGxh6DrOjI+1o8oQ+zcSlIdC3fpA3hsBUY77MV Ruxrwx4RlZ22eOmS8eHXiGQUjQ/aKZ20H95rOFHSKLLx04XT9Hppx7yrL/xOrDofvlREqpu26Ahgmp U=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/UYdaMpOmJUw_2aP4BMV-tZk6hhA>
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: Tue, 26 Mar 2019 17:09:57 -0000

*facepalm* @ianswett, of course. (Also, FWIW, PR #2557 makes this a simple multiplier, so let's just use that language.)

So I think I may have the opposite concern to @pravb. The mechanisms we are talking about are subtly different, so let's just talk about behavior instead of the mechanisms.

TCP RTO uses a minRTO while PTO does not. As a result, in the common case, persistent congestion for TCP will be declared at minRTO (or later). We risk declaring persistent congestion too soon with QUIC, even with 3 PTOs, since minRTO is at least 200ms for TCP, AFAIK. QUIC might be too aggressive in declaring persistent congestion.

This might be actually bad for performance. Anecdotally, I remember that Yuchung had tried turning on [RTO Restart](https://datatracker.ietf.org/meeting/85/materials/slides-85-tcpm-2) and found that it increased spurious RTOs.  While spurious PTOs are not bad in QUIC, we don't yet have a way to detect spuriously declared persistent congestion.

This makes me wonder if we should use a min value for declaring persistent congestion. I think this is justifiable as based on best current practice that we know in TCP and that declaring congestion too soon might hurt throughput. (Note that a min is still unnecessary for QUIC PTO because spurious PTOs have only minor bandwidth cost.)

As a strawman, I'll propose that we set the persistent congestion time period to max(PTO, 200ms).

Why PTO and not 3 * PTO? Because I believe (and someone can prove me wrong) that TCP actually does use a single RTO period for declaring an RTO, despite potentially sending TLPs in that time period.
>From the RACK draft, my understanding is that sending TLPs in TCP does not actually change the RTO timer, which runs for the same amount of time (from the last ack received in practice or the earliest outstanding data).

-- 
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/issues/2556#issuecomment-476751807