Re: [quicwg/base-drafts] Why min CWND of 2 instead of 1 (#3586)

Jana Iyengar <> Tue, 05 May 2020 22:46 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C51723A0C0C for <>; Tue, 5 May 2020 15:46:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.101
X-Spam-Status: No, score=-3.101 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_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 kDqPVvkXeGFe for <>; Tue, 5 May 2020 15:46:16 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 523B43A0C0A for <>; Tue, 5 May 2020 15:46:16 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 36315A045A for <>; Tue, 5 May 2020 15:46:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1588718775; bh=FHqDgd1TwnanWQdejpkk1CDwQ4iQeokaOIqyfAlAee0=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=LfQT458gpswPGY1EKSc1CMDGtr6EcbsE6EC4yQz6GxX7n6X+I+O1nAZt2QYu+LEEc /caxhT866EPGK+0CE9MKhtvEs1xi/p5Nvzr3cx/1deC4YXLOwaUqyn1jEG9kydhFdo uVCj4vfZagi7Q4XkfFtYxIsnvpmQHXNcwcayskkM=
Date: Tue, 05 May 2020 15:46:15 -0700
From: Jana Iyengar <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3586/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Why min CWND of 2 instead of 1 (#3586)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5eb1ecb7269ce_586b3fdbe92cd968154750"; 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: Tue, 05 May 2020 22:46:19 -0000

@janaiyengar commented on this pull request.

> @@ -245,6 +245,15 @@ QUIC specifies a time-based definition to ensure one or more packets are sent
 prior to a dramatic decrease in congestion window; see
+### The Minimum Congestion Window is 2 Packets

### The Minimum Congestion Window is Two Packets

> +QUIC recommends that the minimum congestion window be 2 packets instead
+of the 1 packet minimum in TCP. A 2 packet minimum congestion window avoids
+waiting for a probe timeout (see {{pto}}) every time a single packet is lost.
+A minimum of 2 packets also avoids waiting for a delayed acknowledgement, which
+can substantially decrease throughput, particularly if the max_ack_delay is
+larger than the round trip time.

TCP uses a minimum congestion window of one packet, but this can be fragile
in practice. Loss of a single packet sent with that window limits the sender to
waiting for a PTO ({{pto}}) to recover from that loss, which can be a
substantial period of time depending on the amount of backoff. Sending a
single data packet also increases the chances of incurring additional latency
when a receiver delays its acknowledgement. QUIC therefore recommends that
the minimum congestion window be two packets. While this increases network
load, it is considered safe, since the sender will still reduce its sending rate
exponentially under persistent congestion ({{pto}}).

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