Re: Hole in loss recovery algorithm?

Martin Duke <martin.h.duke@gmail.com> Thu, 30 April 2020 01:00 UTC

Return-Path: <martin.h.duke@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AE7233A0BF8 for <quic@ietfa.amsl.com>; Wed, 29 Apr 2020 18:00:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hG2efELohhKN for <quic@ietfa.amsl.com>; Wed, 29 Apr 2020 18:00:04 -0700 (PDT)
Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com [IPv6:2607:f8b0:4864:20::d34]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1F9943A0BF3 for <quic@ietf.org>; Wed, 29 Apr 2020 18:00:04 -0700 (PDT)
Received: by mail-io1-xd34.google.com with SMTP id e9so4335155iok.9 for <quic@ietf.org>; Wed, 29 Apr 2020 18:00:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Ps1rMgJzyHpQfPfCPaBNbxu/gqIs4dnWL54sLe9WgtM=; b=uSaLuzLmIYh+3wOQIHCwchI2fgcSBVB6FkE4Dq1Pe/sJUhFkxYwX73rH54ZDOhqQu7 ZDmL1M37MreswPy+4F4V5ySWxRdPvw37iQLRpuTuwhX5z2sfMSHxPIoQ8uZPl2bEfyjO KQ/V9h1pQTmZ+mjpfb1EWkJYPREdjnKmzhOX5Row/h7SeEoiF5PAFH5aFrZhfhfffKa0 EFWo3CQ6IKONBH1/UifzxLXFX0T4qamsJw8HePQF6LSZLoxSFPnJdvixHyiCGzx9ITYA la1+Wk4z1ECeq+GBB1auKip38pzci02GuyLcnt8ZO3LX2IcVy5CvpccPlOWWvV/4bl97 GOIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Ps1rMgJzyHpQfPfCPaBNbxu/gqIs4dnWL54sLe9WgtM=; b=VTDeggm4ZMubAmuwvG5hfibKgwUk3foJ241RzBr3p3Nnjihfp6V6V5UHsxpVbbGERI PlhWsvhI+RrBj/erh8D0XN3Br8X7EFCcbmBYnMxr3ZUP+g2jJx+8/NmmIxWz0X1TzDKU zIgLVtb2WA2B8tHxTFTu3nZuYFSB/Hb7w1uxLM3Ny/0D04zEMbTWEfE3xwt2Id+eRv7m VGkUGOyo7hwipa7Vh2+0CC3rF7Cm+8tSLfsECNt8GdAa0SSytCi/Wk2ArMT6/H0jkTxH KK7O7/4iduy5gyJJXYPQadVB+0wmoTb8sB7nlen4wxEsF0z6AoZ9slrf5G1din9aqD28 rgAA==
X-Gm-Message-State: AGi0PuaFOwBCNe9Qtn+PM/fHJRjswV7fkG6EpsKEb78lhiFEIUA4bd7t uTtvDzF0PgNH6wZoYQIvdzX9J80SsX2ERaKN5SwDJQNaKPk=
X-Google-Smtp-Source: APiQypJYJ+f2ArEejH7DFSkaKSho925h7oEl/slw2YNDKoKTgSv92WcXtBkLpXVrWyARM0Rma1Ey4/79TUoeqVZAo+s=
X-Received: by 2002:a02:cbac:: with SMTP id v12mr697112jap.103.1588208402192; Wed, 29 Apr 2020 18:00:02 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxQYh3W2GW-kxsBDw_Z8YLB3+-CSyLZsFQXp+LTxk92yNw@mail.gmail.com> <CAKcm_gNxoBYxiS4WxtjDs+mWdrBQMdxNkpbp+NfTjSH5XsT=8g@mail.gmail.com>
In-Reply-To: <CAKcm_gNxoBYxiS4WxtjDs+mWdrBQMdxNkpbp+NfTjSH5XsT=8g@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Wed, 29 Apr 2020 17:59:51 -0700
Message-ID: <CAM4esxQAgqh4JmqSW+jULHxMUmNsdkgzyjz-oFvHjJozV+YS5w@mail.gmail.com>
Subject: Re: Hole in loss recovery algorithm?
To: Ian Swett <ianswett@google.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000a464df05a4779515"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/___SCkOLy-6LQjdeo1maErZesis>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Apr 2020 01:00:06 -0000

I would personally put it both there and in 5.2.1.

On Wed, Apr 29, 2020 at 3:03 PM Ian Swett <ianswett@google.com> wrote:

> When the Client Finished arrives, the server is handshake complete, so it
> should arm PTO for the 1RTT data, though I don't see text making that
> explicit.  Should it be added here
> <https://github.com/quicwg/base-drafts/blob/master/draft-ietf-quic-recovery.md#discarding-keys-and-packet-state-discarding-packets>
> ?
>
> In the psuedocode, the PTO timer is reset when a PN space(the server's
> Handshake in this case) is dropped.
>
> Also, after the Client Finished arrives, the server sends HANDSHAKE_DONE,
> which would also re-arm the timer and fix the issue, but I'd rather not
> rely on HANDSHAKE_DONE to solve all the problems.
>
> On Wed, Apr 29, 2020 at 5:23 PM Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>> I'm probably missing something silly, but I'll file an issue if there is
>> in fact a problem here:
>>
>> - Server sends its handshake flight and some 1RTT data.
>> - The PTO is timer is set for the handshake data only per 5.2.1 of
>> quic-recovery.
>> - HS ACKs arrive, but the 1RTT is lost.
>> - Client Finished arrives.
>>
>> If this order of operations occurs, and there is no further 1RTT
>> communication, is the 1RTT ever going to recover? A literal reading of the
>> spec, if IIUC, is that when the HS acks arrive we're going to cancel the
>> PTO timer and, as the handshake is not yet complete, we will not restart it
>> for the outstanding 1RTT.
>>
>> A sentence saying you have to start it when completing the handshake, if
>> 1RTT data is outstanding, would solve the problem. Perhaps I'm missing
>> something more obvious?
>>
>