Re: [quicwg/base-drafts] Required state for retaining unacked RETIRE_CONNECTION_ID frames is unbound (#3509)

ianswett <> Mon, 30 March 2020 15:40 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 051C03A17A9 for <>; Mon, 30 Mar 2020 08:40:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.474
X-Spam-Status: No, score=-0.474 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, 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 S6N-rCL_c4jG for <>; Mon, 30 Mar 2020 08:40:45 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B57D53A176A for <>; Mon, 30 Mar 2020 08:40:45 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id C0551280211 for <>; Mon, 30 Mar 2020 08:40:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1585582844; bh=QazDT6B8OulPB4LRUpLBYQO5rr8AtHWlqmMHl5G90tQ=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=uh2Y9vUnqk+VtX0KtvywNbnWB9LSuP3iV1IqDndPStK/XxoYfI5/4O+qVFNTzNPUY 4jUJ9foweYqICGk0pNk1zmsXFU1wRrCbnk+ZMEWxS7G4t48kmHy1iJDitez7zAZkIt K5K6t5ITeDoWosruMIAgBtpFhhcZs3lBuUKIzeAg=
Date: Mon, 30 Mar 2020 08:40:44 -0700
From: ianswett <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/3509/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Required state for retaining unacked RETIRE_CONNECTION_ID frames is unbound (#3509)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e8212fcb07da_409c3fd3238cd96823883a"; 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
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, 30 Mar 2020 15:40:47 -0000

I agree that I'd like to see a minimal solution, so I'm leery of heading towards #3553.

In order for a peer to need to send a lot of RETIRE_CONNECTION_ID frames without Retire Prior To, a lot of 5-tuple + CID changes need to be coming in.  One way to rate limit that naturally is to stop giving out CIDs if the peer hasn't acknowledged your RETIRE_CONNECTION_ID frames.

ie: Limit the number of NEW_CONNECTION_ID frames in flight to:
`max_active_connection_ids +1 -  num(RETIRE_CONNECTION_ID frames)`

So if the peer stops acknowledging your retirements, you stop giving them new CIDs.  I think this avoids the need for any other limits?  I added 1 in my example so one NCID could be sent even if all of the peer's CIDs had just been retired, though that concern disappears if we decided to also do something like #3550

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