draft-ietf-rmcat-coupled-cc-02.txt   draft-ietf-rmcat-coupled-cc-03.txt 
RTP Media Congestion Avoidance Techniques (rmcat) S. Islam RTP Media Congestion Avoidance Techniques (rmcat) S. Islam
Internet-Draft M. Welzl Internet-Draft M. Welzl
Intended status: Experimental S. Gjessing Intended status: Experimental S. Gjessing
Expires: October 16, 2016 University of Oslo Expires: January 29, 2017 University of Oslo
April 14, 2016 July 28, 2016
Coupled congestion control for RTP media Coupled congestion control for RTP media
draft-ietf-rmcat-coupled-cc-02 draft-ietf-rmcat-coupled-cc-03
Abstract Abstract
When multiple congestion controlled RTP sessions traverse the same When multiple congestion controlled RTP sessions traverse the same
network bottleneck, it can be beneficial to combine their controls network bottleneck, it can be beneficial to combine their controls
such that the total on-the-wire behavior is improved. This document such that the total on-the-wire behavior is improved. This document
describes such a method for flows that have the same sender, in a way describes such a method for flows that have the same sender, in a way
that is as flexible and simple as possible while minimizing the that is as flexible and simple as possible while minimizing the
amount of changes needed to existing RTP applications. It specifies amount of changes needed to existing RTP applications. It specifies
how to apply the method for both the NADA and Google congestion how to apply the method for both the NADA and Google congestion
skipping to change at page 1, line 38 skipping to change at page 1, line 38
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 16, 2016. This Internet-Draft will expire on January 29, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Limitations . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Limitations . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Architectural overview . . . . . . . . . . . . . . . . . . . 4 4. Architectural overview . . . . . . . . . . . . . . . . . . . 4
5. Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5. Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1. SBD . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.1. SBD . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2. FSE . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.2. FSE . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3. Flows . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.3. Flows . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.3.1. Example algorithm 1 - Active FSE . . . . . . . . . . 7 5.3.1. Example algorithm 1 - Active FSE . . . . . . . . . . 7
5.3.2. Example algorithm 2 - Conservative Active FSE . . . . 8 5.3.2. Example algorithm 2 - Conservative Active FSE . . . . 8
6. Application . . . . . . . . . . . . . . . . . . . . . . . . . 9 6. Application . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. NADA . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.1. NADA . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.2. GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.2. GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.3. General recommendations . . . . . . . . . . . . . . . . . 10 6.3. General recommendations . . . . . . . . . . . . . . . . . 10
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 7. Expected feedback from experiments . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
9. Security Considerations . . . . . . . . . . . . . . . . . . . 11 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 10. Security Considerations . . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . 11 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
10.2. Informative References . . . . . . . . . . . . . . . . . 12 11.1. Normative References . . . . . . . . . . . . . . . . . . 12
Appendix A. Scheduling . . . . . . . . . . . . . . . . . . . . . 13 11.2. Informative References . . . . . . . . . . . . . . . . . 12
Appendix B. Example algorithm - Passive FSE . . . . . . . . . . 13 Appendix A. Scheduling . . . . . . . . . . . . . . . . . . . . . 14
B.1. Example operation (passive) . . . . . . . . . . . . . . . 16 Appendix B. Example algorithm - Passive FSE . . . . . . . . . . 14
Appendix C. Change log . . . . . . . . . . . . . . . . . . . . . 20 B.1. Example operation (passive) . . . . . . . . . . . . . . . 17
C.1. draft-welzl-rmcat-coupled-cc . . . . . . . . . . . . . . 20 Appendix C. Change log . . . . . . . . . . . . . . . . . . . . . 21
C.1.1. Changes from -00 to -01 . . . . . . . . . . . . . . . 20 C.1. draft-welzl-rmcat-coupled-cc . . . . . . . . . . . . . . 21
C.1.2. Changes from -01 to -02 . . . . . . . . . . . . . . . 20 C.1.1. Changes from -00 to -01 . . . . . . . . . . . . . . . 21
C.1.3. Changes from -02 to -03 . . . . . . . . . . . . . . . 20 C.1.2. Changes from -01 to -02 . . . . . . . . . . . . . . . 21
C.1.4. Changes from -03 to -04 . . . . . . . . . . . . . . . 21 C.1.3. Changes from -02 to -03 . . . . . . . . . . . . . . . 21
C.1.5. Changes from -04 to -05 . . . . . . . . . . . . . . . 21 C.1.4. Changes from -03 to -04 . . . . . . . . . . . . . . . 22
C.2. draft-ietf-rmcat-coupled-cc . . . . . . . . . . . . . . . 21 C.1.5. Changes from -04 to -05 . . . . . . . . . . . . . . . 22
C.2.1. Changes from draft-welzl-rmcat-coupled-cc-05 . . . . 21 C.2. draft-ietf-rmcat-coupled-cc . . . . . . . . . . . . . . . 22
C.2.2. Changes from -00 to -01 . . . . . . . . . . . . . . . 21 C.2.1. Changes from draft-welzl-rmcat-coupled-cc-05 . . . . 22
C.2.3. Changes from -01 to -02 . . . . . . . . . . . . . . . 21 C.2.2. Changes from -00 to -01 . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 C.2.3. Changes from -01 to -02 . . . . . . . . . . . . . . . 22
C.2.4. Changes from -02 to -03 . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction 1. Introduction
When there is enough data to send, a congestion controller must When there is enough data to send, a congestion controller must
increase its sending rate until the path's capacity has been reached; increase its sending rate until the path's capacity has been reached;
depending on the controller, sometimes the rate is increased further, depending on the controller, sometimes the rate is increased further,
until packets are ECN-marked or dropped. This process inevitably until packets are ECN-marked or dropped. This process inevitably
creates undesirable queuing delay -- an effect that is amplified when creates undesirable queuing delay -- an effect that is amplified when
multiple congestion controlled connections traverse the same network multiple congestion controlled connections traverse the same network
bottleneck. bottleneck.
skipping to change at page 7, line 13 skipping to change at page 7, line 19
o The rate used by the flow in bits per second, FSE_R. o The rate used by the flow in bits per second, FSE_R.
Note that the priority does not need to be a floating point value and Note that the priority does not need to be a floating point value and
its value range does not matter for this algorithm: the algorithm its value range does not matter for this algorithm: the algorithm
works with a flow's priority portion of the sum of all priority works with a flow's priority portion of the sum of all priority
values. Priorities can therefore be mapped to the "very-low", "low", values. Priorities can therefore be mapped to the "very-low", "low",
"medium" or "high" priority levels described in "medium" or "high" priority levels described in
[I-D.ietf-rtcweb-transports] using the values 1, 2, 4 and 8, [I-D.ietf-rtcweb-transports] using the values 1, 2, 4 and 8,
respectively. respectively.
The FSE can operate on window-based as well as rate-based congestion
controllers. In case of a window-based controller, FSE_R is a
window, and all the text below should be considered to refer to
window, not rates.
In the FSE, each FG contains one static variable S_CR which is the In the FSE, each FG contains one static variable S_CR which is the
sum of the calculated rates of all flows in the same FG. This value sum of the calculated rates of all flows in the same FG. This value
is used to calculate the sending rate. is used to calculate the sending rate.
The information listed here is enough to implement the sample flow The information listed here is enough to implement the sample flow
algorithm given below. FSE implementations could easily be extended algorithm given below. FSE implementations could easily be extended
to store, e.g., a flow's current sending rate for statistics to store, e.g., a flow's current sending rate for statistics
gathering or future potential optimizations. gathering or future potential optimizations.
5.3. Flows 5.3. Flows
skipping to change at page 8, line 5 skipping to change at page 8, line 5
This algorithm was designed to be the simplest possible method to This algorithm was designed to be the simplest possible method to
assign rates according to the priorities of flows. Simulations assign rates according to the priorities of flows. Simulations
results in [fse] indicate that it does however not significantly results in [fse] indicate that it does however not significantly
reduce queuing delay and packet loss. reduce queuing delay and packet loss.
(1) When a flow f starts, it registers itself with SBD and the FSE. (1) When a flow f starts, it registers itself with SBD and the FSE.
FSE_R is initialized with the congestion controller's initial FSE_R is initialized with the congestion controller's initial
rate. SBD will assign the correct FGI. When a flow is assigned rate. SBD will assign the correct FGI. When a flow is assigned
an FGI, it adds its FSE_R to S_CR. an FGI, it adds its FSE_R to S_CR.
(2) When a flow f stops, its entry is removed from the list. (2) When a flow f stops or pauses, its entry is removed from the
list.
(3) Every time the congestion controller of the flow f determines a (3) Every time the congestion controller of the flow f determines a
new sending rate CC_R, the flow calls UPDATE, which carries out new sending rate CC_R, the flow calls UPDATE, which carries out
the tasks listed below to derive the new sending rates for all the tasks listed below to derive the new sending rates for all
the flows in the FG. A flow's UPDATE function uses a local the flows in the FG. A flow's UPDATE function uses a local
(i.e. per-flow) temporary variable S_P, which is the sum of all (i.e. per-flow) temporary variable S_P, which is the sum of all
the priorities. the priorities.
(a) It updates S_CR. (a) It updates S_CR.
skipping to change at page 8, line 45 skipping to change at page 8, line 46
This algorithm extends algorithm 1 to conservatively emulate the This algorithm extends algorithm 1 to conservatively emulate the
behavior of a single flow by proportionally reducing the aggregate behavior of a single flow by proportionally reducing the aggregate
rate on congestion. Simulations results in [fse] indicate that it rate on congestion. Simulations results in [fse] indicate that it
can significantly reduce queuing delay and packet loss. can significantly reduce queuing delay and packet loss.
(1) When a flow f starts, it registers itself with SBD and the FSE. (1) When a flow f starts, it registers itself with SBD and the FSE.
FSE_R is initialized with the congestion controller's initial FSE_R is initialized with the congestion controller's initial
rate. SBD will assign the correct FGI. When a flow is assigned rate. SBD will assign the correct FGI. When a flow is assigned
an FGI, it adds its FSE_R to S_CR. an FGI, it adds its FSE_R to S_CR.
(2) When a flow f stops, its entry is removed from the list. (2) When a flow f stops or pauses, its entry is removed from the
list.
(3) Every time the congestion controller of the flow f determines a (3) Every time the congestion controller of the flow f determines a
new sending rate CC_R, the flow calls UPDATE, which carries out new sending rate CC_R, the flow calls UPDATE, which carries out
the tasks listed below to derive the new sending rates for all the tasks listed below to derive the new sending rates for all
the flows in the FG. A flow's UPDATE function uses a local the flows in the FG. A flow's UPDATE function uses a local
(i.e. per-flow) temporary variable S_P, which is the sum of all (i.e. per-flow) temporary variable S_P, which is the sum of all
the priorities, and a local variable DELTA, which is used to the priorities, and a local variable DELTA, which is used to
calculate the difference between CC_R and the previously stored calculate the difference between CC_R and the previously stored
FSE_R. To prevent flows from either ignoring congestion or FSE_R. To prevent flows from either ignoring congestion or
overreacting, a timer keeps them from changing their rates overreacting, a timer keeps them from changing their rates
skipping to change at page 10, line 48 skipping to change at page 11, line 5
congestion control mechanisms. congestion control mechanisms.
Receiver-side calculations: Receiver-side calculations:
When receiver-side calculations make assumptions about the rate When receiver-side calculations make assumptions about the rate
of the sender, the calculations need to be synchronized or the of the sender, the calculations need to be synchronized or the
receiver needs to be updated accordingly. This applies to TFRC receiver needs to be updated accordingly. This applies to TFRC
[RFC5348], for example, where simulations showed somewhat less [RFC5348], for example, where simulations showed somewhat less
favorable results when using the FSE without a receiver-side favorable results when using the FSE without a receiver-side
change [fse]. change [fse].
7. Acknowledgements 7. Expected feedback from experiments
The algorithm described in this memo has so far been evaluated using
simulations covering all the tests for more than one flow from
[I-D.ietf-rmcat-eval-test] (see [IETF-93], [IETF-94]). Experiments
should confirm these results using at least one of the same
congestion control algorithms (GCC or NADA) with real-life code
(e.g., browsers communicating over an emulated network covering the
conditions in [I-D.ietf-rmcat-eval-test]. The tests with real-life
code should be repeated afterwards in real network environments and
monitored. Implementers and testers are invited to document their
findings in an Internet draft.
8. Acknowledgements
This document has benefitted from discussions with and feedback from This document has benefitted from discussions with and feedback from
David Hayes, Mirja Kuehlewind, Karen Nielsen, Andreas Petlund, David David Hayes, Mirja Kuehlewind, Karen Nielsen, Andreas Petlund, David
Ros (who also gave the FSE its name), Zaheduzzaman Sarker, Varun Ros (who also gave the FSE its name), Zaheduzzaman Sarker, Varun
Singh and Kristian Hiorth. The authors would like to thank Xiaoqing Singh, Anna Brunstrom, Martin Stiemerling, and Kristian Hiorth. The
Zhu and Stefan Holmer for helping with NADA and GCC. authors would like to thank Xiaoqing Zhu and Stefan Holmer for
helping with NADA and GCC.
This work was partially funded by the European Community under its This work was partially funded by the European Community under its
Seventh Framework Programme through the Reducing Internet Transport Seventh Framework Programme through the Reducing Internet Transport
Latency (RITE) project (ICT-317700). Latency (RITE) project (ICT-317700).
8. IANA Considerations 9. IANA Considerations
This memo includes no request to IANA. This memo includes no request to IANA.
9. Security Considerations 10. Security Considerations
In scenarios where the architecture described in this document is In scenarios where the architecture described in this document is
applied across applications, various cheating possibilities arise: applied across applications, various cheating possibilities arise:
e.g., supporting wrong values for the calculated rate, the desired e.g., supporting wrong values for the calculated rate, the desired
rate, or the priority of a flow. In the worst case, such cheating rate, or the priority of a flow. In the worst case, such cheating
could either prevent other flows from sending or make them send at a could either prevent other flows from sending or make them send at a
rate that is unreasonably large. The end result would be unfair rate that is unreasonably large. The end result would be unfair
behavior at the network bottleneck, akin to what could be achieved behavior at the network bottleneck, akin to what could be achieved
with any UDP based application. Hence, since this is no worse than with any UDP based application. Hence, since this is no worse than
UDP in general, there seems to be no significant harm in using this UDP in general, there seems to be no significant harm in using this
skipping to change at page 11, line 38 skipping to change at page 12, line 9
In the case of a single-user system, it should also be in the In the case of a single-user system, it should also be in the
interest of any application programmer to give the user the best interest of any application programmer to give the user the best
possible experience by using reasonable flow priorities or even possible experience by using reasonable flow priorities or even
letting the user choose them. In a multi-user system, this interest letting the user choose them. In a multi-user system, this interest
may not be given, and one could imagine the worst case of an "arms may not be given, and one could imagine the worst case of an "arms
race" situation, where applications end up setting their priorities race" situation, where applications end up setting their priorities
to the maximum value. If all applications do this, the end result is to the maximum value. If all applications do this, the end result is
a fair allocation in which the priority mechanism is implicitly a fair allocation in which the priority mechanism is implicitly
eliminated, and no major harm is done. eliminated, and no major harm is done.
10. References 11. References
10.1. Normative References 11.1. Normative References
[I-D.ietf-rmcat-gcc] [I-D.ietf-rmcat-gcc]
Holmer, S., Lundin, H., Carlucci, G., Cicco, L., and S. Holmer, S., Lundin, H., Carlucci, G., Cicco, L., and S.
Mascolo, "A Google Congestion Control Algorithm for Real- Mascolo, "A Google Congestion Control Algorithm for Real-
Time Communication", draft-ietf-rmcat-gcc-01 (work in Time Communication", draft-ietf-rmcat-gcc-02 (work in
progress), October 2015. progress), July 2016.
[I-D.ietf-rmcat-nada] [I-D.ietf-rmcat-nada]
Zhu, X., Pan, R., Ramalho, M., Cruz, S., Jones, P., Fu, Zhu, X., Pan, R., Ramalho, D., Cruz, S., Jones, P., Fu,
J., D'Aronco, S., and C. Ganzhorn, "NADA: A Unified J., D'Aronco, S., and C. Ganzhorn, "NADA: A Unified
Congestion Control Scheme for Real-Time Media", draft- Congestion Control Scheme for Real-Time Media", draft-
ietf-rmcat-nada-02 (work in progress), March 2016. ietf-rmcat-nada-02 (work in progress), March 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119,
RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC3124] Balakrishnan, H. and S. Seshan, "The Congestion Manager", [RFC3124] Balakrishnan, H. and S. Seshan, "The Congestion Manager",
RFC 3124, DOI 10.17487/RFC3124, June 2001, RFC 3124, DOI 10.17487/RFC3124, June 2001,
<http://www.rfc-editor.org/info/rfc3124>. <http://www.rfc-editor.org/info/rfc3124>.
[RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP [RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP
Friendly Rate Control (TFRC): Protocol Specification", RFC Friendly Rate Control (TFRC): Protocol Specification",
5348, DOI 10.17487/RFC5348, September 2008, RFC 5348, DOI 10.17487/RFC5348, September 2008,
<http://www.rfc-editor.org/info/rfc5348>. <http://www.rfc-editor.org/info/rfc5348>.
10.2. Informative References 11.2. Informative References
[fse] Islam, S., Welzl, M., Gjessing, S., and N. Khademi, [fse] Islam, S., Welzl, M., Gjessing, S., and N. Khademi,
"Coupled Congestion Control for RTP Media", ACM SIGCOMM "Coupled Congestion Control for RTP Media", ACM SIGCOMM
Capacity Sharing Workshop (CSWS 2014) and ACM SIGCOMM CCR Capacity Sharing Workshop (CSWS 2014) and ACM SIGCOMM CCR
44(4) 2014; extended version available as a technical 44(4) 2014; extended version available as a technical
report from report from
http://safiquli.at.ifi.uio.no/paper/fse-tech-report.pdf , http://safiquli.at.ifi.uio.no/paper/fse-tech-report.pdf ,
2014. 2014.
[fse-noms] [fse-noms]
Islam, S., Welzl, M., Hayes, D., and S. Gjessing, Islam, S., Welzl, M., Hayes, D., and S. Gjessing,
"Managing Real-Time Media Flows through a Flow State "Managing Real-Time Media Flows through a Flow State
Exchange", IEEE NOMS 2016, Istanbul, Turkey , 2016. Exchange", IEEE NOMS 2016, Istanbul, Turkey , 2016.
[I-D.ietf-rmcat-eval-test]
Sarker, Z., Singh, V., Zhu, X., and D. Ramalho, "Test
Cases for Evaluating RMCAT Proposals", draft-ietf-rmcat-
eval-test-03 (work in progress), March 2016.
[I-D.ietf-rmcat-sbd] [I-D.ietf-rmcat-sbd]
Hayes, D., Ferlin, S., Welzl, M., and K. Hiorth, "Shared Hayes, D., Ferlin, S., Welzl, M., and K. Hiorth, "Shared
Bottleneck Detection for Coupled Congestion Control for Bottleneck Detection for Coupled Congestion Control for
RTP Media.", draft-ietf-rmcat-sbd-04 (work in progress), RTP Media.", draft-ietf-rmcat-sbd-04 (work in progress),
March 2016. March 2016.
[I-D.ietf-rtcweb-transports] [I-D.ietf-rtcweb-transports]
Alvestrand, H., "Transports for WebRTC", Internet-draft Alvestrand, H., "Transports for WebRTC", Internet-draft
draft-ietf-rtcweb-transports-11.txt, January 2016. draft-ietf-rtcweb-transports-11.txt, January 2016.
[IETF-93] Islam, S., Welzl, M., and S. Gjessing, "Updates on Coupled
Congestion Control for RTP Media", July 2015,
<http://www.ietf.org/proceedings/93/slides/
slides-93-rmcat-3.pptx>.
[IETF-94] Islam, S., Welzl, M., and S. Gjessing, "Updates on Coupled
Congestion Control for RTP Media", November 2015,
<https://www.ietf.org/proceedings/94/slides/slides-94-
rmcat-5.pdf>.
[RFC7478] Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real- [RFC7478] Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real-
Time Communication Use Cases and Requirements", RFC 7478, Time Communication Use Cases and Requirements", RFC 7478,
DOI 10.17487/RFC7478, March 2015, DOI 10.17487/RFC7478, March 2015,
<http://www.rfc-editor.org/info/rfc7478>. <http://www.rfc-editor.org/info/rfc7478>.
[rtcweb-rtp-usage] [rtcweb-rtp-usage]
Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time
Communication (WebRTC): Media Transport and Use of RTP", Communication (WebRTC): Media Transport and Use of RTP",
Internet-draft draft-ietf-rtcweb-rtp-usage-26.txt, March Internet-draft draft-ietf-rtcweb-rtp-usage-26.txt, March
2016. 2016.
skipping to change at page 14, line 23 skipping to change at page 15, line 5
bandwidth from application-limited or terminated flows) which is bandwidth from application-limited or terminated flows) which is
initialized to 0. For the passive version, S_CR is limited to initialized to 0. For the passive version, S_CR is limited to
increase or decrease as conservatively as a flow's congestion increase or decrease as conservatively as a flow's congestion
controller decides in order to prohibit sudden rate jumps. controller decides in order to prohibit sudden rate jumps.
(1) When a flow f starts, it registers itself with SBD and the FSE. (1) When a flow f starts, it registers itself with SBD and the FSE.
FSE_R and DR are initialized with the congestion controller's FSE_R and DR are initialized with the congestion controller's
initial rate. SBD will assign the correct FGI. When a flow is initial rate. SBD will assign the correct FGI. When a flow is
assigned an FGI, it adds its FSE_R to S_CR. assigned an FGI, it adds its FSE_R to S_CR.
(2) When a flow f stops, it sets its DR to 0 and sets P to -1. (2) When a flow f stops or pauses, it sets its DR to 0 and sets P to
-1.
(3) Every time the congestion controller of the flow f determines a (3) Every time the congestion controller of the flow f determines a
new sending rate CC_R, assuming the flow's new desired rate new sending rate CC_R, assuming the flow's new desired rate
new_DR to be "infinity" in case of a bulk data transfer with an new_DR to be "infinity" in case of a bulk data transfer with an
unknown maximum rate, the flow calls UPDATE, which carries out unknown maximum rate, the flow calls UPDATE, which carries out
the tasks listed below to derive the flow's new sending rate, the tasks listed below to derive the flow's new sending rate,
Rate. A flow's UPDATE function uses a few local (i.e. per-flow) Rate. A flow's UPDATE function uses a few local (i.e. per-flow)
temporary variables, which are all initialized to 0: DELTA, temporary variables, which are all initialized to 0: DELTA,
new_S_CR and S_P. new_S_CR and S_P.
skipping to change at page 21, line 43 skipping to change at page 22, line 41
connection to the prioritization text there. connection to the prioritization text there.
C.2.3. Changes from -01 to -02 C.2.3. Changes from -01 to -02
o Minor changes. o Minor changes.
o Moved references of NADA and GCC from informative to normative. o Moved references of NADA and GCC from informative to normative.
o Added a reference for the passive variant of the algorithm. o Added a reference for the passive variant of the algorithm.
Authors' Addresses C.2.4. Changes from -02 to -03
o Minor changes.
o Added a section about expected feedback from experiments.
Authors' Addresses
Safiqul Islam Safiqul Islam
University of Oslo University of Oslo
PO Box 1080 Blindern PO Box 1080 Blindern
Oslo N-0316 Oslo N-0316
Norway Norway
Phone: +47 22 84 08 37 Phone: +47 22 84 08 37
Email: safiquli@ifi.uio.no Email: safiquli@ifi.uio.no
Michael Welzl Michael Welzl
University of Oslo University of Oslo
PO Box 1080 Blindern PO Box 1080 Blindern
Oslo N-0316 Oslo N-0316
Norway Norway
Phone: +47 22 85 24 20 Phone: +47 22 85 24 20
Email: michawe@ifi.uio.no Email: michawe@ifi.uio.no
Stein Gjessing Stein Gjessing
 End of changes. 27 change blocks. 
52 lines changed or deleted 87 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/