idnits 2.17.1 draft-ietf-rmcat-cc-requirements-07.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (October 27, 2014) is 3469 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC5506' is defined on line 483, but no explicit reference was found in the text == Outdated reference: A later version (-19) exists of draft-ietf-rtcweb-overview-12 == Outdated reference: A later version (-13) exists of draft-ietf-rtcweb-data-channel-12 Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group R. Jesup 3 Internet-Draft Mozilla 4 Intended status: Informational Z. Sarker, Ed. 5 Expires: April 30, 2015 Ericsson 6 October 27, 2014 8 Congestion Control Requirements for Interactive Real-Time Media 9 draft-ietf-rmcat-cc-requirements-07 11 Abstract 13 Congestion control is needed for all data transported across the 14 Internet, in order to promote fair usage and prevent congestion 15 collapse. The requirements for interactive, point-to-point real-time 16 multimedia, which needs low-delay, semi-reliable data delivery, are 17 different from the requirements for bulk transfer like FTP or bursty 18 transfers like Web pages. Due to an increasing amount of RTP-based 19 real-time media traffic on the Internet (e.g. with the introduction 20 of the Web Real-Time Communication (WebRTC)), it is especially 21 important to ensure that this kind of traffic is congestion 22 controlled. 24 This document describes a set of requirements that can be used to 25 evaluate other congestion control mechanisms in order to figure out 26 their fitness for this purpose, and in particular to provide a set of 27 possible requirements for real-time media congestion avoidance 28 technique. 30 Requirements Language 32 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 33 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 34 document are to be interpreted as described in RFC 2119 [RFC2119]. 35 The terms are presented in many cases using lowercase for 36 readability. 38 Status of This Memo 40 This Internet-Draft is submitted in full conformance with the 41 provisions of BCP 78 and BCP 79. 43 Internet-Drafts are working documents of the Internet Engineering 44 Task Force (IETF). Note that other groups may also distribute 45 working documents as Internet-Drafts. The list of current Internet- 46 Drafts is at http://datatracker.ietf.org/drafts/current/. 48 Internet-Drafts are draft documents valid for a maximum of six months 49 and may be updated, replaced, or obsoleted by other documents at any 50 time. It is inappropriate to use Internet-Drafts as reference 51 material or to cite them other than as "work in progress." 53 This Internet-Draft will expire on April 30, 2015. 55 Copyright Notice 57 Copyright (c) 2014 IETF Trust and the persons identified as the 58 document authors. All rights reserved. 60 This document is subject to BCP 78 and the IETF Trust's Legal 61 Provisions Relating to IETF Documents 62 (http://trustee.ietf.org/license-info) in effect on the date of 63 publication of this document. Please review these documents 64 carefully, as they describe your rights and restrictions with respect 65 to this document. Code Components extracted from this document must 66 include Simplified BSD License text as described in Section 4.e of 67 the Trust Legal Provisions and are provided without warranty as 68 described in the Simplified BSD License. 70 Table of Contents 72 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 73 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 3 74 3. Deficiencies of existing mechanisms . . . . . . . . . . . . . 8 75 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 76 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 77 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 78 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 79 7.1. Normative References . . . . . . . . . . . . . . . . . . 10 80 7.2. Informative References . . . . . . . . . . . . . . . . . 10 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 83 1. Introduction 85 Most of today's TCP congestion control schemes were developed with a 86 focus on an use of the Internet for reliable bulk transfer of non- 87 time-critical data, such as transfer of large files. They have also 88 been used successfully to govern the reliable transfer of smaller 89 chunks of data in as short a time as possible, such as when fetching 90 Web pages. 92 These algorithms have also been used for transfer of media streams 93 that are viewed in a non-interactive manner, such as "streaming" 94 video, where having the data ready when the viewer wants it is 95 important, but the exact timing of the delivery is not. 97 When doing real-time interactive media, the requirements are 98 different; one needs to provide the data continuously, within a very 99 limited time window (no more than 100s of milliseconds end-to-end 100 delay), the sources of data may be able to adapt the amount of data 101 that needs sending within fairly wide margins but can be rate limited 102 by the application- even not always have data to send, and may 103 tolerate some amount of packet loss, but since the data is generated 104 in real-time, sending "future" data is impossible, and since it's 105 consumed in real-time, data delivered late is commonly useless. 107 While the requirements for real-time interactive differ from the 108 requirements for the other flow types, these other flow types will be 109 present in the network. The congestion control algorithm for real- 110 time interactive media must work properly when these other flow types 111 are present as cross traffic on the network. 113 One particular protocol portofolio being developed for this use case 114 is WebRTC [I-D.ietf-rtcweb-overview], where one envisions sending 115 multiple flows using the Real-time Transport Protocol (RTP) [RFC3550] 116 between two peers, in conjunction with data flows, all at the same 117 time, without having special arrangements with the intervening 118 service providers. 120 Given that this use case is the focus of this document, use cases 121 involving non-interactive media such as video streaming, and use 122 cases using multicast/broadcast-type technologies, are out of scope. 124 The terminology defined in [I-D.ietf-rtcweb-overview] is used in this 125 memo. 127 2. Requirements 129 1. The congestion control algorithm must attempt to provide as-low- 130 as-possible-delay transit for interactive real-time traffic 131 while still providing a useful amount of bandwidth. There may 132 be lower limits on the amount of bandwidth that is useful, but 133 this is largely application-specific and the application may be 134 able to modify or remove flows in order allow some useful flows 135 to get enough bandwidth. (Example: not enough bandwidth for 136 low-latency video+audio, but enough for audio-only.) 138 A. Jitter (variation in the bitrate over short timescales) also 139 is relevant, though moderate amounts of jitter will be 140 absorbed by jitter buffers. Transit delay should be 141 considered to track the short-term maximums of delay 142 including jitter. 144 B. It should provide this as-low-as-possible-delay transit even 145 when faced with intermediate bottlenecks and competing 146 flows. Competing flows may limit what's possible to 147 achieve. 149 C. It should handle routing changes which may alter or remove 150 bottlenecks or change the bandwidth available especially if 151 there is a reduction in available bandwidth or increase in 152 observed delay. It is expected that the mechanism reacts to 153 the routing change events in a way that avoids delay 154 buildup. 156 D. It should handle both local and remote interface changes 157 (WLAN to 3G data, etc) which may radically change the 158 bandwidth available or bottlenecks, especially if there is a 159 reduction in available bandwidth or increase in bottleneck 160 delay. It is assumed that an interface change can generate 161 a notification to the algorithm. 163 E. The algorithm must consider the case where offered loads are 164 less than the available bandwidth at any given moment, and 165 may vary dramatically over time, including dropping to no 166 load and then resuming a high load, such as in a mute/unmute 167 operation. Note that the reaction time between a change in 168 the bandwidth available from the algorithm and a change in 169 the offered load is variable, and may be different when 170 increasing versus decreasing. 172 F. The algorithm requires to avoid building up queues when 173 competing with short-term bursts of traffic (for example, 174 traffic generated by web-browsing) which can quickly 175 saturate a local-bottleneck router or link, but also clear 176 quickly. The algorithm should also attempt to regain its 177 previous share of the bandwidth when the local-bottleneck or 178 link is cleared. 180 G. Similarly periodic bursty flows such as MPEG DASH 181 [MPEG_DASH] or proprietary media streaming algorithms may 182 compete in bursts with the algorithm, and may not be 183 adaptive within a burst. They are often layered on top of 184 TCP. Due to non-adaptiveness of the competing traffic as 185 such, the algorithm must not increase the already existing 186 delay buildup during those bursts. Note that this competing 187 traffic may on a shared access link, or the traffic burst 188 may cause a shift in the location of the bottleneck for the 189 duration of the burst. 191 2. The algorithm must be fair to other flows, both real-time flows 192 (such as other instances of itself), and TCP flows, both long- 193 lived and bursts such as the traffic generated by a typical web 194 browsing session. Note that 'fair' is a rather hard-to-define 195 term. It should be fair with itself, giving fair share of the 196 bandwidth to multiple flows with similar RTTs, and if possible 197 to multiple flows with different RTTs. 199 A. Existing flows at a bottleneck must also be fair to new 200 flows to that bottleneck, and must allow new flows to ramp 201 up to a useful share of the bottleneck bandwidth as quickly 202 as possible. A useful share will depend on the media types 203 involved and total bandwidth available. Note that relative 204 RTTs may affect the rate new flows can ramp up to a 205 reasonable share. 207 3. The algorithm should not starve competing TCP flows, and should 208 as best as possible avoid starvation by TCP flows. 210 A. The congestion control should prioritise achieving a useful 211 share of the bandwidth depending on the media types and 212 total available bandwidth over achieving as low as possible 213 transit delay, when these two requirements are in conflict. 215 4. The algorithm should as quickly as possible adapt to initial 216 network conditions at the start of a flow. This should occur 217 both if the initial bandwidth is above or below the bottleneck 218 bandwidth. 220 A. The algorithm should allow different modes of adaptation for 221 example,the startup adaptation may be faster than adaptation 222 later in a flow. It should allow for both slow-start 223 operation (adapt up) and history-based startup (start at a 224 point expected to be at or below channel bandwidth from 225 historical information, which may need to adapt down quickly 226 if the initial guess is wrong). Starting too low and/or 227 adapting up too slowly can cause a critical point in a 228 personal communication to be poor ("Hello!"). Starting 229 over-bandwidth causes other problems for user experience, so 230 there's a tension here. Alternative methods to help startup 231 like probing during setup with dummy data may be useful in 232 some applications; in some cases there will be a 233 considerable gap in time between flow creation and the 234 initial flow of data. Again, A flow may need to change 235 adaptation rates due to network conditions or changes in the 236 provided flows (such as un-muting or sending data after a 237 gap). 239 5. The algorithm should be stable if the RTP streams are halted or 240 discontinuous (for example - Voice Activity Detection). 242 A. After stream resumption, the algorithm should attempt to 243 rapidly regain its previous share of the bandwidth; the 244 aggressiveness with which this is done will decay with the 245 length of the pause. 247 6. The algorithm should where possible merge information across 248 multiple RTP streams sent between two endpoints, when those RTP 249 streams share a common bottleneck, whether or not those streams 250 are multiplexed onto the same ports, in order to allow 251 congestion control of the set of streams together instead of as 252 multiple independent streams. This allows better overall 253 bandwidth management, faster response to changing conditions, 254 and fairer sharing of bandwidth with other network users. 256 A. The algorithm should also share information and adaptation 257 with other non-RTP flows between the same endpoints, such as 258 a WebRTC DataChannel [I-D.ietf-rtcweb-data-channel], when 259 possible. 261 B. When there are multiple streams across the same 5-tuple 262 coordinating their bandwidth use and congestion control, the 263 algorithm should allow the application to control the 264 relative split of available bandwidth.The most correlated 265 bandwidth usage would be with other flows on the same 266 5-tuple, but there may be use in coordinating measurement 267 and control of the local link(s). Use of information about 268 previous flows, especially on the same 5-tuple, may be 269 useful input to the algorithm, especially to startup 270 performance of a new flow. 272 7. The algorithm should not require any special support from 273 network elements to convey congestion related information to be 274 functional. As much as possible, it should leverage available 275 information about the incoming flow to provide feedback to the 276 sender. Examples of this information are the packet arrival 277 times, acknowledgments and feedback, packet timestamps, and 278 packet losses, Explicit Congestion Notification (ECN) [RFC3168]; 279 all of these can provide information about the state of the path 280 and any bottlenecks. However, the use of available information 281 is algorithm dependent. 283 A. Extra information could be added to the packets to provide 284 more detailed information on actual send times (as opposed 285 to sampling times), but should not be required. 287 8. Since the assumption here is a set of RTP streams, the 288 backchannel typically should be done via RTCP[RFC3550]; one 289 alternative would be to include it instead in a reverse RTP 290 channel using header extensions. 292 A. In order to react sufficiently quickly when using RTCP for a 293 backchannel, an RTP profile such as RTP/AVPF [RFC4585] or 294 RTP/SAVPF [RFC5124] that allows sufficiently frequent 295 feedback must be used. Note that in some cases, backchannel 296 messages may be delayed until the RTCP channel can be 297 allocated enough bandwidth, even under AVPF rules. This may 298 also imply negotiating a higher maximum percentage for RTCP 299 data or allowing solutions to violate or modify the rules 300 specified for AVPF. 302 B. Bandwidth for the feedback messages should be minimized 303 (such as via RFC 5506 [RFC5506]to allow RTCP without Sender 304 Reports/Receiver Reports) 306 C. Backchannel data should be minimized to avoid taking too 307 much reverse-channel bandwidth (since this will often be 308 used in a bidirectional set of flows). In areas of 309 stability, backchannel data may be sent more infrequently so 310 long as algorithm stability and fairness are maintained. 311 When the channel is unstable or has not yet reached 312 equilibrium after a change, backchannel feedback may be more 313 frequent and use more reverse-channel bandwidth. This is an 314 area with considerable flexibility of design, and different 315 approaches to backchannel messages and frequency are 316 expected to be evaluated. 318 9. Flows managed by this algorithm and flows competing against at a 319 bottleneck may have different DSCP[RFC5865] markings depending 320 on the type of traffic, or may be subject to flow-based QoS. A 321 particular bottleneck or section of the network path may or may 322 not honor DSCP markings. The algorithm should attempt to 323 leverage DSCP markings when they're available. 325 A. In WebRTC, a division of packets into 4 classes is 326 envisioned in order of priority: faster-than-audio, audio, 327 video, best-effort, and bulk-transfer. Typically the flows 328 managed by this algorithm would be audio or video in that 329 hierarchy, and feedback flows would be faster-than-audio. 331 10. The algorithm should sense the unexpected lack of backchannel 332 information as a possible indication of a channel overuse 333 problem and react accordingly to avoid burst events causing a 334 congestion collapse. 336 11. The algorithm should be stable and low-delay when faced with 337 Active Queue Management (AQM) algorithms. Also note that these 338 algorithms may apply across multiple queues in the bottleneck, 339 or to a single queue 341 3. Deficiencies of existing mechanisms 343 Among the existing congestion control mechanisms TCP Friendly Rate 344 Control (TFRC) [RFC5348] is the one which claims to be suitable for 345 real-time interactive media. TFRC is, an equation based, congestion 346 control mechanism which provides reasonably fair share of the 347 bandwidth when competing with TCP flows and offers much lower 348 throughput variations than TCP. This is achieved by a slower 349 response to the available bandwidth change than TCP. TFRC is 350 designed to perform best with applications which has fixed packet 351 size and does not have fixed period between sending packets. 353 TFRC operates on detecting loss events and reacts to loss caused by 354 congestion by reducing its sending rate. It allows applications to 355 increase the sending rate until loss is observed in the flows. As it 356 is noted in IAB/IRTF report [RFC7295] large buffers are available in 357 the network elements which introduces additional delay in the 358 communication, it becomes important to take all possible congestion 359 indications into considerations. TFRC's only consideration of loss 360 events as congestion indication can be considered as biggest lacking 361 looking at the current Internet deployment. 363 A typical real-time interactive communication includes live encoded 364 audio and video flow(s). In such a communication scenario an audio 365 source typically needs fixed interval between packets, needs to vary 366 their segment size instead of their packet rate in response to 367 congestion and sends smaller packets, a variance of TFRC , Small- 368 Packet TFRC (TFRC-SP) [RFC4828] addresses the issues related to such 369 kind of sources ; a video source generally varies video frame sizes, 370 can produce large frames which need to be further fragmented to fit 371 into path Maximum Transmission Unit (MTU) size, and have almost fixed 372 interval between producing frames under a certain frame rate, TFRC is 373 known to be less optimal when using with such video sources. 375 There are also some mismatches between TFRC's design assumptions and 376 how the media sources in a typical real-time interactive application 377 works. TFRC is design to maintain smooth sending rate however media 378 sources can change rates in steps for both rate increase and rate 379 decrease. TFRC can operate in two modes - i) Bytes per second and 380 ii) packets per second, where typical real-time interactive media 381 sources operates on bit per second. There are also limitations on 382 how quickly the media sources can adapt to specific sending rates. 383 The modern video encoders can operate on a mode where they can vary 384 the output bitrate a lot depending on the way there are configured, 385 the current scene it is encoding and more. Therefore, it is possible 386 that the video source does not always output at a bitrate they are 387 allowed to. TFRC tries to raise its sending rate when transmitting 388 at maximum allowed rate and increases only twice the current 389 transmission rate hence it may create issues when the video source 390 vary their bitrates. 392 Moreover, there are number of studies on TFRC which shows it's 393 limitations which includes TFRC's unfairness on low statistically 394 multiplexed links, oscillatory behavior, performance issue in highly 395 dynamic loss rates conditions and more [CH09]. 397 Looking at all these deficiencies it can be concluded that the 398 requirements of congestion control mechanism for real-time 399 interactive media cannot be met by TFRC as defined in the standard. 401 4. IANA Considerations 403 This document makes no request of IANA. 405 Note to RFC Editor: this section may be removed on publication as an 406 RFC. 408 5. Security Considerations 410 An attacker with the ability to delete, delay or insert messages in 411 the flow can fake congestion signals, unless they are passed on a 412 tamper-proof path. Since some possible algorithms depend on the 413 timing of packet arrival, even a traditional protected channel does 414 not fully mitigate such attacks. 416 An attack that reduces bandwidth is not necessarily significant, 417 since an on-path attacker could break the connection by discarding 418 all packets. Attacks that increase the percieved available bandwidth 419 are concievable, and need to be evaluated. 421 Algorithm designers should consider the possibility of malicious on- 422 path attackers. 424 6. Acknowledgements 426 This document is the result of discussions in various fora of the 427 WebRTC effort, in particular on the rtp-congestion@alvestrand.no 428 mailing list. Many people contributed their thoughts to this. 430 7. References 432 7.1. Normative References 434 [I-D.ietf-rtcweb-overview] 435 Alvestrand, H., "Overview: Real Time Protocols for 436 Browser-based Applications", draft-ietf-rtcweb-overview-12 437 (work in progress), October 2014. 439 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 440 Requirement Levels", BCP 14, RFC 2119, March 1997. 442 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 443 Jacobson, "RTP: A Transport Protocol for Real-Time 444 Applications", STD 64, RFC 3550, July 2003. 446 [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, 447 "Extended RTP Profile for Real-time Transport Control 448 Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, July 449 2006. 451 [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for 452 Real-time Transport Control Protocol (RTCP)-Based Feedback 453 (RTP/SAVPF)", RFC 5124, February 2008. 455 7.2. Informative References 457 [CH09] Choi, S. and M. Handley, "Designing TCP-Friendly Window- 458 based Congestion Control for Real-time Multimedia 459 Applications", PFLDNeT 2009 Workshop , May 2009. 461 [I-D.ietf-rtcweb-data-channel] 462 Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data 463 Channels", draft-ietf-rtcweb-data-channel-12 (work in 464 progress), September 2014. 466 [MPEG_DASH] 467 "Dynamic adaptive streaming over HTTP (DASH) -- Part 1: 468 Media presentation description and segment formats", April 469 2012. 471 [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition 472 of Explicit Congestion Notification (ECN) to IP", RFC 473 3168, September 2001. 475 [RFC4828] Floyd, S. and E. Kohler, "TCP Friendly Rate Control 476 (TFRC): The Small-Packet (SP) Variant", RFC 4828, April 477 2007. 479 [RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP 480 Friendly Rate Control (TFRC): Protocol Specification", RFC 481 5348, September 2008. 483 [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size 484 Real-Time Transport Control Protocol (RTCP): Opportunities 485 and Consequences", RFC 5506, April 2009. 487 [RFC5865] Baker, F., Polk, J., and M. Dolly, "A Differentiated 488 Services Code Point (DSCP) for Capacity-Admitted Traffic", 489 RFC 5865, May 2010. 491 [RFC7295] Tschofenig, H., Eggert, L., and Z. Sarker, "Report from 492 the IAB/IRTF Workshop on Congestion Control for 493 Interactive Real-Time Communication", RFC 7295, July 2014. 495 Authors' Addresses 497 Randell Jesup 498 Mozilla 499 USA 501 Email: randell-ietf@jesup.org 503 Zaheduzzaman Sarker (editor) 504 Ericsson 505 Sweden 507 Email: zaheduzzaman.sarker@ericsson.com