Re: Knowledge transfer for extending QUIC (was Re: New Version Notification for draft-huitema-quic-ts-05.txt)

Christian Huitema <huitema@huitema.net> Thu, 18 March 2021 19:10 UTC

Return-Path: <huitema@huitema.net>
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 85FE43A320B for <quic@ietfa.amsl.com>; Thu, 18 Mar 2021 12:10:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 SZJRcbrHLKWy for <quic@ietfa.amsl.com>; Thu, 18 Mar 2021 12:10:04 -0700 (PDT)
Received: from mx36-out20.antispamcloud.com (mx36-out20.antispamcloud.com [209.126.121.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E18153A3208 for <quic@ietf.org>; Thu, 18 Mar 2021 12:10:03 -0700 (PDT)
Received: from xse122.mail2web.com ([66.113.196.122] helo=xse.mail2web.com) by mx136.antispamcloud.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1lMy1u-0000mR-7c for quic@ietf.org; Thu, 18 Mar 2021 20:10:01 +0100
Received: from xsmtp21.mail2web.com (unknown [10.100.68.60]) by xse.mail2web.com (Postfix) with ESMTPS id 4F1c692W4jz1ktM for <quic@ietf.org>; Thu, 18 Mar 2021 12:09:53 -0700 (PDT)
Received: from [10.5.2.17] (helo=xmail07.myhosting.com) by xsmtp21.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1lMy1p-0004D7-7L for quic@ietf.org; Thu, 18 Mar 2021 12:09:53 -0700
Received: (qmail 4653 invoked from network); 18 Mar 2021 19:09:52 -0000
Received: from unknown (HELO [192.168.1.104]) (Authenticated-user:_huitema@huitema.net@[172.58.43.146]) (envelope-sender <huitema@huitema.net>) by xmail07.myhosting.com (qmail-ldap-1.03) with ESMTPA for <matt.joras@gmail.com>; 18 Mar 2021 19:09:52 -0000
To: Lucas Pardue <lucaspardue.24.7@gmail.com>, IETF QUIC WG <quic@ietf.org>
Cc: Matt Joras <matt.joras@gmail.com>
References: <161602961576.29713.5556006395853657310@ietfa.amsl.com> <a5d9bbf2-227d-90b6-fd22-52e05895713b@huitema.net> <2F127CC0-5D13-4DEB-9B4D-4EF89C8D9E0F@apple.com> <71a72a2c-b6eb-7640-391c-663d21afa8da@huitema.net> <CALGR9oZ-RHaK2sYoypqAfQvBXHmsfTrGOLCJKL4yfdRWkUkYDA@mail.gmail.com> <ec8176ed-347e-9f88-8504-100213809058@huitema.net> <CADdTf+h_KkWSu5P1o4Ho0_wA+5E-T0YT5nkwj_Ud=R9tJL2GCQ@mail.gmail.com> <CALGR9ob+zZn3WfJpGKesZYGqq=OCbXX6v-ezNyc6JjJnmqyXkw@mail.gmail.com>
From: Christian Huitema <huitema@huitema.net>
Subject: Re: Knowledge transfer for extending QUIC (was Re: New Version Notification for draft-huitema-quic-ts-05.txt)
Message-ID: <c0c80e50-4cee-53b4-0ec7-1a40859ac153@huitema.net>
Date: Thu, 18 Mar 2021 12:09:51 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1
MIME-Version: 1.0
In-Reply-To: <CALGR9ob+zZn3WfJpGKesZYGqq=OCbXX6v-ezNyc6JjJnmqyXkw@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
X-Originating-IP: 66.113.196.122
X-Spampanel-Domain: xsmtpout.mail2web.com
X-Spampanel-Username: 66.113.196.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=66.113.196.0/24@xsmtpout.mail2web.com
X-Spampanel-Outgoing-Class: unsure
X-Spampanel-Outgoing-Evidence: Combined (0.15)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT9WLQux0N3HQm8ltz8rnu+BPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5x6h2yQpzTslcOqazQkKtAFKj/EwzSHE5FGYwwjsNRPCJU5 kkKguKdne8s3ImYhJufmD6wdmZPcItWbGe10hXJtXL4FsauCVkDjmcYJdU3yWp7KuHNaaKdg7iBE ZefdsNUFWKwa/wzJUjmazeC7Imca+xnn3Ohf8XY5WZ+f/Kk3UxQ6V51u76v35b1wNe/MvdLom48E g3of4Y9DlgiJ0nAJ2+J9PgaoF8SQHto3le4zsHTaeQtlKubP6iUTjj6yPARK6buALVaA782LKxg6 vRmng8N1aLhXqdc+jC1RcnVud53D5caUhbVtvqItBqoizkEt9O20UjkwI0v+LOlw05G4BS+iyyNq bT8dUMXMJ4tUCMj6G37ZfAMLceP5aNHPt26RBupu5v1nytoNnc138GfEJRQ2qC7jjynPIHPNqSn4 QTXUjLjYWQt1/5xnQymMoPsgr/U0flMcy2Vi/IcBgY4arPaiJ1W6hAyiRC61jekdwIcXNugoOEbH RyFULpSjm7jZ1h/HfDRQ5Ig8VhPsPE8NQ/T3Op6Um662jkOH4Bxha6vH0PZUsqM6/e5MEyOxH5Fj P4wGWVrLq0W1SDSAe2U8DRojSVizNl0ce/s7u0P9b9Tml6eOMCV9kYYwkPx6ZsXvIUzTXkDAiiJi mGhLUFuS2lhaIetXfCg1JdAVrOwKfBXOCQPJzXzpndi+3fLihh5UoFIvD3sIcP1fhJPM6B/8FFbD hlHBS61h3jgDFaG/Gdks3e/xYSLn+HJoEjOfExqJ+dym1L8cD17Js0v4cp1MP1jjdTzjqobABxsp Qx8bvTcKVNeVJ9BXyu9+ceCqThTYg2px1fSoqxQCCHnLMo/m9VKh99btUAanjnMCAH2co+fBoeG+ Hs0afhsY/5zhNYWRVYKU9W9tbmVXJBqdHHDmZEKhyNAv1N35kYWaEdgLurFV5oTvAcwA4rM3FkfW 8/1kE/e7sUnsVpINvARNxpFO
X-Report-Abuse-To: spam@quarantine11.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Rb3tTMg-0VnzBvEy87VSXGNOQpU>
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, 18 Mar 2021 19:10:06 -0000

On 3/18/2021 10:42 AM, Lucas Pardue wrote:
> Hey Matt,
>
> On Thu, Mar 18, 2021 at 3:06 PM Matt Joras <matt.joras@gmail.com> wrote:
>
>> I think what Lucas is suggesting, and has been suggested before, is
>> that we are likely to have many frames which have similar
>> transmission/loss/transport handling properties, so why not have a
>> generic frame we build atop for some extensions?
>>
>> I would hope we don't take this direction, as we did not take this
>> direction in the "core" frames in the specification, many of which
>> have identical transport handling. The design of QUIC v1, IMO,
>> encourages more frames rather than fewer. It is very easy for us to
>> add new frames. Putting "similar" frames all on a generic frame's
>> framework doesn't really save us time in specifying the semantics of
>> that frame. At best it might save some implementation complexity, but
>> I would argue that such concerns can be addressed by the
>> implementations. For example, mvfst has the notion of a generic
>> "simple frame" which is one which is not retransmitted and there are
>> not expected to be a great many of them. Many extension frames will
>> likely be implemented using this implementation-specific framework,
>> and I would expect other implementations to have their own techniques
>> for optimizing the implementation of new frames. And as Christian
>> notes an implementation will always have to implement the semantics of
>> what the frame actually does anyway.
>>
> You've done a much better job of articulating the idea that I had.
>
> My suggestion was motivated by an observation that people designing
> extensions might have to revisit the same questions over and over: "does
> this frame need to be ack-eliciting, can a packet of pure frames be sent,
> does the frame behave like that one or this one, or does it need to be a
> little special". This is all in the context of how the frame affects the
> transport, not the how the frame enables the extension. We're a young WG,
> and there are not many design patterns or cookie-cutter examples to help
> people focus on the problem they are solving rather than getting bogged
> down by problems they might cause. There is institutional knowledge in the
> WG and I'd love for us to find a way of capturing that so that others can
> benefit. The mvfst example sounds great, you optimized for implementers. A
> concrete frame type might be too far. But maybe we could start thinking
> about some format to build upon the advice already in the 19.21 of the
> transport doc. That might come with time as we learn but maybe some people
> already have some ideas...
>
> Cheers
> Lucas
>
> [1] https://tools.ietf.org/html/draft-ietf-quic-transport-34#section-19.21

I suppose that you mean the part that says "Extension frames MUST be 
congestion controlled and MUST cause an ACK frame to be sent. The 
exception is extension frames that replace or supplement the ACK frame. 
Extension frames are not included in flow control unless specified in 
the extension." The TIMESTAMP frame falls in this "supplement the ACK 
frame" category.

What we have now is simple: just explain in the spec that the extension 
is treated as an extension of the ACK. I am not sure that we know enough 
to specify a container format or any such superstructure. Consider for 
example the ACK_MP proposals, in which a single packet could carry 
several ACK_MP. There are good reasons to add a TIMESTAMP to such 
packets, but you need only one of those for several ACK_MP. It would be 
very easy to define "container" formats that break in such unanticipated 
cases.

-- Christian Huitema