Re: [AVTCORE] Response to W3C WebTransport WG Request from IETF 112
Stefan Holmer <holmer@google.com> Tue, 12 April 2022 12:07 UTC
Return-Path: <holmer@google.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id 15DAA3A1C6D
for <avt@ietfa.amsl.com>; Tue, 12 Apr 2022 05:07:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.608
X-Spam-Level:
X-Spam-Status: No, score=-17.608 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, 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,
RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
T_SCC_BODY_TEXT_LINE=-0.01, 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 m8X6U4U21pqY for <avt@ietfa.amsl.com>;
Tue, 12 Apr 2022 05:07:02 -0700 (PDT)
Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com
[IPv6:2607:f8b0:4864:20::d32])
(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 B9E103A1C66
for <avt@ietf.org>; Tue, 12 Apr 2022 05:07:02 -0700 (PDT)
Received: by mail-io1-xd32.google.com with SMTP id x4so21997400iop.7
for <avt@ietf.org>; Tue, 12 Apr 2022 05:07:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112;
h=mime-version:references:in-reply-to:from:date:message-id:subject:to
:cc; bh=Dp5H9OS/f6Gf48m2Yb+DkGGlTmxF0rTrk6iVOidZn9Q=;
b=mSH9mBhwBw3LfB4Bxnb7uU3M1YZXCjPDtb4wEeG9G6KW9gZrMsJ8a6Q56x46DtHhOh
N6RD/UZJAhKMNU3xgDVNbETFdbEwIKY4iB/eQ01UPnLGXoa3u3duG6sDtmHT4XeB96qN
wsTSG4kWr++tPYOcEZxyGXEYf4al0q+g7YloVV7YhNiMH68hEFE/6tOWT20MYiQovmp1
xNW19ZKYssJ1JwQi8ZlpJtuJeRZo1awivkts9H4b6q5RBk8dXjngi5TshGVcLTSYaMjK
NcROZUC0CwzyE1gdJu0+tFPdoBCkkeUOQW17JD/0ziykgThKOhq/r/n+BemOFwhb6axK
nUkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20210112;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to:cc;
bh=Dp5H9OS/f6Gf48m2Yb+DkGGlTmxF0rTrk6iVOidZn9Q=;
b=v9p4ZRt7GUcxdC7C1q9OqJKSybS6mdDKcvy83sQQMNX4+2pD3TFH0hFh/9DFSC/Lzx
CxST8PEJDOR7j+ohWGJc+PbT8viJjuEv9m+kURG0IKCmbTIQ2AhZBc6OKXwM4E+X8MxT
58ShJkBkXTJaaC8oOBxEa9vuxP1XBTNcObDXVsi6rRnJ+8NKVSzI+7Tx//Km8f9tApu4
J7e8kHdhFVaWTqukUqqbDJmWIp8pUGtDOw0cDqOkyhtI13Tu/DZhrKmHgPlo30PqBjx5
wyhnpql8S74hXY1AnMMV7ialJw9e8q8/TVy9K/6r3kP6FX5PDdjly9hsws7pQaXIR19G
gLCg==
X-Gm-Message-State: AOAM532dw8phP9kszREDbPJN8TmrFyyudTZrsOFz8YUCsZvFDXnvH0gX
nCtHhtY6TEhhiKoct6WXotZZVlW1zfvNwMGY980log==
X-Google-Smtp-Source: ABdhPJziIWKc1pWy/nukKLwBU20E1QGGMXxGiVjcN18EtM2feuJoDuUliu/8Gzal4/uTbHmwXYmG1HAbcY14py52GoE=
X-Received: by 2002:a02:ccbb:0:b0:326:2c92:ad6b with SMTP id
t27-20020a02ccbb000000b003262c92ad6bmr5685314jap.23.1649765221522; Tue, 12
Apr 2022 05:07:01 -0700 (PDT)
MIME-Version: 1.0
References: <CAOW+2dvCh637LfwX23xNuQo8q=GGiDkWSoypYL0XWGV_ERmuDg@mail.gmail.com>
<6AC334A4-C1C5-426C-8151-B7F12659C47B@csperkins.org>
<CAKKJt-ckZfBecbEtOQpRCok21RZJPQ7wT-uhPz4ozFWSNYi-6g@mail.gmail.com>
<4F54EF05-D39E-4E5D-931B-D0F165593492@8x8.com>
<94580C1B-1427-4FE3-AD63-00F4DF8369F7@stewe.org>
<CA+ag07bAqeSXYp7iYO1MJz+XLPxgJiPH0O89vNTNo0zq64Rvcg@mail.gmail.com>
<CAOW+2duaFi+GoqLj8ua49UYriD4tYLBRm8ctp2k=1X8ki4EEdA@mail.gmail.com>
In-Reply-To: <CAOW+2duaFi+GoqLj8ua49UYriD4tYLBRm8ctp2k=1X8ki4EEdA@mail.gmail.com>
From: Stefan Holmer <holmer@google.com>
Date: Tue, 12 Apr 2022 14:06:47 +0200
Message-ID: <CAEdus3+NMuqTkW1oW6hfBAkT=iqYFOsWasWJXa4s=bETJQLuiw@mail.gmail.com>
To: Bernard Aboba <bernard.aboba@gmail.com>
Cc: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>,
Jonathan Lennox <jonathan.lennox@8x8.com>, Stephan Wenger <stewe@stewe.org>,
IETF AVTCore WG <avt@ietf.org>, =?UTF-8?B?SsO2cmcgT3R0?= <ott@in.tum.de>,
Colin Perkins <csp@csperkins.org>
Content-Type: multipart/alternative; boundary="000000000000fe38a605dc73e5ab"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/PNWw5N3B_-uBEgfNtJfR-Xatzcw>
Subject: Re: [AVTCORE] Response to W3C WebTransport WG Request from IETF 112
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>,
<mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>,
<mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Apr 2022 12:07:08 -0000
I agree with Sergio here, I think for WebTransport to be really useful for RTC there's a need to have app level control of congestion control. Based on experience from libwebrtc, the congestion control is constantly being improved, and I think it's far from a solved problem. To allow for RTC apps on WebTransport to be competitive I think they'd benefit a lot from being able to innovate on the congestion control side. On Mon, Apr 11, 2022 at 10:08 PM Bernard Aboba <bernard.aboba@gmail.com> wrote: > Sergio said: > > "I don't think that the webtransport api and the browser stack should have > this information, it is completely up to the application to control what is > the behaviour based on the current bw estimation. > > Moreover, I doubt that the webtransport stack could provide a valid bw > estimation usable by the app at all. > > IMHO the bwe needs to be calculated at the js app level and just needs the > quic cc not mess too much and if possible provide the reception time stats > for the sent packets" > > [BA] It is left to the Javascript application to decide the transport > mode, audio/video multiplexing approach, loss recovery strategy and > mechanism for controlling the encoder rate. The WebTransport API doesn't > know and doesn't care whether the transported media is G711, G722, Opus, > VP8/VP9, H.264, AV1, etc. Currently there is no priority support, so it's > up to the application how to apportion the bandwidth between audio and > video streams. > > The current WebTransport stats are very bare bones: > https://w3c.github.io/webtransport/#web-transport-stats > https://w3c.github.io/webtransport/#web-transport-stats%E2%91%A0 > > Some stream stats are in the works (see: > https://github.com/w3c/webtransport/pull/395) but they also aren't > elaborate (at least compared with WebRTC-stats). > > You'll notice there is no bandwidth estimate, nor is any info provided on > acknowledgements or reception times. Since a Javascript application using > the WebTransport API is not integrated with the QUIC stack, info on ACKs > was not considered relevant since the application could not be presumed to > have received a datagram just because it was ACK'd at the QUIC layer; the > datagram could have been subsequently dropped in the browser datagram > reception queue after being ACK'd. Similarly, in the browser, the > reception time doesn't reflect the total one-way delay because there are > additional delays and queues both on the sender and receiver side. > You could imagine a WebTransport that had a circuit-breaker style CC and either exposed feedback only about the send and arrival time of each packet to the application, without any guarantees of whether the application on the other end actually got hold of the packet in the end. With a circuit-breaker style CC you could also leave it to the app to handle that feedback/signaling entirely in the app-layer, at the cost of additional overhead. > > > However, the receiver can calculate the goodput on streams and datagram > flows and provide this info to the sender to help with encoder rate > adaptation. > > On Mon, Apr 11, 2022 at 12:10 PM Sergio Garcia Murillo < > sergio.garcia.murillo@gmail.com> wrote: > >> >> >> El lun, 11 abr 2022 18:19, Stephan Wenger <stewe@stewe.org> escribió: >> >>> Inline in blue. >>> >>> S. >>> >>> >>> >>> >>> >>> On 4/11/22, 08:24, "avt on behalf of Jonathan Lennox" < >>> avt-bounces@ietf.org on behalf of jonathan.lennox@8x8.com> wrote: >>> >>> >>> >>> >>> >>> >>> >>> > On Apr 11, 2022, at 1:34 AM, Spencer Dawkins at IETF < >>> spencerdawkins.ietf@gmail.com> wrote: >>> >>> > >>> >>> > But even if we don't need to choose between media-oriented >>> congestion controllers, we would need a QUIC extension to allow us to say >>> "we're doing media, so don't use the congestion controllers you might use >>> for non-media traffic". >>> >>> > >>> >>> > I suspect the QUIC working group would be a fine place to work on >>> that extension (and if we did it anywhere else, QUIC would either ask, or >>> be asked, to review that work anyway). >>> >>> >>> >>> It’s not clear to me that you need a *protocol* extension to signal >>> this? Monolithically, a sender knows that it’s sending media, and can >>> choose its congestion control algorithm appropriately. >>> >>> >>> >>> You definitely would need *API* signaling to indicate from the >>> application to the QUIC stack that media is being sent, and thus an >>> appropriate low-latency congestion controller should be chosen. This is >>> absolutely relevant to the W3C API, and thus should probably be >>> communicated in the liaison statement response. >>> >>> >>> >>> Right. And ideally, that API signaling would be powerful enough to >>> differentiate between different media and their requirements. For example: >>> >>> -G711 audio has zero elasticity; if CC were to kick in, the realistic >>> choices are to ignore the CC, or terminate the session. No middle ground. >>> >>> -Multi-resolution pre-coded video (think DASH) has some flexibility, but >>> bitrate adjustment can take many hundred milliseconds to seconds. >>> >>> -a software-based real-time video encoder can be built to have a lot of >>> flexibility, on very short notice—but, the application/user may not like >>> the encoder to exercise that flexibility. For example, broadcast >>> contribution applications and their encoders would not want to start >>> skipping frames, go down with the resolution, or too far up with the QP, >>> even if that would make the CC happy. Video conferencing, OTOH, could cope >>> with all of that, up to a certain pain-point. >>> >> These are good examples of why CC for media (and RTC in particular) is complicated, and probably one of the reasons why (AFAIK) no RTC CC implementations that use off-the-shelf algorithms or interfaces. You may want to (try to) be smart about how you evaluate whether the bandwidth of the connection allows you to turn on a higher resolution video stream, to avoid having to waste bits on padding data. You may not want to saturate the connection at all times to make sure the CC operates correctly. In fact, you may want to make sure to only probe for higher bandwidth when you feel like it's "safe" to do so from a media quality view. This would likely require some closer interaction with the CC. > >> I don't think that the webtransport api and the browser stack should have >> this information, it is completely up to the application to control what is >> the behaviour based on the current bw estimation. >> >> Moreover, I doubt that the webtransport stack could provide a valid bw >> estimation usable by the app at all. >> >> IMHO the bwe needs to be calculated at the js app level and just needs >> the quic cc not mess too much and if possible provide the reception time >> stats for the sent packets. >> >> >> Best regards >> Sergio >> _______________________________________________ >> Audio/Video Transport Core Maintenance >> avt@ietf.org >> https://www.ietf.org/mailman/listinfo/avt >> > _______________________________________________ > Audio/Video Transport Core Maintenance > avt@ietf.org > https://www.ietf.org/mailman/listinfo/avt >
- [AVTCORE] Response to W3C WebTransport WG Request… Bernard Aboba
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Colin Perkins
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Spencer Dawkins at IETF
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Colin Perkins
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Sergio Garcia Murillo
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Jonathan Lennox
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Stephan Wenger
- Re: [AVTCORE] Response to W3C WebTransport WG Req… David Baldassin
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Sergio Garcia Murillo
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Bernard Aboba
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Stefan Holmer
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Joerg Ott
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Stephan Wenger
- Re: [AVTCORE] Response to W3C WebTransport WG Req… Stefan Holmer