Re: [rmcat] Feedback from WGLC for draft-ietf-rmcat-rtp-cc-feedback-07

Colin Perkins <csp@csperkins.org> Wed, 05 January 2022 13:04 UTC

Return-Path: <csp@csperkins.org>
X-Original-To: rmcat@ietfa.amsl.com
Delivered-To: rmcat@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 063263A0653 for <rmcat@ietfa.amsl.com>; Wed, 5 Jan 2022 05:04:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=csperkins.org
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 pw31wNhpGL59 for <rmcat@ietfa.amsl.com>; Wed, 5 Jan 2022 05:04:07 -0800 (PST)
Received: from balrog.mythic-beasts.com (balrog.mythic-beasts.com [IPv6:2a00:1098:0:82:1000:0:2:1]) (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 1CDC03A067B for <rmcat@ietf.org>; Wed, 5 Jan 2022 05:04:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=csperkins.org; s=mythic-beasts-k1; h=To:Date:From:Subject; bh=iM+Bl+yrZtMC4OE7HjN/7s2c6a8hQyGaHxUe3IVc6G4=; b=PooXFBZL9HO0mxEyNeY8rVzD8g bEknY99IHexnJrUadPAXxLdXnwV74dne3Qs9rA7YrPqd6tBOL9y34+FT0lLdiEBL5nsc/Kx2I5rx3 4VxImpUOSJYI6qlsqlCkPQLT1jO/7LgUv8WCJ5BCSZhUvNR4zmyXaT4mpF9TVf67hSVleW+aVctqk MT4gtieietZdD1OslLiB39bUJvrvl6mHVMKgBlf5DjJ5Bx2aKXoVxYEsgJNuxXOJhuRmMdNcKBi9X X/Hm93DAG7rF1eKYzY4LvugBUfPKIEGW1Ci/ZyKDRtzxtpWQh7LJRysxVMqkWG0ZAizZwtD4XMuvc OP9r37lw==;
Received: from [81.187.2.149] (port=48248 helo=[192.168.0.67]) by balrog.mythic-beasts.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92.3) (envelope-from <csp@csperkins.org>) id 1n55xM-0007Ex-Es; Wed, 05 Jan 2022 13:04:00 +0000
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\))
From: Colin Perkins <csp@csperkins.org>
In-Reply-To: <e39800d3-1b74-b7c1-6250-11e676cf3862@erg.abdn.ac.uk>
Date: Wed, 05 Jan 2022 13:03:32 +0000
Cc: rmcat@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <252B2B6D-A51C-4BF3-B091-17257681FC49@csperkins.org>
References: <6551689d-6b0e-d6f7-8115-532a778cf0b9@erg.abdn.ac.uk> <A35280A5-B828-4858-A128-BFB680920AD9@csperkins.org> <e39800d3-1b74-b7c1-6250-11e676cf3862@erg.abdn.ac.uk>
To: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
X-Mailer: Apple Mail (2.3445.104.21)
X-BlackCat-Spam-Score: 4
Archived-At: <https://mailarchive.ietf.org/arch/msg/rmcat/3JKTw3Mfvm9br3grABo5XjoyCQI>
Subject: Re: [rmcat] Feedback from WGLC for draft-ietf-rmcat-rtp-cc-feedback-07
X-BeenThere: rmcat@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <rmcat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rmcat>, <mailto:rmcat-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rmcat/>
List-Post: <mailto:rmcat@ietf.org>
List-Help: <mailto:rmcat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rmcat>, <mailto:rmcat-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jan 2022 13:04:12 -0000

> On 28 Dec 2021, at 17:56, Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote:
> On 28/12/2021 16:57, Colin Perkins wrote:
>> Hi Gorry,
>> 
>> Thank you for the helpful comments. Some responses inline, and I’ve updated the draft to try to address your feedback.
>> 
>> Cheers,
>> Colin
> 
> Thanks for doing this - these all seem reasonable updates! I note you dodged the provacative probe into "a sensible minimum frequency", which I think ought to have been asked, but your answer was sufficient.

Thanks – that’s an interesting problem, but outside the scope of what this draft can address, except as general guidance. 

Colin



> I think the document is now good.
> 
> Best wishes,
> 
> Gorry
> 
>> 
>> 
>>> On 8 Dec 2021, at 10:41, Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote:
>>> 
>>> I read  draft-ietf-rmcat-rtp-cc-feedback-07 in response to a WGLC request. I think this provides useful information to help guide developers and configuation of systems and would support publication.
>>> 
>>> I expect the calculations should be explicitly reviewed by a relevant expert, but have no doubts about them myself. I reviewed previous versions and I do have  comments, which all appear to be editorial - rather than questioning the advice.
>>> 
>>> Sorry for the delay in submitting this review.
>>> 
>>> Best wishes,
>>> 
>>> Gorry
>>> 
>>> ---
>>> 
>>> TEXT:
>>> To ensure the
>>>    stability of the network in the face of this use, WebRTC systems need
>>>    to use some form of congestion control for their RTP-based media
>>>    traffic.
>>> 
>>> - This seems true, but it doesn’t say where this is said.
>>> [RFC2914] describes the best current practice for congestion control in the Internet, and [RFC8085] provides specific guidelines for traffic using datagram protocols. I think we need to assert more stronly that CC is important.
>> The WebRTC specifications make this assertion, but I’m happy to repeat it here. I added some words to the Introduction about the importance of effective congestion control to the user experience and for protecting the network, and cited those RFCs.
>> 
>>> ---
>>> MULTICAST?
>>> - Multicast is ignored, but was mentioned in RFC8085, and I think some statement should be made including or excluding this from this ID's scope.
>> This is unicast only. I assumed some words to the Introduction to clarify.
>> 
>> I also added some words to the Introduction stating what RTCP extensions are assumed to be available.
>> 
>>> ---
>>> TEXT:
>>> Traditional congestion control protocols, such as TCP, send acknowledgements with every packet (or, at least, every   couple of packets).
>>> - This seems true -the word couple can mean 2 - and the receiver is required to ACK for 2*MSS, which is subtly different.
>> I adjusted the wording to try to make this more precise.
>> 
>>> However, my point isn’t really this. What matters is what the sender *receives* and due to GRO, etc and ACK manipulation in the network, the observed frequency of TCP ACKs can be much less than the TCP stack sends. Stretch ACKs are in fact common, covering several consecutive segments. I wonder if we need slightly more careful wording?
>> I added a mention of stretch-ACKs, primarily as a motivating example for sending less frequent congestion feedback for non-TCP transports.
>> 
>>> ---
>>> TEXT:
>>> As long
>>>    as feedback is sent frequently enough that the control loop is
>>>    stable, and the sender is kept informed when data leaves the network
>>>    (to provide an equivalent to ACK clocking in TCP), it is not
>>>    necessary to report on every packet at the instant it is received
>>>    (indeed, it is unlikely that a video codec can react instantly to a
>>>    rate change anyway, and there is little point in providing feedback
>>>    more often than the codec can adapt).
>>> - I agree, but one of the concerns could be that other flows that share a common bottleneck may have a different RTT. That implies the need to be responsive to the needs of these flows. Whereas an application could itself be stable when operating with occasional feedback of many RTTs, that could induce starvation of other flows. It is impossible to react to any remote feedback in less than a RTT of course, so steps to send much more frequently might have little benefit from this perspective.
>> I don’t disagree, but there are some difficult trade-offs here. TCP’s RTT dependence and the stretch-ACK issue mentioned above lead to unfairness between TCP flows that’s of the order of the unfairness likely caused by infrequent RTCP feedback. Further, for low rate multimedia flows, sending feedback sufficiently often to allow fairness with TCP on the forward path will generate feedback traffic of comparable rate, but non-congestion controlled, on the reverse path. I added a paragraph to discuss the issue, noting that potential unfairness needs to be balanced against feedback overheads.
>> 
>>> ----
>>> GENERAL COMMENT:
>>> This analysis considers the needed RTCP bandwidth, but could easily also note the RTCP rate/RTT, which can also be important.
>>> I proposed the following text for QUIC, which might also be useful here in some form, basically saying that “volume of feedback data” is not the only constraint - for some types of network, the rate of feedback also impacts the efficiency fo the overall system, perhaps something like:
>>> “Generating and processing acknowledgments consumes resources at a sender and receiver.  Acknowledgments also incur forwarding costs and
>>> contribute to link utilization, which can impact performance over some types of network, which can be congested by the rate of feedback as well as the volume of feedback bytes.”
>>> - Of course, a sender or receiver is usually unaware of how the path network segments actually behave.
>> There’s also the impact of packet delivery time due to the presence of potentially large feedback packets on the link. Added, in modified form.
>> 
>>> ---
>>> GENERAL COMMENT:
>>> Some analysis in the past has suggested feedback at least twice per RTT. Arguments for more than once per RTT include, as I recall:
>>> * Some robustness to loss. Loss is often a feature of congestion, and some network segments experience congestion of the medium - and hence can show loss in both directions.
>>> * Better RTT estimation, since CC responsiveness can be linked to RTT, this can help detect a change in RTT.
>> I added a mention of these issues to the end of Section 2, noting again that there’s a trade-off to make.
>> 
>>> ---
>>> SECTION 4:
>>> - I’d hoped to see here a sentence about once per RTT as being a sensible minimum frequency??
>> I’m not convinced that is a sensible minimum frequency, balancing feedback overhead against congestion control effectiveness. It’s certainly possible, and perhaps desirable, in some cases. In other cases, the overhead of sending such frequent feedback would outweigh the benefit.
>> 
>>> - When mentioning effective control, this may be a good place to remind why CC is important e.g.  Section 3.1 of [RFC8085] provides some guidelines.
>> Happy to point to that guidance.
>> 
>>> ---
>>> GENERAL COMMENT:
>>> I did not see any mention of other control packets that would be sent: NAPT keep alive or STUN/TURN, DNS, etc etc; not that these in any way change the results, but it could be nice to note they exist.
>> Sure.
>> 
>>> ---
>>> ROHC/IPHC:
>>> With the “advent” (subtle Christmas reference) off QUIC, I’ve been recommending satellite systems to generally use ROHC/IPHC to compress return path traffic. This can have a significant effect on the volume of feedback bytes for smaller packets. It may be worth noting here.
>> Sure.