Re: [quicwg/base-drafts] Persistent congestion pseudocode to match text (#4010)

mjoras <> Mon, 24 August 2020 17:15 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 32D123A1198 for <>; Mon, 24 Aug 2020 10:15:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.475
X-Spam-Status: No, score=-0.475 tagged_above=-999 required=5 tests=[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_28=0.726, 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 7aUT4VcvLAc4 for <>; Mon, 24 Aug 2020 10:15:51 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id EA3D43A0B5E for <>; Mon, 24 Aug 2020 10:15:50 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 35B02840E2A for <>; Mon, 24 Aug 2020 10:15:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1598289350; bh=6oMXzC67umEHUtLKChWgFbgk6wSyHHlU5wOIVFS9Yo0=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=TDYy2VNhkbOvGvzDdfxDgEVblOs143E8MxfV5vRClUB7J2mLrOgd8eFhBYXimAzuJ +rlTQlrtBeXoecDGz98FX2H1sueOmJeKdm0TWKarj3OyS/50FTbsELDTab9AERRWmK LFZP3kKEpS5rPnteJ72q0GevSBAkdgFuKJV1pT+A=
Date: Mon, 24 Aug 2020 10:15:50 -0700
From: mjoras <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/4010/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Persistent congestion pseudocode to match text (#4010)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5f43f5c6237d0_7f1019649536f"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: mjoras
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: Mon, 24 Aug 2020 17:15:52 -0000

> Regarding the global sequence space, I figure that you can do this without a global sequence number in other ways. For instance, you could track the sending time of all outstanding packets or you could enter all outstanding packets into a linked list, either of which allows you to establish a total ordering. (In the absence of a single sequence number space, I decided not to do a total global ordering on the basis that detecting persistent congestion during the handshake was not so important.)

Mvfst has always stored outstanding packets in a single sequence container. It makes the ACK handling code a little bit more complicated since we have multiple PN spaces in a single sequence, but it makes things like this nominally easier to implement. That being said there's still considerable complexity (and as @martinthomson says, likely CPU cost). I'm very curious how many people are going to bother implementing this rather than just throwing up our hands and not declaring persistent congestion across PN spaces.

Probably having the pseudocode is the right thing to do though, and as always implementations will do what they think is actually necessary.

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