Re: [quicwg/base-drafts] Immediately close with INVALID_TOKEN (#3107)

Martin Thomson <> Mon, 04 November 2019 00:06 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 23D2012004F for <>; Sun, 3 Nov 2019 16:06:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Status: No, score=-8 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, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, 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 xVbu6DFdl1wK for <>; Sun, 3 Nov 2019 16:06:50 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id A778612088B for <>; Sun, 3 Nov 2019 16:06:50 -0800 (PST)
Date: Sun, 03 Nov 2019 16:06:49 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1572826009; bh=qgt81HLQQN5Xw50ONjgxR8hYQuv2asBlP6340vLoevk=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=dwL4xr8kccIJw4Nrdbp6CXGTkIk/Xej5o+l+2RddAsn0h7fRAXsk9I2I9yyemjQh5 h3oFVbq/sujzD3K7tOvWnsBdCCqvHo1zu9UOGjAzBe0Vk8oxXTWMMOcKmYhZJEX8jD ssgAkcwWEG4rL18kTzlduXt6eQc1vKNWnRI3Do9Q=
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3107/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Immediately close with INVALID_TOKEN (#3107)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5dbf6b9976e70_5ed73ffadc4cd968354162"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
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, 04 Nov 2019 00:06:53 -0000

martinthomson approved this pull request.

I found some of the wording to be awkward.  I'm not sure that my formulation is better, but you can integrate as you like.

> @@ -1641,12 +1641,14 @@ of connection establishment.  By giving the client a different connection ID to
 use, a server can cause the connection to be routed to a server instance with
 more resources available for new connections.
-If a server receives a client Initial with an invalid Retry token,
-it knows the client will not accept another Retry token.  It can either
-proceed with the handshake without verifying the token or immediately close
-({{immediate-close}}) the connection with an connection error of
-INVALID_TOKEN to cause the handshake to fail quickly instead of waiting
-for the client to timeout.
+If a server receives a client Initial that can be unprotected but contains an
+invalid Retry token, it knows the client will not accept another Retry token.
+The server can drop such a packet and allow the client to time out to detect
+handshake failure, but that is a significant latency penalty to the client.

Maybe instead:

> The server could discard such a packet, but this could result in the client continuing to send the invalid Initial packet until it is eventually forced to abandon the connection attempt.  A server that requires address validation SHOULD immediately close ({{imm...}}) the connection with an INVALID_TOKEN error to allow the client to detect the error sooner.  Note that a server has not established any state for the connection at this point and so does not enter the closing period.  Alternatively, a server MAY proceed with the connection without verifying the token, though the server MUST NOT consider the client address to be valid.

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