Re: [Webtransport] HTTP/3 Downgrade

Victor Vasiliev <vasilvv@google.com> Fri, 13 November 2020 15:05 UTC

Return-Path: <vasilvv@google.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 0022B3A09D6 for <webtransport@ietfa.amsl.com>; Fri, 13 Nov 2020 07:05:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.598
X-Spam-Level:
X-Spam-Status: No, score=-17.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 69x1_sFfZzM6 for <webtransport@ietfa.amsl.com>; Fri, 13 Nov 2020 07:05:19 -0800 (PST)
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) (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 37B4C3A003E for <webtransport@ietf.org>; Fri, 13 Nov 2020 07:05:18 -0800 (PST)
Received: by mail-lj1-x236.google.com with SMTP id i17so9963204ljd.3 for <webtransport@ietf.org>; Fri, 13 Nov 2020 07:05:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Q8BwNtgykEUrahx2VasWbBm8zrAE4cCtjPsNHPT6IDk=; b=rxPGKFVdgSjpUEafbq5oBoXB2Z48djItCYWuH7HgHxqSwBr7UwiATjp0U7egaqKrJv 4jB9LgZ5AeVFksPBCmf4uFLpNMaY8VMpKyHgGZTyfVso0hGOFXSPPVacvBDUUydGBf2n 6Xn9hKtu+OnmhSX5sC5AGrTAWtXVDCeJKSwETkzA7TNgYk2XVlF6ELHv4RatL1Uc8CkS JD5AQdxbq8ywZcs0Hyh4SSOKrGJNPYHKen93cLpb8Le2ljH5gIDPD0kOrzGG2MXejH4N q9cptzQlfB9kxHjxjarL1DeQDYsmKBAtwiXOnHMamm+JzW+dcJhliSnvyrgwhvTfsC+c v2bQ==
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=Q8BwNtgykEUrahx2VasWbBm8zrAE4cCtjPsNHPT6IDk=; b=pnZrveI+1XhRoeLP9sqJFOveAHhvwePRmsKigcuepXLiFUMI+3HKt5g05vFp4GqVVV 44UrPSTVpiFGIDjq+xRdLbhZADqG2sdLJ5XbMRIS7+yGJGtseViTaqvTCxvjVyMIR08g 7qsD0cUuJ54mR5IASaY247ggOxjTFb7AQY3MhxnohlHX3Buwrcf09vpCf0MlD04DnBfD 6EWCQk6GKuNVglAY7RdfI1yv61fox3WOkSNiXTExCvz34zAXMXwmGiU01dXF7Jz3R/Wv XHLNMTnXTZY7Gc9veOQfJIQhjRdb/Qe2c6Dwf9pJZNp8WbzPfK3NqcwQJ7qWfjfwM52o bBZA==
X-Gm-Message-State: AOAM5304uOSrbyXoDbLn62E4a4FMRMHokdtfehN5HgLIdi/fSrdWE7mk 01fVmQAC2Tvc1gZQx5MXB72lF+540hjNaNixT/cuk25kffE=
X-Google-Smtp-Source: ABdhPJwVhCxVSnpSp7uo4vpiYFrezEMyojU8gU1BH939oUeNse3ai96vKGUZu8vH4MLCriQtQ6C73Pk1jYIdmkto2Ks=
X-Received: by 2002:a05:651c:502:: with SMTP id o2mr1206505ljp.318.1605279915499; Fri, 13 Nov 2020 07:05:15 -0800 (PST)
MIME-Version: 1.0
References: <CAHVo=Zk84mfOJr3XSXmrVDBq0XUKoB63ytCR1dhhtM7aehq7qw@mail.gmail.com> <CAAZdMafmO3qKQKegJ7X+MvTjnPvKnO3+B1T-aRME6FZqL-e_1A@mail.gmail.com> <CAOW+2dv8bGfftqZYFnPGpOX+XPzydh4_KJjknhu5FxP-w1neTw@mail.gmail.com>
In-Reply-To: <CAOW+2dv8bGfftqZYFnPGpOX+XPzydh4_KJjknhu5FxP-w1neTw@mail.gmail.com>
From: Victor Vasiliev <vasilvv@google.com>
Date: Fri, 13 Nov 2020 10:05:03 -0500
Message-ID: <CAAZdMacxJ0LbgiQEta1S4=9BHNDVO7LHufp4MaNZLoMa4HuNdg@mail.gmail.com>
To: Bernard Aboba <bernard.aboba@gmail.com>
Cc: Luke Curley <kixelated@gmail.com>, WebTransport <webtransport@ietf.org>
Content-Type: multipart/related; boundary="00000000000021a21005b3fe5b10"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/EVwvoFTSrVDMuqtxN_5yhcXaE6I>
Subject: Re: [Webtransport] HTTP/3 Downgrade
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: Fri, 13 Nov 2020 15:05:21 -0000

On Wed, Nov 11, 2020 at 5:35 PM Bernard Aboba <bernard.aboba@gmail.com>
wrote:

> Victor said:
>
> "Http3Transport without pooling doesn't make that much sense."
>
> [BA] Some Http3Transport use cases depend on pooling between WebTransport
> and HTTP/3 request/responses; others could just be satisfied by
> WebTransport pooling.  I would suggest that we distinguish these two
> requirements, because pooling/sharing a QUIC connection between
> WebTransport instances appears simpler than pooling/sharing a QUIC
> connection between WebTransport and HTTP/3.
>

I'm actually not sure about that.  Managing connection pools can be fairly
hard, so I would not be surprised if implementing pooled WebTransport
without HTTP required more code than just using HTTP/3.

Design-wise, almost all hard problems (things like flow control) are issues
for both.


>
> At IETF 107 RIPT BOF there was a desire expressed to enable media services
> to leverage HTTP infrastructure. Justin Uberti described a use case where
> gRPC would be sent over HTTP/3 to request that the server initiate either a
> reliable stream or flow of datagrams (see below).  This use case appears to
> require pooling of WebTransport and HTTP/3 request/responses (in order to
> simplify firewall traversal).  However, this use case is not easily
> supported using an garden variety HTTP/3 server, which probably could not
> initially be expected to support QUIC datagrams (although it would not be
> hard to support in node.js assuming that a QUIC module was available).
>
> See Slide 7 here:
> https://datatracker.ietf.org/meeting/107/materials/slides-107-ript-rtc-implementation-experiences-00
>
> [image: image.png]
>

I've been thinking about this, and I am not entirely convinced this is
specific to Http3Transport.  There are many reasons why HTTP load balancers
usually work on L7 instead of L4, but the main ones are roughly: (1) this
lets them optimize content (caching, compression, etc), (2) L7 LB can fan
out requests from a single HTTP connection to multiple backends.  The first
one doesn't really apply that much to WebTransport (since we can't do
things like caching), and the second one is just a benefit of
Http3Transport being pooled.  QuicTransport is probably perfectly fine
being load balanced at L4.

>From my perspective, the main benefit of Http3Transport is pooling support,
and pretty much everything else should work for QuicTransport too.  Another
benefit is ability to fall back to Http2Transport when UDP is blocked (I
understand that Http2Transport is not compelling for *existing* systems
that already work over TCP, but if I were to build a *completely new* thing
over WebTransport, I would want it to handle networks with no UDP for me).