[quicwg/base-drafts] Persistent congestion threshold is unreliable during the early stages of a connection (#3875)

Kazuho Oku <notifications@github.com> Wed, 08 July 2020 10:45 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 702703A07A7 for <quic-issues@ietfa.amsl.com>; Wed, 8 Jul 2020 03:45:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.483
X-Spam-Level:
X-Spam-Status: No, score=-1.483 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, DKIM_VALID_EF=-0.1, HTML_IMAGE_ONLY_24=1.618, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, 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 YBzCFvbfaGXL for <quic-issues@ietfa.amsl.com>; Wed, 8 Jul 2020 03:45:50 -0700 (PDT)
Received: from out-21.smtp.github.com (out-21.smtp.github.com [192.30.252.204]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CA53E3A07A0 for <quic-issues@ietf.org>; Wed, 8 Jul 2020 03:45:49 -0700 (PDT)
Received: from github-lowworker-fb56993.ac4-iad.github.net (github-lowworker-fb56993.ac4-iad.github.net [10.52.19.31]) by smtp.github.com (Postfix) with ESMTP id 11CB5A1F86 for <quic-issues@ietf.org>; Wed, 8 Jul 2020 03:45:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1594205149; bh=I0sbMeximqZNYpgTHncoRFzO0WOWmpj1/Y1esDiKv6g=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=ELwxuKgqlwEDYet6ZZcZrxXU6LTXmwjPMkfKiuZDOgTtiV4xjM/mwPNXBXDvDA51M oLB/oDsuTAdmxm0KpX0NPOtq7tzbiq/uWX7gCPvpNI01fBMuU7MPRMI2+DIEOW2205 br5r92iH3qEDCwTYP9+Fr5qPZbJzjmJES6xzHTOI=
Date: Wed, 08 Jul 2020 03:45:49 -0700
From: Kazuho Oku <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK554DC3DLJ473UVDMF5CGCN3EVBNHHCN3XFKQ@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3875@github.com>
Subject: [quicwg/base-drafts] Persistent congestion threshold is unreliable during the early stages of a connection (#3875)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5f05a3dd313f_50833fe6e58cd9602226a5"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
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/H81CSztxquFL13g1C3cXkW9wHvg>
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: Wed, 08 Jul 2020 10:45:52 -0000

Consider the following case:
* endpoint sends Initial
* after 1 second, endpoint sends Initial (PTO)
* after 1ms, the endpoint receives an ACK for Initial (PTO)

At this point, the endpoint would declare persistent congestion because the duration of congestion (1 seconds) is greater than the threshold (i.e. `(smoothed_rtt + 4 * rttvar + max_ack_delay) * kPersistentCongestionThreshold` where smoothed_rtt is 1ms, rttvar is 1ms, and max_ack_delay is zero).

The problem is that determining persistent congestion based on SRTT is not a good idea until the RTT estimate becomes stable.

I think the easiest fix (which is beneficial at this late stage) would be to disable persistent congestion until the handshake concludes.

Spawning off from #3831 as a dedicated issue.

-- 
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/3875