Re: [AVTCORE] draft-ietf-avtcore-rtp-over-quic: Congestion Control and Rate Control

Bernard Aboba <bernard.aboba@gmail.com> Mon, 16 October 2023 18:07 UTC

Return-Path: <bernard.aboba@gmail.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 8035EC151079 for <avt@ietfa.amsl.com>; Mon, 16 Oct 2023 11:07:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.895
X-Spam-Level: **
X-Spam-Status: No, score=2.895 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, GB_SUMOF=5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L9oIMRjHzrC6 for <avt@ietfa.amsl.com>; Mon, 16 Oct 2023 11:07:16 -0700 (PDT)
Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2D8EEC151084 for <avt@ietf.org>; Mon, 16 Oct 2023 11:07:12 -0700 (PDT)
Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-27d113508bfso3900977a91.3 for <avt@ietf.org>; Mon, 16 Oct 2023 11:07:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697479631; x=1698084431; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=yQ/+A2qPmYsaW7C5T+MXZPdNZ3WcUGbrN9W5fJf3bHI=; b=Hh1H561Rt3oADzSJ9QI065uzwp5Y1Olu2OfjHtQ9VH1MEC4D11baPzi+WwCETEhTEC pSq6M6gsKTH59PCm8O9MfN4HfRWoT+FalaXNxhR1BomJAffeYH8jExFIBibbqixPeK9j monRk/fHTUufW+WY4Jv105CV84kzJeQsoJNG+AG8SEI+cbFFS1Zu4MJ9wLPBtqqE+E4Q yPZ8boqWhJEey9oX5HtT7ddra93n/1sfxYTD9OG8Aa/ECaaI/vjIihNeJJY9YE/LN/sJ gKonVk9hRClbNpmlS+kE7JQnazKmML9TwXMxFCO7MYAgDb+nyELAMzgyGqdNHVYyKAg8 XcHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697479631; x=1698084431; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yQ/+A2qPmYsaW7C5T+MXZPdNZ3WcUGbrN9W5fJf3bHI=; b=U4fZ1JdKyjRhSjxDQeaxQt2b5XObIHHggNjiCqcXCrfb8GWddVi++rqD7Ly8DQg4nc ri6oaFgWcIf1T1gv0DdnXAyxoHMQtZU0Sx+kr1QAf8HeI9uKogdDC5sSxEZR2YxvJwb1 G4oRtADUSPWS+IgSaIiyLNBPq0bOTlCC5zZFRnxW0VBw9PXxcK2KI4Ri2+jRuMtlQiLz C4cFahkuS5BCQ0lCCo7PKAoQBMHvzCWJQ6/Yl1iC5VZFNKzx02xC0I4he0oT+UNM219x jKwbgndCflP0Idac77O60YxjYsNmaEmDbbRc//x3tc0bBClzyxL20QfX4c/hzwmqWv9p 589g==
X-Gm-Message-State: AOJu0YwS94X1nIsTn9FSGZl6BLyZ8L+ZgvEnPjGlfMh2zz0hboE7gNSj 5+muJU5Kwum1qa4CXXSM62HrxLD7joXbC7SJDZ0=
X-Google-Smtp-Source: AGHT+IGlP06n6XXnRMpRYxg44+bOi8FP4bxT80JO/Uy1KLVSonjaJfG8eJ/gEscu6agHoShbC7rfgiMMCv4okyEEPMc=
X-Received: by 2002:a17:90b:23cc:b0:27d:e1c:5347 with SMTP id md12-20020a17090b23cc00b0027d0e1c5347mr13780293pjb.11.1697479631175; Mon, 16 Oct 2023 11:07:11 -0700 (PDT)
MIME-Version: 1.0
References: <CAOW+2dvncSX52BvkbCdpXR8tOMq950XKEu18ZmPF3dGJt+3D+Q@mail.gmail.com> <dbcd27a7-065d-2b60-b78e-40b4df0c153a@tum.de> <CAOW+2dvbvgjW-SH=ob+B2wExxBYok+qeS5e_WR72YDE5sc0ynA@mail.gmail.com>
In-Reply-To: <CAOW+2dvbvgjW-SH=ob+B2wExxBYok+qeS5e_WR72YDE5sc0ynA@mail.gmail.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Mon, 16 Oct 2023 11:07:01 -0700
Message-ID: <CAOW+2dtXJNRn4o6Gbba6j+YaJ3KYu6cYUzpQLYR4os4NYNLFZA@mail.gmail.com>
To: Mathis Engelbart <mathis.engelbart@tum.de>
Cc: IETF AVTCore WG <avt@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006e04f50607d946ef"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/sCS_MPwAPGgeVrW6rEXyXbJJecc>
Subject: Re: [AVTCORE] draft-ietf-avtcore-rtp-over-quic: Congestion Control and Rate Control
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.39
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: Mon, 16 Oct 2023 18:07:20 -0000

The text relating to QUIC and RTP is somewhat confusing;

Like any other application on the internet, RoQ applications need a
mechanism to
perform congestion control to avoid overloading the network. QUIC is a
congestion-controlled transport protocol. RTP does not mandate a single
congestion control mechanism. RTP suggests that the RTP profile defines
congestion control according to the expected properties of the application's
environment.

[BA] When run over QUIC, RoQ has to live with QUIC congestion control; this
is not defined by the profile.
So this paragraph is confusing.


This document discusses aspects of transport level congestion control in
{{cc-quic-layer}} and application layer rate control in
{{rate-adaptation-application-layer}}. It does not mandate any specific
congestion control or rate adaptation algorithm for QUIC or RTP.

[BA] Within RoQ, QUIC does not handle rate adaptation, nor does RTP handle
congestion control.
So this sentence is also confusing.

On Mon, Oct 16, 2023 at 11:03 AM Bernard Aboba <bernard.aboba@gmail.com>
wrote:

> The definition of rate adaptation still has some issues.
>
> Rate Adaptation:
> : A mechanism that adjusts the sending rate of an application in order to
> maximize the amount of information that is sent to a receiver without
> causing
> buffer bloat, when queues build beyond a reasonable amount, or jitter, when
> interpacket arrival times fluctuate due to queuing delays.  Rate
> adaptation is
> one way to respond to sending rate limitations imposed by congestion
> control
> algorithms. When a sender has multiple media streams to the receiver, the
> sum of
> all sending rates for media streams must not be high enough to cause
> congestion
> on the path these media streams share between sender and receiver.
>
> [BA]  This definition still mixes congestion control concepts with rate
> control ones.
> It is the congestion control algorithm that estimates the sending rate.
> It can
> take into account loss, as well as queuing effects, depending on the
> algorithm.
> The use of "must not" is confusing because it suggests normative language
> and
> because a rate set in excess of that set by congestion control cannot cause
> congestion - the packets will just be queued or dropped.
>
> I would suggest simplifying the definition as follows:
>
> Rate adaptation
> A mechanism that adjusts the sending rate of an application in order to
> respond to sending rate limitations imposed by congestion control
> algorithms.
>
>
>
>
> On Mon, Oct 16, 2023 at 9:38 AM Mathis Engelbart <mathis.engelbart@tum.de>
> wrote:
>
>> Hi,
>>
>> We discussed some of these issues on GitHub and opened a Pull Request to
>> address them:
>>
>> Issue: https://github.com/mengelbart/rtp-over-quic-draft/issues/128
>> Pull Request: https://github.com/mengelbart/rtp-over-quic-draft/pull/134
>>
>> A diff of the documents can be seen here:
>>
>>
>> https://author-tools.ietf.org/api/iddiff?url_1=https://mengelbart.github.io/rtp-over-quic-draft/draft-ietf-avtcore-rtp-over-quic.txt&url_2=https://mengelbart.github.io/rtp-over-quic-draft/fix/128-congestion-and-rate-control/draft-ietf-avtcore-rtp-over-quic.txt
>>
>> We moved some of the points Bernard made into separate issues, for which
>> we will open separate pull requests:
>>
>> https://github.com/mengelbart/rtp-over-quic-draft/issues/135
>> https://github.com/mengelbart/rtp-over-quic-draft/issues/141
>>
>> If no one objects, we will merge pull request #134 by the end of the
>> week to include it in a new submission, which we will make before the
>> deadline next Monday.
>>
>> Best,
>> Mathis
>>
>> On 9/24/23 23:48, Bernard Aboba wrote:
>> > Looking over the coverage Congestion Control and Rate Control, the two
>> > topics appear to be conflated and also there appear to be some issues
>> > that have not been fully considered.
>> >
>> > Section 1.2.2
>> >
>> > While the effect of QUIC's response to congestion means that some RTP
>> > packets will arrive at the receiver later than a user of the RTP flow
>> > might prefer, it is still preferable to "ceasing transmission"
>> > completely until the RTP sender has a reason to believe that restarting
>> > the flow will not result in congestion.¶
>> > <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-1.2.2-3
>> >
>> >
>> > [BA] In contrast to circuit breakers, which do not restrict the ability
>> > to send RTCP feedback, QUIC congestion control affects RTCP feedback,
>> > not just RTP.  So saying QUIC congestion control is "preferable" seems
>> > questionable.
>> >
>> > Moreover, when a single QUIC connection is used to multiplex both
>> > RTP-RTCP and non-RTP packets as described in Section 1.2.5
>> > <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#single-path>,
>> the QUIC connection will still be Internet-safe, with no coordination
>> required.
>> >
>> > [BA] While it may be "Internet-safe", delays in RTCP feedback are
>> likely
>> > to destabilize rate control as well as resulting in challenges to A/V
>> > sync.  So not sure that "Internet-safe" is the only important metric
>> here.
>> >
>> > Section 1.2.3
>> >
>> > One word of caution is in order - RTP implementations may rely on at
>> > least some minimal periodic RTCP feedback, in order to determine that
>> an
>> > RTP flow is still active, and is not causing sustained congestion (as
>> > described in[RFC8083 <https://www.rfc-editor.org/rfc/rfc8083>], but
>> > since this "periodicity" is measured in seconds, the impact of this
>> > "duplicate" feedback on path bandwidth utilization is likely close to
>> zero.
>> >
>> > [BA] Under congestion, RTCP feedback can potentially be delayed
>> > substantially. Here is the issue is not "bandwidth utilization" but
>> > whether RTCP receives the transport treatment required for control
>> > traffic.  Note also that similar considerations apply to treatment of
>> > audio vs. video. Serious problems with a/v sync are possible (or even
>> > likely) under congestion.
>> >
>> > Section 1.2.4
>> >
>> > This is especially useful in certain conferencing topologies, where
>> > otherwise senders have no choice but to use the lowest path MTU for all
>> > conference participants, but even in point-to-point RTP sessions, this
>> > also allows senders to piggyback audio media in the same UDP packet as
>> > video media, for example, and also allows QUIC receivers to piggyback
>> > QUIC ACK frames on any QUIC frames being transmitted in the other
>> > direction.¶
>> > <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-1.2.4-2
>> >
>> >
>> > [BA] The draft does not talk much about piggybacking of audio and video
>> > media, but we have seen some implementations experimenting with this to
>> > avoid audio/video sync issues without having to resort to other
>> > techniques such as prioritization.  Is this something that deserves
>> more
>> > discussion?
>> >
>> > Section 2
>> >
>> > Rate control:
>> >
>> >     A congestion control mechanism that helps a sender determine and
>> >     adjust its sending rate, in order to maximize the amount of
>> >     information that is sent to a receiver, without causing queues to
>> >     build beyond a reasonable amount, causing "buffer bloat" and
>> >     "jitter". Rate adapation is one way to accomplish congestion control
>> >     for real-time media, especially when a sender has multiple media
>> >     streams to the receiver, because the sum of all sending rates for
>> >     media streams must not be high enough to cause congestion on the
>> >     path these media streams share between sender and receiver.¶
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-2-4.18.1
>> >
>> >
>> >
>> >     [BA] Rate control and congestion control are distinct. So the
>> >     definition here doesn't seem right, particularly for RoQ where
>> >     congestion control is built into QUIC while rate adaptation is
>> >     application and even codec-specific.
>> >
>> >
>> >     Overall, a better way to think of the distinction is that QUIC
>> >     congestion control limits the amount that can be sent. Since
>> >     realtime applications seek to achieve low latency, they will
>> >     typically prefer to respond to bandwidth limitations by controlling
>> >     rate, rather than experiencing queueing delays or increased loss.
>> >
>> >
>> >     But since congestion control and rate control are distinct and are
>> >     handled at different layers, rate control is not "one way to
>> >     accomplish congestion control" but rather "one way to respond to
>> >     send rate limitations imposed by congestion control algorithms".
>> >
>> >
>> >     Section 3
>> >
>> >
>> >     A rate adaptation algorithm can be plugged in to adapt the media
>> >     bitrate to the available bandwidth. This document does not mandate
>> >     any specific rate adaptation algorithm, because the desired response
>> >     to congestion can be application and codec-specific. For example,
>> >     adjusting quantization in response to congestion may work well in
>> >     many cases, but if what's being shared is video that includes text,
>> >     maintaining readability is important.
>> >
>> >
>> >     [BA] This text is good. I believe it should be placed earlier in the
>> >     document (perhaps in the scope section).
>> >
>> >
>> >     As of this writing, the IETF has produced two Experimental-track
>> >     rate adaptation specifications, Network-Assisted Dynamic Adaptation
>> >     (NADA) [RFC8698 <https://www.rfc-editor.org/rfc/rfc8698>] and
>> >     Self-Clocked Rate Adaptation for Multimedia (SCReAM) [RFC8298
>> >     <https://www.rfc-editor.org/rfc/rfc8298>]. These rate adaptation
>> >     algorithms require some feedback about the network's performance to
>> >     calculate target bitrates. Traditionally this feedback is generated
>> >     at the receiver and sent back to the sender via RTCP.
>> >
>> >
>> >     [BA] Within the context of the previous paragraph is it correct to
>> >     characterize these specifications as "rate adaptation algorithms"?
>> >     The previous paragraph mentions QP-based rate control which is
>> >     indeed codec and application specific. NADA, SCReAM, gcc, etc. were
>> >     developed as congestion control algorithms and therefore they do not
>> >     provide application and codec-specific rate control mechanisms.
>> >
>> >
>> >     Section 6
>> >
>> >
>> >     Like any other application on the internet, RoQ applications need a
>> >     mechanism to perform congestion control to avoid overloading the
>> >     network. While any generic congestion controller can protect the
>> >     network, this document takes advantage of the opportunity to use
>> >     rate adaptation mechanisms that are designed to provide superior
>> >     user experiences for real-time media applications.¶
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6-1
>> >
>> >
>> >     [BA] This paragraph appears to conflate congestion control and rate
>> >     control. Congestion control is built into QUIC, and RoQ therefore
>> >     inherits it. So RoQ applications have a mechanism for congestion
>> >     control.
>> >
>> >     Since earlier it was stated that there is no normative guidance on
>> >     rate control, how can "this document take advantage of the
>> >     opportunity to use rate adaptation mechanisms that are designed to
>> >     provide superior user experiences"?
>> >
>> >     A wide variety of rate adaptation algorithms for real-time media
>> >     have been developed (for example, "Google Congestion Controller"
>> >     [I-D.draft-ietf-rmcat-gcc
>> >     <https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc-02>]).
>> >     The IETF has defined two algorithms in two Experimental RFCs (e.g.
>> >     SCReAM [RFC8298 <https://www.rfc-editor.org/rfc/rfc8298>] and NADA
>> >     [RFC8698 <https://www.rfc-editor.org/rfc/rfc8698>]). These rate
>> >     adaptation algorithms for RTP are specifically tailored for
>> >     real-time transmissions at low latencies, but this section would
>> >     apply to any rate adaptation algorithm that meets the requirements
>> >     described in "Congestion Control Requirements for Interactive
>> >     Real-Time Media" [RFC8836 <https://www.rfc-editor.org/rfc/rfc8836
>> >].
>> >
>> >
>> >     [BA] As noted earlier, these are not rate control algorithms (e.g.
>> >     per-frame QP), they are congestion control algorithms.
>> >
>> >
>> >     This document defines two architectures for congestion control and
>> >     bandwidth estimation for RoQ, depending on whether most rate
>> >     adaptation is performed within a QUIC implementation at the
>> >     transport layer, as described in Section 6.1
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#cc-quic-layer>,
>> or within an RTP application layer, as described in Section 6.2 <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#cc-application-layer>,
>> but this document does not mandate any specific congestion control or rate
>> adaptation algorithm for either QUIC or RTP.¶ <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6-3
>> >
>> >
>> >     [BA] QUIC implementations cannot implement rate control, because as
>> >     you state earlier, that is application and/or codec-specific. So
>> >     again you seem to be conflating congestion control and rate control.
>> >
>> >     It is assumed that the congestion controller in use provides a
>> >     pacing mechanism to determine when a packet can be sent to avoid
>> >     bursts. The currently proposed congestion control algorithms for
>> >     real-time communications (e.g. SCReAM and NADA) provide such pacing
>> >     mechanisms. The use of congestion controllers which don't provide a
>> >     pacing mechanism is out of scope of this
>> >     document.<
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6-6
>> >
>> >
>> >     [BA] In this paragraph you correctly refer to SCReaM and NADA as
>> >     congestion control algorithms. Please use this terminology
>> >     consistently.
>> >
>> >     Section 6.1
>> >
>> >     If a QUIC implementation is to perform rate adaptation in a way that
>> >     accommodates real-time media, one way for the implementation to
>> >     recognize that it is carrying real-time media is to be explicitly
>> >     told that this is the case. This document defines a new "TLS
>> >     Application-Layer Protocol Negotiation (ALPN) Protocol ID", as
>> >     described in Section 4
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#alpn>,
>> that a QUIC implementation can use as a signal to choose a real-time
>> media-centric rate controller, but this is not required for ROQ
>> deployments.¶ <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6.1-2
>> >
>> >
>> >     [BA] Again, QUIC implementations do not perform rate adaptation.
>> >     That is an application layer function. I think you mean "perform
>> >     congestion control" here.
>> >
>> >     However, congestion control is orthogonal to the use of an ALPN, so
>> >     mixing these two concepts is problematic.
>> >
>> >     If congestion control is to be applied at the transport layer, it is
>> >     RECOMMENDED that the QUIC Implementation uses a congestion
>> >     controller that keeps queueing delays short to keep the transmission
>> >     latency for RTP and RTCP packets as low as possible, such as the
>> >     IETF-defined SCReAM [RFC8298
>> >     <https://www.rfc-editor.org/rfc/rfc8298>] and NADA [RFC8698
>> >     <https://www.rfc-editor.org/rfc/rfc8698>] algorithms.¶
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6.1-3
>> >
>> >
>> >     [BA] You might also mention L4S here. This seems more likely to be
>> >     supported with QUIC than the algorithms you mention in the draft.
>> >
>> >     If congestion control is done by the QUIC implementation, the
>> >     application needs a mechanism to query the currently available
>> >     bandwidth to adapt media codec configurations. The employed
>> >     congestion controller of the QUIC connection SHOULD expose such an
>> >     API to the application. If a current bandwidth estimate is not
>> >     available from the QUIC congestion controller, the sender can either
>> >     implement an alternative bandwidth estimation at the application
>> >     layer as described inSection 6.2
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#cc-application-layer>or
>> a receiver can feedback the observed bandwidth through RTCP, e.g.,
>> using[I-D.draft-alvestrand-rmcat-remb <
>> https://datatracker.ietf.org/doc/html/draft-alvestrand-rmcat-remb-03>].¶
>> <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6.1-5
>> >
>> >
>> >     [BA] This paragraph is good, since it describes how the QUIC
>> >     implementation provides info to the application, to be used in rate
>> >     control. I think you need to be more clear about the relationship
>> >     throughout the document. But the normative language is problematic
>> >     because this document cannot have normative API dependencies. Also,
>> >     you need to be careful with references to drafts which will not be
>> >     published as RFCs, particularly REMB which has been deprecated in
>> >     favor of transport CC.
>> >
>> >
>> >     Section 6.2
>> >
>> >     The rate adaptation algorithms for RTP are specifically tailored for
>> >     real-time transmissions at low latencies, as described in Section 6
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#congestion-control>.
>> The available rate adaptation algorithms expose a |target_bitrate| that can
>> be used to dynamically reconfigure media codecs to produce media at a rate
>> that can be sent in real-time under the observed network conditions.¶ <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6.2-2
>> >
>> >
>> >     [BA] Again, there is a conflation of rate adaptation and congestion
>> >     control. In this paragraph "congestion control algorithms" should be
>> >     used instead of "rate control algorithms".
>> >
>> >     Section 6.3
>> >
>> >     Because QUIC is a congestion-controlled transport, as described in
>> >     Section 6.1
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#cc-quic-layer>,
>> and RTP applications can also perform congestion control and rate
>> adaptation,
>> >
>> >     [BA] Since congestion control is built into QUIC, RoQ applications
>> >     can only do rate control, not congestion control.
>> >
>> >       * Application-limited Media Flows - if an application chooses RTP
>> >         as its transport mechanism, the goal will be maximizing the user
>> >         experience, not maximizing path bandwidth utilization. If the
>> >         application is, in fact, transmitting media that does not
>> >         saturate path bandwidth, and paces its transmission, more
>> >         heavy-handed congestion control mechanisms (drastic reductions
>> >         in the sending rate when loss is detected, with much slower
>> >         increases when losses are no longer detected) should rarely come
>> >         into play. If the application chooses ROQ as its transport,
>> >         sends enough media to saturate the path bandwidth, and does not
>> >         adapt its own sending rate, drastic measures will be required in
>> >         order to avoid sustained or oscillating congestion along the
>> >         path.¶
>> >         <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-6.3-2.1
>> >
>> >
>> >
>> >     [BA] This document probably isn't the right place to discuss this,
>> >     but it is a very big issue that has limited the deployment of the
>> >     algorithms produced by RMCAT, because probing was supported by gcc
>> >     and not in the NADA, SCreAM, etc. In practice, fixing this problem
>> >     requires probing controlled by the CC algorithm at the QUIC layer.
>> >     So far I'm not aware of any QUIC implementations which support this
>> >     kind of probing.
>> >
>> >
>> >     ¶
>> >     <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-3-3
>> >
>> >
>> >
>> > ¶
>> > <
>> https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic-05#section-1.2.3-2
>> >
>> >
>> >
>> > _______________________________________________
>> > Audio/Video Transport Core Maintenance
>> > avt@ietf.org
>> > https://www.ietf.org/mailman/listinfo/avt
>>
>