Re: [quicwg/base-drafts] Another pacing algorithm (#3655)

Jana Iyengar <> Thu, 14 May 2020 02:51 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 12DFD3A0934 for <>; Wed, 13 May 2020 19:51:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.273
X-Spam-Status: No, score=-3.273 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.173, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id B5EObKpaB6Gm for <>; Wed, 13 May 2020 19:51:30 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 4A18D3A0933 for <>; Wed, 13 May 2020 19:51:30 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 90CFB5211DC for <>; Wed, 13 May 2020 19:51:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1589424689; bh=E7Ec9iLBDKuLhLfrvgcXOhwfi2ySE+dIlpTC+5JThqo=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=xmUq5NU9zHRCd4K8Ju/nZXUPrCIs5TghJjonvkaRohjTjbUSlWnz4AT6l5MjF7xfl SCrNw70W/kMtWtcSGToMdpny/yjs6wBJ9s/rckOjwc5TLoezFPTHd2apaBYPBQDsx7 I51aFcDfEwVh2IivP+nV3niiLBcJxgGLbwKljXAc=
Date: Wed, 13 May 2020 19:51:29 -0700
From: Jana Iyengar <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3655/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Another pacing algorithm (#3655)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5ebcb23180dfb_bfd3ff67a8cd95c29884"; 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
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, 14 May 2020 02:51:32 -0000

@janaiyengar commented on this pull request.

This is again too prescriptive to me. I've made a big suggestion to #3630 instead.

> +A `pacing_gain` multiplier greater than 1 allows senders to increase the rate
+of sending. The value of `pacing_gain` might be larger in slow start than
+congestion avoidance to ensure the sender is able to double its congestion
+window every round trip.

To clarify what I said: pacing rate is cwnd/rtt (approximately, for window-based senders). In this world, on each ack, the cwnd increases, and your pacing rate therefore increases. At the end of the first RTT in slow start, your window is 2x the IW, and your pacing rate is 2 x IW / rtt. That is as it should be. Now, to compensate for border conditions, it's a good idea to use a multiplier, and that does not need to be any more than a small delta (say 1.25), and it doesn't need to be higher for slow start.

At any rate, this is way more than you need to be saying in this definition.

> +Timers are not ideal, so intervals will need to be adjusted to ensure the
+average pacing rate is maintained.  Not doing so will result in a decrease
+in average sending rate when timers consistently fire late.

I think what you want to say is that timers usually run with some granularity. I _think_ what you're trying to say is that timers might fire late and that future computations will need to account for that. 

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