Re: [AVTCORE] Response to W3C WebTransport WG Request from IETF 112

Stefan Holmer <holmer@google.com> Wed, 13 April 2022 07:12 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 C81AF3A1FFE for <avt@ietfa.amsl.com>; Wed, 13 Apr 2022 00:12:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.609
X-Spam-Level:
X-Spam-Status: No, score=-17.609 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, 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 8hc06Kq61Je6 for <avt@ietfa.amsl.com>; Wed, 13 Apr 2022 00:12:10 -0700 (PDT)
Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com [IPv6:2607:f8b0:4864:20::d34]) (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 90CB43A2000 for <avt@ietf.org>; Wed, 13 Apr 2022 00:12:10 -0700 (PDT)
Received: by mail-io1-xd34.google.com with SMTP id e22so874624ioe.11 for <avt@ietf.org>; Wed, 13 Apr 2022 00:12:10 -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=Nxm/p2dQejl362092ohFjyvXgx8GLs/Hxofz3ZAju1g=; b=CtMIzeRck1Y/GrpNd2v1ImIJpguWYF3hWdc1bsMmgvr6x/XJZGIO46GWbVs7toELzV x3q/wHHZwvwae+/oUsYxYfhismh/gx/66FJADQekNFm0xrA+11VjPOKoZEzXgf8+Zk07 moLujA3WNL2ZgVNtqJsP/G9m5vmFsKGsiXzXm5JJ4J2GPEV5XlUKDejsf78eum47MRkT X6OtG6uIoFOaZchVGsK+wio8HzLMxGsx0PJkdvB8Aeq7HVwjuHMtgiwRdsnyDs90qWy8 c+nEGNYxaEOrN5+p1QxODDOWxB3cOP4XDgQ3BEgiBtK1wMH6pZqNf0++FrCP9554qiGF RO8Q==
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=Nxm/p2dQejl362092ohFjyvXgx8GLs/Hxofz3ZAju1g=; b=8Ac+e0WmXqQa+y0KRQ/RYlzsuM4fEPKX7l0ADeRSnsDhnRM47T2faHbY8SBntneLU0 cF71OltcoRZLRwm0ju0ELlBpTOGtX4AQk3HyY3jilM4Di5D5QGGecrSABt1ayYQFDeou LqBV2HrlVNEtRjy2xfLxfXG3AsSC5yE7MQtKTiKof5FB1NmELcoDmv0/H1IGA+pePEFP 54/IN4fAPK71m5kyuOpF260whrSm2mnd6G1DvrkdC535MKXQCIDoyL3GvamgSd2QJc3Q 3X8CMlCIkSWnrqKo+WCATFQhTdcHvYLh2FG4SK9AozID3ZlxZ14Qb/cEiDqSOMLWDM7S hKOA==
X-Gm-Message-State: AOAM533XHztlEuPE1zKguwH853FKA68u0Pd3EgmgrAL1ZBHzkb4zSNta jT9Fljq0jybxcwkAkH9mrHS6eNAGxlrMHU+2YZdwJA==
X-Google-Smtp-Source: ABdhPJyqDoT06Ya5a6LHH9tZKvkMRSkz1GeFXryvOUHDe0y1yCynPWrkedscYTkRFtd9d69TMXam7GbTqL2iPpmYbC8=
X-Received: by 2002:a02:ccbb:0:b0:326:2c92:ad6b with SMTP id t27-20020a02ccbb000000b003262c92ad6bmr7879283jap.23.1649833929257; Wed, 13 Apr 2022 00:12:09 -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> <CAEdus3+NMuqTkW1oW6hfBAkT=iqYFOsWasWJXa4s=bETJQLuiw@mail.gmail.com> <9565252a-16a3-55ea-0ff1-c9e64b61afa9@in.tum.de> <42D47490-5055-4BF9-B7C9-BB348812FDDA@stewe.org>
In-Reply-To: <42D47490-5055-4BF9-B7C9-BB348812FDDA@stewe.org>
From: Stefan Holmer <holmer@google.com>
Date: Wed, 13 Apr 2022 09:11:56 +0200
Message-ID: <CAEdus3KVCNuZiP0PgLXDRScY-_-_OwSrgAM3TsGZVm2r13AGSQ@mail.gmail.com>
To: Stephan Wenger <stewe@stewe.org>
Cc: Joerg Ott <ott@in.tum.de>, Bernard Aboba <bernard.aboba@gmail.com>, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>, Jonathan Lennox <jonathan.lennox@8x8.com>, IETF AVTCore WG <avt@ietf.org>, Colin Perkins <csp@csperkins.org>
Content-Type: multipart/alternative; boundary="0000000000004b13a005dc83e581"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/i76KqZ-VtJ-oxpUfRrTtCX4OYqQ>
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: Wed, 13 Apr 2022 07:12:16 -0000

On Tue, Apr 12, 2022 at 7:17 PM Stephan Wenger <stewe@stewe.org> wrote:

> correct. S.
>
> Sent from my iPhone
>
> > On Apr 12, 2022, at 09:11, Joerg Ott <ott@in.tum.de> wrote:
> >
> > Agreed.  But you will want to be to collect congestion control cues from
> > the underlying transport, so you don't have to measure yourself (again).
>

Yes, I agree that's the preferred way.


> >
> > And if I understood Stephan correctly, he was not arguing that the the
> > lower layer should have the information about which application would be
> > run but rather to provide sufficient richness in the API that all kinds
> > of applications on top.
>

That was my understanding too, and I agree with it. :)


> >
> > Jörg
> >
> >> On 12.04.22 14:06, Stefan Holmer wrote:
> >> 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
> <mailto: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>
> >>    https://w3c.github.io/webtransport/#web-transport-stats%E2%91%A0
> >>    <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
> >>    <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
> >>    <mailto:sergio.garcia.murillo@gmail.com>> wrote:
> >>        El lun, 11 abr 2022 18:19, Stephan Wenger <stewe@stewe.org
> >>        <mailto:stewe@stewe.org>> escribió:
> >>            Inline in blue.____
> >>            S.____
> >>            __ __
> >>            __ __
> >>            On 4/11/22, 08:24, "avt on behalf of Jonathan Lennox"
> >>            <avt-bounces@ietf.org <mailto:avt-bounces@ietf.org> on
> >>            behalf of jonathan.lennox@8x8.com
> >>            <mailto:jonathan.lennox@8x8.com>> wrote:____
> >>            __ __
> >>            __ __
> >>            __ __
> >>                 > On Apr 11, 2022, at 1:34 AM, Spencer Dawkins at IETF
> >>            <spencerdawkins.ietf@gmail.com
> >>            <mailto: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 <mailto:avt@ietf.org>
> >>        https://www.ietf.org/mailman/listinfo/avt
> >>        <https://www.ietf.org/mailman/listinfo/avt>
> >>    _______________________________________________
> >>    Audio/Video Transport Core Maintenance
> >>    avt@ietf.org <mailto:avt@ietf.org>
> >>    https://www.ietf.org/mailman/listinfo/avt
> >>    <https://www.ietf.org/mailman/listinfo/avt>
>