Re: [quicwg/base-drafts] compensation of ack_delay is fragile against errors (#2060)

ianswett <> Thu, 29 November 2018 19:39 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 78878130E97 for <>; Thu, 29 Nov 2018 11:39:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.46
X-Spam-Status: No, score=-4.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_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id ffrM2R1zYofK for <>; Thu, 29 Nov 2018 11:39:09 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id DC96A130E9F for <>; Thu, 29 Nov 2018 11:39:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; 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=uwc6s9lHjA896Hn+sn3hIWzdZiI=; b=r9YICOLeIaQjxr0m TAhXBMbizPrR9o/yXrNjAH2IHYUAx2tYfSs81kWPhBDsMV/DTdlw2BZ+MwfLPr4l OvD+8X0MzeUeFHL3H/R/t2DZ8WToXZdb3zHyksHAT2v9/9mDXFaOwp4VIMjJQbDN s3Q2nc+ltc67/qLwdFOP5xKtZco=
Received: by with SMTP id filter1720p1mdw1-27355-5C00405A-A 2018-11-29 19:39:06.173276448 +0000 UTC m=+1048650.489796099
Received: from (unknown []) by (SG) with ESMTP id ZoWPGcKnSA-9e0r8TPjyXw for <>; Thu, 29 Nov 2018 19:39:06.113 +0000 (UTC)
Received: from (localhost []) by (Postfix) with ESMTP id 19BCB2415BF for <>; Thu, 29 Nov 2018 11:39:06 -0800 (PST)
Date: Thu, 29 Nov 2018 19:39:06 +0000
From: ianswett <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/2060/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] compensation of ack_delay is fragile against errors (#2060)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c00405a17afc_ede3fd3ae8d45c0312189"; 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-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak1ySKRaY0me7sHIc1Mh5OC1fgwnZcNRcOHNLF aowjvB5wF0NmPSvA1fNvfXFicNJPtqxeQvuGo6+dQkfawy4dzhK2l493zfTMnCJcytezkYR4lqLHa8 N91fT3PwlYtfuiuV2gZl2ewCQ8DTyyNHERv83tfGW/ePTjEGW08DGVQcUA==
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 29 Nov 2018 19:39:10 -0000

FYI, my experience with clocks is they're either noisy, and if so over very short timescales(<1ms) or they jump suddenly.  In the case of a sudden jump, any protection from largely ignoring the jump should be fine.

I like Kazuho's suggestion because it changes a case that's currently discontinuous(1us extra max ack delay and the RTT sample can jump tens of ms) into one that's continuous.   Discontinuities in congestion control and loss recovery tend to lead to weird corner cases.  The current pseudocode is what gQUIC currently does, which is why it's there, but especially now that max ack delay is explicitly communicated, I think Kazuho's suggestion is a good one.

There is the question of what to do if the specified ack_delay is larger than the value specified in transport params.  Possibly we should only adjust by min(ack_delay, max_ack_delay), and then if the alarm is always waking up late, SRTT will include that even though max_ack_delay is not?

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: