Re: [Webtransport] Does WebTransport need a reliable, in-order message abstraction?

Lennart Grahl <lennart.grahl@gmail.com> Mon, 27 July 2020 08:16 UTC

Return-Path: <lennart.grahl@gmail.com>
X-Original-To: webtransport@ietfa.amsl.com
Delivered-To: webtransport@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 58DF53A17A4 for <webtransport@ietfa.amsl.com>; Mon, 27 Jul 2020 01:16:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, NICE_REPLY_A=-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 31XMvWTSS7cE for <webtransport@ietfa.amsl.com>; Mon, 27 Jul 2020 01:16:29 -0700 (PDT)
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) (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 A53343A17A0 for <webtransport@ietf.org>; Mon, 27 Jul 2020 01:16:28 -0700 (PDT)
Received: by mail-ej1-x62b.google.com with SMTP id qc22so1331408ejb.4 for <webtransport@ietf.org>; Mon, 27 Jul 2020 01:16:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=0FYJmRlaj0IzKW/krV1xdQsZKlzdrPRi5qmnKP9eZ0k=; b=pmE+v9LQQaI+K/ACYIlxm9Y7gZLV6qZ1pqiq7nkTznWIjem/jqOlAqnL6utomYXsq1 td5b3FgzNxnevPfzt8VJZ0yf/VbnkAx6nvmL39cRYX0OLPbBkkcHGaSUo4IcWEjfAYsw g/UanIPamK/svRdhu0/mnMR7BtUnFBWHjUxvdyE+UTMXDmOer/2C87y1XHtq9sOwbkB6 J0H5HIribCuYjaV8mUPgKi221+cyK2VVwNmlutiKJayCaB9a53ZNMx9FwM6NrjmsMAJS 2jn9/31WgSrue4/big7c3E9pJMhxXdaXvvn5EIndvCAjtrVkHBQRrygk7BLDkJ0gDYmL vmww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=0FYJmRlaj0IzKW/krV1xdQsZKlzdrPRi5qmnKP9eZ0k=; b=aDCumwg8mdJ8AdOvVUKCHc+kVEVholM7ECa5lDj+CgZEKO3YSAsw/kl3DzygWh+C4C xI1hxHRTDWIckGFy/Fy6N11MVYyHMco4wxrlh7CtlK2AH9atSgHzW7/E4u1O0B7L+tDH U/vnp/zg2ClSFCWbASno86x85dHUDRKgGN+zVs1Sn1Ln4AJaeBhyknGN/OxJFIkVAJJ4 EvUmepfc24+VBZyfVyJKTmZ0g0f6KelT69Tf8qfOzZyia4+o3lbK+IdNFSNshO8cYfKW SslhRnti857YRAIkAMA0X1dKiO9yy8FRAAs3CZIBoW6kOZHZ3Jhpon8bIWQ9dAY8xDr9 NpDQ==
X-Gm-Message-State: AOAM532jGyJdPQ/OAJbZ49/g4sY+RK9j+y0XZdyW5Cu7S87w7bSd7hZK txUA+UKB4LBwyYV2u3LAQ969yVd0
X-Google-Smtp-Source: ABdhPJzS0lr7lBVm0nbedH1yfEyvQKBESJ1W7nZcKgfVtvW5Fh1BlPHTi9dLvosVE1seYUrqiLzZbA==
X-Received: by 2002:a17:906:43c9:: with SMTP id j9mr4090812ejn.542.1595837786752; Mon, 27 Jul 2020 01:16:26 -0700 (PDT)
Received: from ?IPv6:2001:1620:6cf:0:a18a:7d9:9864:f71e? ([2001:1620:6cf:0:a18a:7d9:9864:f71e]) by smtp.gmail.com with ESMTPSA id z25sm6483508ejd.38.2020.07.27.01.16.25 for <webtransport@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Jul 2020 01:16:26 -0700 (PDT)
To: webtransport@ietf.org
References: <CAOW+2dvDmMdaCiz_Qq0OJVhzuZDdPQu5xOV2ivV1Kr1MnvbJTQ@mail.gmail.com> <3084C7A6-B2C3-4C44-A567-3178FEC45C6B@gmail.com>
From: Lennart Grahl <lennart.grahl@gmail.com>
Message-ID: <2b7f05a8-2b6c-231f-7f95-b18462261bdb@gmail.com>
Date: Mon, 27 Jul 2020 10:16:23 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0
MIME-Version: 1.0
In-Reply-To: <3084C7A6-B2C3-4C44-A567-3178FEC45C6B@gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-GB
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/_BU6oERvCgWA0973LvazTzyjgIo>
Subject: Re: [Webtransport] Does WebTransport need a reliable, in-order message abstraction?
X-BeenThere: webtransport@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <webtransport.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webtransport>, <mailto:webtransport-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webtransport/>
List-Post: <mailto:webtransport@ietf.org>
List-Help: <mailto:webtransport-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webtransport>, <mailto:webtransport-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Jul 2020 08:16:31 -0000


On 26/07/2020 02:08, Bernard Aboba wrote:
> Alan said: 
> 
>> Is replacing WebSockets with WebTransport one of our goals?  If so, I think we need to address the gap by adding this abstraction.  If not, we should explicitly mention that this abstraction doesn’t exist, and instruct developers to use WebSocket instead.
> 
> [BA] Thanks for bringing this up.
> 
> When we first started on what would become the RTCQuicTransport API, the goal was to support all the transport modes of the RTCDataChannel API, which was modelled after WebSockets. 
> 
> However, we realized that this required design of a framing protocol on top of QUIC reliable streams. After verifying that a simple framing protocol was implementable as a JS library on top of the RTCQuicTransport prototype, providing many of the services of RTCDataChannel, the “proof of concept” was considered done and since then not much has happened.
> 
> This is a good example of how things can fall between the cracks of protocol design and API design. “Assume we have a framing protocol designed in IETF....”

Perhaps a clearly defined framing protocol for WebTransport on top of
those protocols that need it is not a bad idea if it's simple and easily
negotiable. But beyond that, I urge to always think about the
entry-barrier for non-web implementations before adding more protocols.
Because that was one of the top arguments when it came to why supporting
data channels and SCTP in non-web implementations is a problem.

But back to the "message" feature: I did make a proposal on that to make
the API future-proof for message streams (i.e. stream of byte stream):
https://github.com/WICG/web-transport/issues/49
If we do have a framing protocol, then it can be easily combined with
the API proposal.

And I want to emphasize again on the naming in the API. So far, these
are all byte steams we're talking about in the WebTransport API but when
adding "message" streams, this isn't clear any more. To quote myself in
above linked issue:

> [...] I think it makes sense to incorporate the type of stream into the interface in general to avoid confusion in a dynamically typed language (what kind of stream is this? a stream of bananas?) [...]