--- 1/draft-ietf-rmcat-nada-12.txt 2019-09-06 10:13:05.365100431 -0700
+++ 2/draft-ietf-rmcat-nada-13.txt 2019-09-06 10:13:05.429102040 -0700
@@ -1,20 +1,20 @@
Network Working Group X. Zhu
Internet-Draft R. Pan
Intended status: Experimental M. Ramalho
-Expires: February 24, 2020 S. Mena
+Expires: March 8, 2020 S. Mena
Cisco Systems
- August 23, 2019
+ September 5, 2019
NADA: A Unified Congestion Control Scheme for Real-Time Media
- draft-ietf-rmcat-nada-12
+ draft-ietf-rmcat-nada-13
Abstract
This document describes NADA (network-assisted dynamic adaptation), a
novel congestion control scheme for interactive real-time media
applications, such as video conferencing. In the proposed scheme,
the sender regulates its sending rate based on either implicit or
explicit congestion signaling, in a unified approach. The scheme can
benefit from explicit congestion notification (ECN) markings from
network nodes. It also maintains consistent sender behavior in the
@@ -29,21 +29,21 @@
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
- This Internet-Draft will expire on February 24, 2020.
+ This Internet-Draft will expire on March 8, 2020.
Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
@@ -68,104 +68,104 @@
5.1.2. Estimation of packet loss/marking ratio . . . . . . . 13
5.1.3. Estimation of receiving rate . . . . . . . . . . . . 14
5.2. Sender-Side Operation . . . . . . . . . . . . . . . . . . 14
5.2.1. Rate shaping buffer . . . . . . . . . . . . . . . . . 15
5.2.2. Adjusting video target rate and sending rate . . . . 16
5.3. Feedback Message Requirements . . . . . . . . . . . . . . 16
6. Discussions and Further Investigations . . . . . . . . . . . 17
6.1. Choice of delay metrics . . . . . . . . . . . . . . . . . 17
6.2. Method for delay, loss, and marking ratio estimation . . 18
6.3. Impact of parameter values . . . . . . . . . . . . . . . 18
- 6.4. Sender-based vs. receiver-based calculation . . . . . . . 19
+ 6.4. Sender-based vs. receiver-based calculation . . . . . . . 20
6.5. Incremental deployment . . . . . . . . . . . . . . . . . 20
7. Reference Implementations . . . . . . . . . . . . . . . . . . 20
8. Suggested Experiments . . . . . . . . . . . . . . . . . . . . 21
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
10. Security Considerations . . . . . . . . . . . . . . . . . . . 22
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22
12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 22
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 23
13.1. Normative References . . . . . . . . . . . . . . . . . . 23
13.2. Informative References . . . . . . . . . . . . . . . . . 24
- Appendix A. Network Node Operations . . . . . . . . . . . . . . 27
+ Appendix A. Network Node Operations . . . . . . . . . . . . . . 26
A.1. Default behavior of drop tail queues . . . . . . . . . . 27
A.2. RED-based ECN marking . . . . . . . . . . . . . . . . . . 27
A.3. Random Early Marking with Virtual Queues . . . . . . . . 28
- Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28
1. Introduction
Interactive real-time media applications introduce a unique set of
challenges for congestion control. Unlike TCP, the mechanism used
for real-time media needs to adapt quickly to instantaneous bandwidth
changes, accommodate fluctuations in the output of video encoder rate
control, and cause low queuing delay over the network. An ideal
scheme should also make effective use of all types of congestion
signals, including packet loss, queuing delay, and explicit
congestion notification (ECN) [RFC3168] markings. The requirements
for the congestion control algorithm are outlined in
[I-D.ietf-rmcat-cc-requirements]. It highlights that the desired
congestion control scheme should avoid flow starvation and attain a
reasonable fair share of bandwidth when competing against other
flows, adapt quickly, and operate in a stable manner.
This document describes an experimental congestion control scheme
- called network-assisted dynamic adaptation (NADA). The NADA design
- benefits from explicit congestion control signals (e.g., ECN
+ called network-assisted dynamic adaptation (NADA). The design of
+ NADA benefits from explicit congestion control signals (e.g., ECN
markings) from the network, yet also operates when only implicit
congestion indicators (delay and/or loss) are available. Such a
unified sender behavior distinguishes NADA from other congestion
control schemes for real-time media. In addition, its core
congestion control algorithm is designed to guarantee stability for
path round-trip-times (RTTs) below a prescribed bound (e.g., 250ms
with default parameter choices). It further supports weighted
bandwidth sharing among competing video flows with different
priorities. The signaling mechanism consists of standard RTP
timestamp [RFC3550] and RTCP feedback reports. The definition of the
- desired RTCP feedback message is descirbed in detailed in
+ desired RTCP feedback message is described in detail in
[I-D.ietf-avtcore-cc-feedback-message] so as to support the
successful operation of several congestion control schemes for real-
time interactive media.
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
3. System Overview
Figure 1 shows the end-to-end system for real-time media transport
that NADA operates in. Note that there also exist network nodes
along the reverse (potentially uncongested) path that the RTCP
feedback reports traverse. Those network nodes are not shown in the
- figure for sake of abrevity.
+ figure for sake of brevity.
+---------+ r_vin +--------+ +--------+ +----------+
| Media |<--------| RTP | |Network | | RTP |
| Encoder |========>| Sender |=======>| Node |====>| Receiver |
+---------+ r_vout +--------+ r_send +--------+ +----------+
/|\ |
| |
+---------------------------------+
RTCP Feedback Report
Figure 1: System Overview
o Media encoder with rate control capabilities. It encodes raw
- media (audio and video) frames into compressed bitstream which is
- later packetized into RTP packets. As discussed in [RFC8593], the
- actual output rate from the encoder r_vout may fluctuate around
- the target r_vin. Furthermore, it is possible that the encoder
- can only react to bit rate changes at rather coarse time
+ media (audio and video) frames into a compressed bitstream which
+ is later packetized into RTP packets. As discussed in [RFC8593],
+ the actual output rate from the encoder r_vout may fluctuate
+ around the target r_vin. Furthermore, it is possible that the
+ encoder can only react to bit rate changes at rather coarse time
intervals, e.g., once every 0.5 seconds.
o RTP sender: responsible for calculating the NADA reference rate
based on network congestion indicators (delay, loss, or ECN
marking reports from the receiver), for updating the video encoder
with a new target rate r_vin, and for regulating the actual
sending rate r_send accordingly. The RTP sender also generates a
sending timestamp for each outgoing packet.
o RTP receiver: responsible for measuring and estimating end-to-end
@@ -181,53 +181,52 @@
o Network node with several modes of operation. The system can work
with the default behavior of a simple drop tail queue. It can
also benefit from advanced AQM features such as PIE [RFC8033], FQ-
CoDel [RFC8290], ECN marking based on RED [RFC7567], and PCN
marking using a token bucket algorithm ([RFC6660]). Note that
network node operation is out of control for the design of NADA.
4. Core Congestion Control Algorithm
- Like TCP-Friendly Rate Control (TFRC) [Floyd-CCR00] [RFC5348], NADA
- is a rate-based congestion control algorithm. In its simplest form,
- the sender reacts to the collection of network congestion indicators
- in the form of an aggregated congestion signal, and operates in one
- of two modes:
+ Like TCP-Friendly Rate Control (TFRC)[Floyd-CCR00] [RFC5348], NADA is
+ a rate-based congestion control algorithm. In its simplest form, the
+ sender reacts to the collection of network congestion indicators in
+ the form of an aggregated congestion signal, and operates in one of
+ two modes:
o Accelerated ramp-up: when the bottleneck is deemed to be
underutilized, the rate increases multiplicatively with respect to
the rate of previously successful transmissions. The rate
- increase mutliplier (gamma) is calculated based on observed round-
+ increase multiplier (gamma) is calculated based on observed round-
trip-time and target feedback interval, so as to limit self-
inflicted queuing delay.
o Gradual rate update: in the presence of non-zero aggregate
congestion signal, the sending rate is adjusted in reaction to
both its value (x_curr) and its change in value (x_diff).
This section introduces the list of mathematical notations and
describes the core congestion control algorithm at the sender and
receiver, respectively. Additional details on recommended practical
implementations are described in Section 5.1 and Section 5.2.
4.1. Mathematical Notations
This section summarizes the list of variables and parameters used in
the NADA algorithm. Figure 3 also includes the default values for
choosing the algorithm parameters either to represent a typical
setting in practical applications or based on theoretical and
simulation studies. See Section 6.3 for some of the discussions on
- the impact of parameter values. In the experimental phase of this
- draft, additional studies in real-world settings will gather further
- learnings on how to choose and adapt these parameter values in
- practical deployment.
+ the impact of parameter values. Additional studies in real-world
+ settings suggested in Section 8 could gather further insight on how
+ to choose and adapt these parameter values in practical deployment.
+--------------+-------------------------------------------------+
| Notation | Variable Name |
+--------------+-------------------------------------------------+
| t_curr | Current timestamp |
| t_last | Last time sending/receiving a feedback |
| delta | Observed interval between current and previous |
| | feedback reports: delta = t_curr-t_last |
| r_ref | Reference rate based on network congestion |
| r_send | Sending rate |
@@ -278,21 +277,21 @@
| | calculating packet summary | |
| | statistics at receiver | |
| QEPS | Threshold for determining queuing| 10ms |
| | delay build up at receiver | |
| DFILT | Bound on filtering delay | 120ms |
| GAMMA_MAX | Upper bound on rate increase | 0.5 |
| | ratio for accelerated ramp-up | |
| QBOUND | Upper bound on self-inflicted | 50ms |
| | queuing delay during ramp up | |
+..............+..................................+................+
- | MULTILOSS | Multiplier for self-scaling the | 7. |
+ | MULTILOSS | Multiplier for self-scaling the | 7.0 |
| | expiration threshold of the last | |
| | observed loss (loss_exp) based on| |
| | measured average loss interval | |
| | (loss_int) | |
| QTH | Delay threshold for invoking | 50ms |
| | non-linear warping | |
| LAMBDA | Scaling parameter in the | 0.5 |
| | exponent of non-linear warping | |
+..............+..................................+................+
| PLRREF | Reference packet loss ratio | 0.01 |
@@ -341,21 +340,21 @@
calculate non-linear warping of delay d_tilde if packet loss exists
calculate current aggregate congestion signal x_curr
determine mode of rate adaptation for sender: rmode
send feedback containing values of: rmode, x_curr, and r_recv
update t_last = t_curr
In order for a delay-based flow to hold its ground when competing
against loss-based flows (e.g., loss-based TCP), it is important to
distinguish between different levels of observed queuing delay. For
instance, over wired connections, a moderate queuing delay value on
- the order of tens of milliseonds is likely self-inflicted or induced
+ the order of tens of milliseconds is likely self-inflicted or induced
by other delay-based flows, whereas a high queuing delay value of
several hundreds of milliseconds may indicate the presence of a loss-
based flow that does not refrain from increased delay.
If the last observed packet loss is within the expiration window of
loss_exp (measured in terms of packet counts), the estimated queuing
delay follows a non-linear warping:
/ d_queue, if d_queue.
[ns-3] "The Network Simulator - ns-3", .
[ns3-rmcat]
Fu, J., Mena, S., and X. Zhu, "NS3 open source module of
IETF RMCAT congestion control protocols", November 2017,
.
+ [RFC5450] Singer, D. and H. Desineni, "Transmission Time Offsets in
+ RTP Streams", RFC 5450, DOI 10.17487/RFC5450, March 2009,
+ .
+
[RFC6660] Briscoe, B., Moncaster, T., and M. Menth, "Encoding Three
Pre-Congestion Notification (PCN) States in the IP Header
Using a Single Diffserv Codepoint (DSCP)", RFC 6660,
DOI 10.17487/RFC6660, July 2012,
.
[RFC6817] Shalunov, S., Hazel, G., Iyengar, J., and M. Kuehlewind,
"Low Extra Delay Background Transport (LEDBAT)", RFC 6817,
DOI 10.17487/RFC6817, December 2012,
.