--- 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, .