[quicwg/base-drafts] 0RTT or 0.5RTT data extends the PTO before handshake completion (#3067)

ianswett <notifications@github.com> Tue, 24 September 2019 23:06 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id EFF831201AA for <quic-issues@ietfa.amsl.com>; Tue, 24 Sep 2019 16:06:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.898
X-Spam-Status: No, score=-7.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_IMAGE_ONLY_32=0.001, 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
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id 9zq-QdR3-NbN for <quic-issues@ietfa.amsl.com>; Tue, 24 Sep 2019 16:06:43 -0700 (PDT)
Received: from out-20.smtp.github.com (out-20.smtp.github.com []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 14163120033 for <quic-issues@ietf.org>; Tue, 24 Sep 2019 16:06:43 -0700 (PDT)
Received: from github-lowworker-f144ac1.va3-iad.github.net (github-lowworker-f144ac1.va3-iad.github.net []) by smtp.github.com (Postfix) with ESMTP id 050388C0842 for <quic-issues@ietf.org>; Tue, 24 Sep 2019 16:06:42 -0700 (PDT)
Date: Tue, 24 Sep 2019 16:06:41 -0700
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK65O3UF2RLUHAAESZF3S7RBDEVBNHHB3LSYRI@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3067@github.com>
Subject: [quicwg/base-drafts] 0RTT or 0.5RTT data extends the PTO before handshake completion (#3067)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d8aa181e9413_69773fa0132cd95c75162"; 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
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/o-GzKBsqJmNDg7IqMlRobRxVAts>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Sep 2019 23:06:45 -0000

In the recovery draft, when anything is sent in any packet number space, the PTO is extended.  

For example, if there is a long delay between a server sending Initial and Handshake, then that would delay retransmitting the Initial.

A larger problem may be the delay between Initial and 0.5RTT data on the server side or Initial and 0RTT data on the client side.

In both cases, prior to handshake completion, the application may write data at anytime, subject to congestion control limits and availability of ApplicationData keys.  In pathological cases(ie: an application sending tiny 'keep-alive' like pings) the Initial of the client or server may never be retransmitted until after the connection runs out of CWND, which is likely longer than the handshake timeout.

This problem was observed in gQUIC and we added an extra field to track the last sent packet containing crypto data and before the handshake was complete, armed the handshake timer from that.

The most straightforward fix to this I'm aware of is #3066, which makes PTO per PN space.

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