Re: New Version Notification for draft-kuhn-quic-0rtt-bdp-07.txt

Lucas Pardue <lucaspardue.24.7@gmail.com> Tue, 27 October 2020 00:23 UTC

Return-Path: <lucaspardue.24.7@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 D61EC3A110E for <quic@ietfa.amsl.com>; Mon, 26 Oct 2020 17:23:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.847
X-Spam-Level:
X-Spam-Status: No, score=-1.847 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 iHrGxDEgSjHF for <quic@ietfa.amsl.com>; Mon, 26 Oct 2020 17:23:15 -0700 (PDT)
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) (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 D4B653A10A3 for <quic@ietf.org>; Mon, 26 Oct 2020 17:23:14 -0700 (PDT)
Received: by mail-ej1-x62d.google.com with SMTP id w27so16759372ejb.3 for <quic@ietf.org>; Mon, 26 Oct 2020 17:23:14 -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=kXHgPnlACzrZJg55StqWA7OKiwag8+PYYQUv+q3NCEs=; b=X/mWG+tCfUQ40PZuOq4DVs4k9Tao6P5ZY0g29Sj4gwiuyReQzKdPuJwzMVELtsASLz nBeJosaR1fr1dYI5KE4WQ5z2NtOSFxI9r4qI9sDJ2Scq6KmvYDg3FoFfcqIxhlB2ytfu GnlI/w1NNgqIUrACT1cj0Jzgku85jbFrqa7pqB51RWEFx8EJSgD0CmdVODKa3iyhidpR /mLopkQSr869/X2+9B0oFMKVa6K0uF3t5oH86eh5j9LeAmpEAb29CuV9Dp9WWxCZV7H4 UdL1H+NoCxovupp4jKgvfdJmVHTVUntjgCUKLNeeZNnNgVhJPV71Hmau2BqndJzUfdOo E9Vw==
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=kXHgPnlACzrZJg55StqWA7OKiwag8+PYYQUv+q3NCEs=; b=FaIsUo6m6k6bQc4fD6w+1NQIZEz+0Xt4IJcEIo7F0w1KSfmuFmCK9OBi3lHjw1fWAd GrDSYmNjktdk+cmdgJYJAU7ZBm4t3D14NC2hKMnPeGBEofIrNcd0O9jbzUAD5jxXaHn4 /YsvJnN9zTvuf1t6Ew5Sl4SRVhI+zqR0cdl/rkyctprRf5UM0UZbiH1rswosuu1CI0jC FzKtDHmZ0rWHuoVZEviTfLCzmlZZ/EcwNmPR+s8ZXMO7XBDBlFjVx8p47eFrAL/W+jAT yOM+sB9lv06UNueHxHiAm4cK1SwYIEElJDvHXUxX93QZg/dFcddU7KrnovPtbkZbIiv3 CMjg==
X-Gm-Message-State: AOAM530ORkOh9VyKxL0IgIroFlGnhs46lqnKo7O6oR2S3tNUs9ri7qyU KTyvBGs+CXWJi9XaRe7MKg/ndpCM1YLbiozcqIo=
X-Google-Smtp-Source: ABdhPJxpr1ofQV4x68IDE/zwsulIU2hmIUwsd5PWgHkGwLOQq7masfBzWUyIrzHeP3I2qBBF1eu0gCzoI0sukWUevdc=
X-Received: by 2002:a17:906:a119:: with SMTP id t25mr19353500ejy.67.1603758193350; Mon, 26 Oct 2020 17:23:13 -0700 (PDT)
MIME-Version: 1.0
References: <158978951893.22751.4814113172992555805@ietfa.amsl.com> <F3B0A07CFD358240926B78A680E166FF1EDAB042@TW-MBX-P03.cnesnet.ad.cnes.fr> <CANatvzw8+tUG2NjO2OoN1FgsE5mZdzTVZ05ACSTR2zseDdasBg@mail.gmail.com> <55494829-b0eb-43c3-2717-fcae429c8b04@huitema.net> <CANatvzzkD3+R6qWbpwoxyh4neq2+c_WwRU7eNKuDuYmu1a1Yhw@mail.gmail.com> <CADdTf+i20uC9LBdp0X+FVHtkbq-WEKGUCvZZ2QXoxKDiNvyMcg@mail.gmail.com>
In-Reply-To: <CADdTf+i20uC9LBdp0X+FVHtkbq-WEKGUCvZZ2QXoxKDiNvyMcg@mail.gmail.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Tue, 27 Oct 2020 00:23:05 +0000
Message-ID: <CALGR9oaTS_7vwLroR6beKB5A2gq_q4-cj8qdnnrbY+Gh-_ixng@mail.gmail.com>
Subject: Re: New Version Notification for draft-kuhn-quic-0rtt-bdp-07.txt
To: Matt Joras <matt.joras@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Kuhn Nicolas <Nicolas.Kuhn@cnes.fr>, IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>
Content-Type: multipart/alternative; boundary="0000000000006b9bbd05b29c0db1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/8KB7NZLnWXLVCq7bfW94T3HcYdE>
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: Tue, 27 Oct 2020 00:23:17 -0000

Of course, you could also put such info in an HTTP header :) [1]

[1] https://tools.ietf.org/html/draft-ohanlon-transport-info-header-01

On Tue, 27 Oct 2020, 00:15 Matt Joras, <matt.joras@gmail.com> wrote:

> What Christian describes, a sort of "BDP Token" is something we are
> currently prototyping. Specifically we are using a new frame type to
> proactively send information from server -> client containing metrics of
> interest. The first such metric is "goodput", as measured recently by the
> server, and we intend to use it as an input to the client-side ABR scheme
> for the video player.
>
> In general I thought this idea could be extended and standardized. It
> seems likely that different applications will have interest in the same set
> of metrics as measured by the peer (e.g. RTT and bandwidth).
>
> Matt Joras
>
>
> On Mon, Oct 26, 2020 at 4:43 PM Kazuho Oku <kazuhooku@gmail.com> wrote:
>
>>
>>
>> 2020年10月27日(火) 8:24 Christian Huitema <huitema@huitema.net>:
>>
>>>
>>> On 10/26/2020 2:36 PM, Kazuho Oku wrote:
>>> > Hello,
>>> >
>>> > Thank you for the draft. I just had the opportunity to read it, and
>>> > therefore am leaving comments.
>>> >
>>> > First of all, I think it is a good idea to write down how endpoints
>>> > can reuse information from previous connections when reconnecting.
>>> > Many people have been talking about the idea, it seems that there are
>>> > pitfalls, and having a compilation of good practices could help.
>>> >
>>> > At the same time, I was puzzled with the following two aspects of the
>>> > draft:
>>> >
>>> > 1. The draft requires the characteristics of paths be communicated via
>>> > session tickets. IIUC, QUIC resumes the properties of the *endpoint*
>>> > using TLS session tickets, while the properties of a path (e.g.,
>>> > peer's IP address) is to be remembered by a NEW_TOKEN token. The
>>> > draft's use of session ticket goes against that principle.
>>>
>>> I also think that forcing the information in the session ticket is a bad
>>> idea. As Kazuho says, the session ticket is used to resume sessions, not
>>> necessarily from the same network location at which the session ticket
>>> was acquired. Using a "token" is better from that point of view. It also
>>> has the advantage that tokens are fully managed within the QUIC layer,
>>> without any dependency on the TLS stack, which makes the implementation
>>> significantly simpler. However, there is still an issue because New
>>> Tokens are normally sent just once at the beginning of the connection,
>>> and are used to manage the "stateless retry" process. If the server
>>> sends several New Tokens, the client is expected to remember all of
>>> them, and use them only once.
>>>
>>> It might be simpler to create a new frame, very similar to the "New
>>> Token" frame, maybe calling it "BDP_TOKEN", and a "bdp_token" transport
>>> parameter. The frame carries a binary blob that encode server defined
>>> data. The server sends the client whatever blob it wants. It may send it
>>> several time, in which case the client only remembers the last one. The
>>> client puts the blob in the bdp_token TP, or if no token is available
>>> sends an empty blob to signal its support for the process. The server
>>> may reply with an empty token if it does support the process.
>>>
>>
>> I tend to agree with the high order design, and it is my understanding
>> that use of NEW_TOKEN tokens is fine for the purpose.
>>
>> The transport draft has a paragraph stating that a server might send new
>> NEW_TOKEN tokens as the state of the connection changes, and that it makes
>> sense for the client to use the most recently received NEW_TOKEN token.
>>
>> https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#section-8.1.3-9
>>
>>
>>> >
>>> > 2. The draft suggests that the server's properties (e.g., server's
>>> > BDP) be shared with the client. Is there any reason why they have to
>>> > be shared? I tend to think that each endpoint unilaterally remembering
>>> > what they prefer provides the most agility without the need to
>>> > standardize something.
>>>
>>> I think that "the endpoint remembers" should be the starting point. For
>>> one thing, we should also care of the scenario in which the client
>>> pushes data to the server, in which case the client needs to remember
>>> the BDP and RTT of the previous connection to the server. The server
>>> could do the same thing, just keep an LRU list of recent client
>>> connection addresses and the associated BDP and RTT.
>>>
>>> The whole business of sending blobs is just an optimization on top of
>>> the "endpoint remembers" strategy. We may be concerned that servers have
>>> to remember data for too many clients, that local server storage would
>>> not scale, or maybe that the same client hits a different server in the
>>> farm each time its reconnect. Hence the idea of storing these parameters
>>> in a blob, sending the blob to the client during the previous
>>> connection, and have the client provide the blob back during the new
>>> connection. Also, we seem concerned that the server does not trust the
>>> client, because otherwise the client could just add a couple of TP such
>>> as "previous RTT" and "previous Bandwidth", based on what the client
>>> observed before. Managing blobs has some complexity, so the tradeoffs
>>> should be explored.
>>>
>>> -- Christian Huitema
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> Kazuho Oku
>>
>