Re: [quicwg/base-drafts] Avoid renewing retired connection IDs (#1799)

erickinnear <> Wed, 26 September 2018 01:23 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2EA2B130DED for <>; Tue, 25 Sep 2018 18:23:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.456
X-Spam-Status: No, score=-8.456 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.456, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, 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 qQXQFE8YFoTS for <>; Tue, 25 Sep 2018 18:23:18 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 707A3130DFF for <>; Tue, 25 Sep 2018 18:23:18 -0700 (PDT)
Date: Tue, 25 Sep 2018 18:23:17 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1537924997; bh=p8v0oGXLDx1yHPGQywoTfC7txmpTgfP7HD+P1Pj6RMg=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=r9IsgcIY84owJRL0wfrV6nNovPvFyJn/Lk6PQKZJPUXD+H9GlmXKJEssHZ8Y+1U+T vuwusDJFCf5GnEWKWTqXyiDUQ1dDl5dmHovXA/AdIwoJ2s22jvSg1I05u6cWyRsqjP +4AOj7ymLWm5GSbbYnDGaZVQtSIJVUxkN8bvE3No=
From: erickinnear <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/1799/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Avoid renewing retired connection IDs (#1799)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5baadf855af3f_3d543f91370d45b41376b2"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: erickinnear
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: Wed, 26 Sep 2018 01:23:20 -0000

If you're going to use the proposal from NYC: 

> Each CID comes with a sequence number, every CID that you send must have a sequence number higher than any you've previously sent

> This does not requiring anything to happen in lockstep as before, however this solves a big edge case in that you can now forget CIDs immediately instead of waiting for 3xRTO when you retire them, since any NEW_CONNECTION_ID frame crossing paths with the retirement frame will contain a sequence number. Instead, you just remember the highest sequence number NEW_CONNECTION_ID that you've RETIRED.

>For example:
Peer sends NEW_CONNECTION_ID and you use it, then immediately retire it with RETIRE_CONNECTION_ID.
Ack of NEW_CONNECTION_ID gets lost.
RETIRE_CONNECTION_ID frame is still in flight when the peer retransmits NEW_CONNECTION_ID.
If you've got a sequence number you can keep track of the highest sequence that you've gotten and, since this one will not advance the sequence number, you can safely ignore the duplicate NEW_CONNECTION_ID frame.

Note the distinction between *received* and *retired* sequence number, since if you keep track of *received* sequence number for dropping new ones, then reordering between NEW_CONNECTION_ID frames can cause you to ignore some of them when you shouldn't. 

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