Re: Unrecoverable loss pattern

Christian Huitema <> Mon, 26 February 2018 07:28 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id DDD95120721 for <>; Sun, 25 Feb 2018 23:28:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Tv6v43KPu-Rn for <>; Sun, 25 Feb 2018 23:28:58 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 0688F1201F2 for <>; Sun, 25 Feb 2018 23:28:58 -0800 (PST)
Received: from ([]) by with esmtps (TLSv1:AES256-SHA:256) (Exim 4.89) (envelope-from <>) id 1eqDDT-0003Zq-6A for; Mon, 26 Feb 2018 08:28:56 +0100
Received: from [] ( by with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from <>) id 1eqDDM-0004Me-Ls for; Mon, 26 Feb 2018 02:28:53 -0500
Received: (qmail 9725 invoked from network); 26 Feb 2018 07:28:45 -0000
Received: from unknown (HELO []) ([]) (envelope-sender <>) by (qmail-ldap-1.03) with ESMTPA for <>; 26 Feb 2018 07:28:45 -0000
To: Martin Thomson <>, Marten Seemann <>
Cc: QUIC WG <>
References: <> <> <> <> <> <>
From: Christian Huitema <>
Message-ID: <>
Date: Sun, 25 Feb 2018 23:28:43 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
Subject: Re: Unrecoverable loss pattern
Authentication-Results:; auth=pass smtp.auth=
X-AntiSpamCloud-Outgoing-Class: unsure
X-AntiSpamCloud-Outgoing-Evidence: Combined (0.25)
X-Recommended-Action: accept
X-Filter-ID: EX5BVjFpneJeBchSMxfU5gJNvufdQwOoW5kBtSJ7JOB602E9L7XzfQH6nu9C/Fh9KJzpNe6xgvOx q3u0UDjvO37pNwwF1lRXh5rzvPzo9Jts1ujulqUFmMITHM77eiVirkV7J0Wi+NzbTtnelSqDO87i TvJ2/ZGzVWB9scFAaCdIFaUvXN+CI+RGy3Me16pBiuj1YIZWyGteeTEbAD/lb/vRa7MR4hgRIg8N 1QlY4G7x1YBTEs55LirRLgpsvCFtid7SQi4NE/job5y2wAN3GZxznd8NXwc/vKJtfZaXo5QAJAfA 9MMVcQ9WVjD1q+Rbd9IPG/DQ2p+GU04sTuYFs91jhnM/Mbva2XLV/LIEzaKyLm0zESXAkIAT8ZKA DvsGI5uh86ZVnyOrYkLMWyEaRt9fxN2oReTDHAyOynaY0ClKHhIXfDbmhz3DoftFSAfVIRFsicyJ MEhQFtD8PLoiniWmsFByBoXAuCZEyg59LM81CaOu2xwDQxDsUgSvK+nII1IRruUYLOgUnyoTu5lV X1MKVprlQYwN+KHznEQNFP2RJjTwYR9fdVd4GNOGh/gxw/SqpkOks8V3qTQf2nUD3wfG/OGabeQO D+JyvmSUpW+ZQTl/k5oRlt1ErWfaEWxe22o4BNBy+bVfxj88zI41K1O7B0jvACHkMSS0WCQUO4Cp b4mi9wLRe0dO1qfOpsb8SGG/BQd7r2NVEaNhWos5pmr/mO1KyGAqOt7Rk+SRRRYccBIk1Sag4dKi qCrF8eZZeNMTAWyxeqt3BjCO03tBtqMfDzEXpr5sTuNVuzYBPE2Bi6owqeb+h1kbxIVWYdC7uVGB tJ1DsK23UcLYdhI56Feqv/VOJZnHunWcIBzbsDrLaeA4pl20N4bgeYf9w8whIRFsicyJMEhQFtD8 PLoinpgjWjpMfsxmWdg884icSQEZwRvSfvkJh2VafuDhMcA1uHlEIbR8fMtAowK0FL525g==
Archived-At: <>
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 26 Feb 2018 07:29:00 -0000

On 2/25/2018 6:07 PM, Martin Thomson wrote:

> Yes, this is a real issue.  It arises because the packet that would
> normally trigger loss detection for the request packet (the ACK for
> the Finished) never gets sent because the server believes the client
> to be quiescent.  The server believes that because it discards the
> cleartext packets that it receives.
We debated that with issue #1018
( At the time, we saw
two options:

1) Allow the "finished" message to be transmitted in 1-RTT protected
packets. This was nixed because it seems to interfere with the formal
proofs of TLS 1.3.

2) Allow the server to accept retransmission of handshake packets
intermixed with 1-RTT protected packet. Clearly, this open a DOS attack,
as third parties can now inject such packets, consume packet numbers,
and possibly cause good data to be dropped.

I was not aware that the spec pushed a third alternative, to mandate
that the server to just drop handshake packets after receiving the first
copy of the finished message. As Marten says, that puts the client in a
bad position if the first ACK is lost and the server is silent after that.

The solution might be to send a "Finished received" frame in the
protected data flow, and require an ACK for that frame. That way, the
problem would really be solved.

-- Christian Huitema