Re: [hybi] WebTransport Side Meeting (Tuesday, 15:20)

Andy Green <andy@warmcat.com> Mon, 22 July 2019 21:00 UTC

Return-Path: <andy@warmcat.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9E280120120; Mon, 22 Jul 2019 14:00:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable 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 sjEAunKIUEID; Mon, 22 Jul 2019 14:00:09 -0700 (PDT)
Received: from warmcat.com (warmcat.com [46.105.127.147]) (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 9268812008C; Mon, 22 Jul 2019 14:00:08 -0700 (PDT)
To: Victor Vasiliev <vasilvv=40google.com@dmarc.ietf.org>, dispatch@ietf.org, David Schinazi <dschinazi@google.com>
Cc: hybi@ietf.org, IETF QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
References: <CAAZdMacqbqYVs4MeoE-ahukgLzf0+nNhNip4HTGThobXhqCceQ@mail.gmail.com>
From: Andy Green <andy@warmcat.com>
Message-ID: <5c631764-25e2-ce37-3f84-8eca5a8378eb@warmcat.com>
Date: Mon, 22 Jul 2019 13:59:57 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0
In-Reply-To: <CAAZdMacqbqYVs4MeoE-ahukgLzf0+nNhNip4HTGThobXhqCceQ@mail.gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/hybi/H-sz6SwEukU1pFbfXV6366DYB28>
Subject: Re: [hybi] WebTransport Side Meeting (Tuesday, 15:20)
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hybi/>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jul 2019 21:00:13 -0000


On 7/22/19 1:36 PM, Victor Vasiliev wrote:
> Hello everyone,
> 
> Today, at the dispatch working group meeting (18:10), I am going to 
> present WebTransport. WebTransport is a protocol framework that allows 
> multiplexed and datagram-oriented transport protocols to be used by the 
> web applications (think “WebSocket for UDP”).

"Historically, web applications that needed bidirectional data stream
    between a client and a server could rely on WebSockets [RFC6455], a
    message-based protocol compatible with Web security model.  However,
    since the abstraction it provides is a single ordered stream of
    messages, it suffers from head-of-line blocking (HOLB), meaning that
    all messages must be sent and received in order even if they are
    independent and some of them are no longer needed.  This makes it a
    poor fit for latency sensitive applications which rely on partial
    reliability and stream independence for performance."

The HOLB isn't really entirely the case... RFC6455 ws allows arbitrary 
fragmentation of messages allowing interleaving with control frames.

ws-over-h2 allows you to can the h2 stream when you want as well.

" Each new stream would require a WebSocket handshake to agree on
       application protocol used, meaning that it would take at least one
       RTT for each new stream before the client can write to it."

Yes it was knowingly done as a hack to try to encourage uptake from 
browser vendors... it's not really integrated into the encapsulating 
protocol.

>   * WebTransport overview:
>     https://tools.ietf.org/html/draft-vvv-webtransport-overview-00
>   * QuicTransport:
>     https://tools.ietf.org/html/draft-vvv-webtransport-quic-00
>   * Http3Transport:
>     https://tools.ietf.org/html/draft-vvv-webtransport-http3-00

There's no h2 transport implementation?

Not everything that might want to use this will get h3 capability in a 
reasonable timeframe.  If there's more momentum behind it than RFC8441 
there's probably room for a generic long-lived bidirectional extension 
to h2 either reusing DATA or a new frame type.

It's a good idea to have it ride on other protocols.  Not doing this 
really hurt RFC6455 ws since deploying it usually needed extra, 
different servers with the attendant difficulties interoperating with 
other protocols.

I really suggest thinking through the effects of not having an RFC6455 
type subprotocol (unless I failed to spot it).  It really makes an 
implicit assumption about what the stream will carry that doesn't scale 
beyond one server carrying one thing.  That's not how things tend to pan 
out if the protocol is useful.  The url path could be hacked to imply 
the subprotocol but if that's not standardized it's still a mess.  And 
the subprotocol binding may be orthogonal to the url layout complicating 
things needlessly.

-Andy

>   * Web API Spec draft: https://wicg.github.io/web-transport/
>   * Discussion on use cases:
>     https://discourse.wicg.io/t/webtransport-proposal/3508
> 
> Cheers,
>    Victor.
> 
> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>