| rfc8836v2.txt | rfc8836.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) R. Jesup | Internet Engineering Task Force (IETF) R. Jesup | |||
| Request for Comments: 8836 Mozilla | Request for Comments: 8836 Mozilla | |||
| Category: Informational Z. Sarker, Ed. | Category: Informational Z. Sarker, Ed. | |||
| ISSN: 2070-1721 Ericsson | ISSN: 2070-1721 Ericsson AB | |||
| November 2020 | January 2021 | |||
| Congestion Control Requirements for Interactive Real-Time Media | Congestion Control Requirements for Interactive Real-Time Media | |||
| Abstract | Abstract | |||
| Congestion control is needed for all data transported across the | Congestion control is needed for all data transported across the | |||
| Internet, in order to promote fair usage and prevent congestion | Internet, in order to promote fair usage and prevent congestion | |||
| collapse. The requirements for interactive, point-to-point real-time | collapse. The requirements for interactive, point-to-point real-time | |||
| multimedia, which needs low-delay, semi-reliable data delivery, are | multimedia, which needs low-delay, semi-reliable data delivery, are | |||
| different from the requirements for bulk transfer like FTP or bursty | different from the requirements for bulk transfer like FTP or bursty | |||
| skipping to change at line 47 ¶ | skipping to change at line 47 ¶ | |||
| Internet Engineering Steering Group (IESG). Not all documents | Internet Engineering Steering Group (IESG). Not all documents | |||
| approved by the IESG are candidates for any level of Internet | approved by the IESG are candidates for any level of Internet | |||
| Standard; see Section 2 of RFC 7841. | Standard; see Section 2 of RFC 7841. | |||
| Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
| https://www.rfc-editor.org/info/rfc8836. | https://www.rfc-editor.org/info/rfc8836. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | 1. Introduction | |||
| 1.1. Requirements Language | ||||
| 2. Requirements | 2. Requirements | |||
| 3. Deficiencies of Existing Mechanisms | 3. Deficiencies of Existing Mechanisms | |||
| 4. IANA Considerations | 4. IANA Considerations | |||
| 5. Security Considerations | 5. Security Considerations | |||
| 6. References | 6. References | |||
| 6.1. Normative References | 6.1. Normative References | |||
| 6.2. Informative References | 6.2. Informative References | |||
| Acknowledgements | Acknowledgements | |||
| Authors' Addresses | Authors' Addresses | |||
| skipping to change at line 124 ¶ | skipping to change at line 125 ¶ | |||
| mechanism operate within the constraints defined by these circuit | mechanism operate within the constraints defined by these circuit | |||
| breakers when a circuit breaker is present and that it should not | breakers when a circuit breaker is present and that it should not | |||
| cause congestion collapse when a circuit breaker is not implemented. | cause congestion collapse when a circuit breaker is not implemented. | |||
| Given that this use case is the focus of this document, use cases | Given that this use case is the focus of this document, use cases | |||
| involving non-interactive media such as video streaming and those | involving non-interactive media such as video streaming and those | |||
| using multicast/broadcast-type technologies, are out of scope. | using multicast/broadcast-type technologies, are out of scope. | |||
| The terminology defined in [RFC8825] is used in this memo. | The terminology defined in [RFC8825] is used in this memo. | |||
| 1.1. Requirements Language | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
| document are to be interpreted as described in BCP 14 [RFC2119]. | ||||
| 2. Requirements | 2. Requirements | |||
| 1. The congestion control algorithm must attempt to provide as-low- | 1. The congestion control algorithm MUST attempt to provide as-low- | |||
| as-possible-delay transit for interactive real-time traffic | as-possible-delay transit for interactive real-time traffic | |||
| while still providing a useful amount of bandwidth. There may | while still providing a useful amount of bandwidth. There may | |||
| be lower limits on the amount of bandwidth that is useful, but | be lower limits on the amount of bandwidth that is useful, but | |||
| this is largely application specific, and the application may be | this is largely application specific, and the application may be | |||
| able to modify or remove flows in order to allow some useful | able to modify or remove flows in order to allow some useful | |||
| flows to get enough bandwidth. For example, although there | flows to get enough bandwidth. For example, although there | |||
| might not be enough bandwidth for low-latency video+audio, there | might not be enough bandwidth for low-latency video+audio, there | |||
| could be enough for audio only. | could be enough for audio only. | |||
| a. Jitter (variation in the bitrate over short timescales) is | a. Jitter (variation in the bitrate over short timescales) is | |||
| skipping to change at line 199 ¶ | skipping to change at line 206 ¶ | |||
| [MPEG_DASH] or proprietary media streaming algorithms may | [MPEG_DASH] or proprietary media streaming algorithms may | |||
| compete in bursts with the algorithm and may not be adaptive | compete in bursts with the algorithm and may not be adaptive | |||
| within a burst. They are often layered on top of TCP but | within a burst. They are often layered on top of TCP but | |||
| use TCP in a bursty manner that can interact poorly with | use TCP in a bursty manner that can interact poorly with | |||
| competing flows during the bursts. The algorithm must not | competing flows during the bursts. The algorithm must not | |||
| increase the already existing delay buildup during those | increase the already existing delay buildup during those | |||
| bursts. Note that this competing traffic may be on a shared | bursts. Note that this competing traffic may be on a shared | |||
| access link, or the traffic burst may cause a shift in the | access link, or the traffic burst may cause a shift in the | |||
| location of the bottleneck for the duration of the burst. | location of the bottleneck for the duration of the burst. | |||
| 2. The algorithm must be fair to other flows, both real-time flows | 2. The algorithm MUST be fair to other flows, both real-time flows | |||
| (such as other instances of itself) and TCP flows, both long- | (such as other instances of itself) and TCP flows, both long- | |||
| lived flows and bursts such as the traffic generated by a | lived flows and bursts such as the traffic generated by a | |||
| typical web-browsing session. Note that "fair" is a rather | typical web-browsing session. Note that "fair" is a rather | |||
| hard-to-define term. It should be fair with itself, giving a | hard-to-define term. It SHOULD be fair with itself, giving a | |||
| fair share of the bandwidth to multiple flows with similar RTTs, | fair share of the bandwidth to multiple flows with similar RTTs, | |||
| and if possible to multiple flows with different RTTs. | and if possible to multiple flows with different RTTs. | |||
| a. Existing flows at a bottleneck must also be fair to new | a. Existing flows at a bottleneck must also be fair to new | |||
| flows to that bottleneck and must allow new flows to ramp up | flows to that bottleneck and must allow new flows to ramp up | |||
| to a useful share of the bottleneck bandwidth as quickly as | to a useful share of the bottleneck bandwidth as quickly as | |||
| possible. A useful share will depend on the media types | possible. A useful share will depend on the media types | |||
| involved, total bandwidth available, and the user-experience | involved, total bandwidth available, and the user-experience | |||
| requirements of a particular service. Note that relative | requirements of a particular service. Note that relative | |||
| RTTs may affect the rate at which new flows can ramp up to a | RTTs may affect the rate at which new flows can ramp up to a | |||
| reasonable share. | reasonable share. | |||
| 3. The algorithm should not starve competing TCP flows and should, | 3. The algorithm SHOULD NOT starve competing TCP flows and SHOULD, | |||
| as best as possible, avoid starvation by TCP flows. | as best as possible, avoid starvation by TCP flows. | |||
| a. The congestion control should prioritize achieving a useful | a. The congestion control should prioritize achieving a useful | |||
| share of the bandwidth depending on the media types and | share of the bandwidth depending on the media types and | |||
| total available bandwidth over achieving as-low-as-possible | total available bandwidth over achieving as-low-as-possible | |||
| transit delay, when these two requirements are in conflict. | transit delay, when these two requirements are in conflict. | |||
| 4. The algorithm should adapt as quickly as possible to initial | 4. The algorithm SHOULD adapt as quickly as possible to initial | |||
| network conditions at the start of a flow. This should occur | network conditions at the start of a flow. This SHOULD occur | |||
| whether the initial bandwidth is above or below the bottleneck | whether the initial bandwidth is above or below the bottleneck | |||
| bandwidth. | bandwidth. | |||
| a. The algorithm should allow different modes of adaptation; | a. The algorithm should allow different modes of adaptation; | |||
| for example, the startup adaptation may be faster than | for example, the startup adaptation may be faster than | |||
| adaptation later in a flow. It should allow for both slow- | adaptation later in a flow. It should allow for both slow- | |||
| start operation (adapt up) and history-based startup (start | start operation (adapt up) and history-based startup (start | |||
| at a point expected to be at or below channel bandwidth from | at a point expected to be at or below channel bandwidth from | |||
| historical information, which may need to adapt down quickly | historical information, which may need to adapt down quickly | |||
| if the initial guess is wrong). Starting too low and/or | if the initial guess is wrong). Starting too low and/or | |||
| skipping to change at line 248 ¶ | skipping to change at line 255 ¶ | |||
| high above the available bandwidth causes other problems for | high above the available bandwidth causes other problems for | |||
| user experience, so there's a tension here. Alternative | user experience, so there's a tension here. Alternative | |||
| methods to help startup, such as probing during setup with | methods to help startup, such as probing during setup with | |||
| dummy data, may be useful in some applications; in some | dummy data, may be useful in some applications; in some | |||
| cases, there will be a considerable gap in time between flow | cases, there will be a considerable gap in time between flow | |||
| creation and the initial flow of data. Again, a flow may | creation and the initial flow of data. Again, a flow may | |||
| need to change adaptation rates due to network conditions or | need to change adaptation rates due to network conditions or | |||
| changes in the provided flows (such as unmuting or sending | changes in the provided flows (such as unmuting or sending | |||
| data after a gap). | data after a gap). | |||
| 5. The algorithm should be stable if the RTP streams are halted or | 5. The algorithm SHOULD be stable if the RTP streams are halted or | |||
| discontinuous (for example, when using Voice Activity | discontinuous (for example, when using Voice Activity | |||
| Detection). | Detection). | |||
| a. After stream resumption, the algorithm should attempt to | a. After stream resumption, the algorithm should attempt to | |||
| rapidly regain its previous share of the bandwidth; the | rapidly regain its previous share of the bandwidth; the | |||
| aggressiveness with which this is done will decay with the | aggressiveness with which this is done will decay with the | |||
| length of the pause. | length of the pause. | |||
| 6. Where possible, the algorithm should merge information across | 6. Where possible, the algorithm SHOULD merge information across | |||
| multiple RTP streams sent between two endpoints when those RTP | multiple RTP streams sent between two endpoints when those RTP | |||
| streams share a common bottleneck, whether or not those streams | streams share a common bottleneck, whether or not those streams | |||
| are multiplexed onto the same ports. This will allow congestion | are multiplexed onto the same ports. This will allow congestion | |||
| control of the set of streams together instead of as multiple | control of the set of streams together instead of as multiple | |||
| independent streams. It will also allow better overall | independent streams. It will also allow better overall | |||
| bandwidth management, faster response to changing conditions, | bandwidth management, faster response to changing conditions, | |||
| and fairer sharing of bandwidth with other network users. | and fairer sharing of bandwidth with other network users. | |||
| a. The algorithm should also share information and adaptation | a. The algorithm should also share information and adaptation | |||
| with other non-RTP flows between the same endpoints, such as | with other non-RTP flows between the same endpoints, such as | |||
| skipping to change at line 281 ¶ | skipping to change at line 288 ¶ | |||
| coordinating their bandwidth use and congestion control, the | coordinating their bandwidth use and congestion control, the | |||
| algorithm should allow the application to control the | algorithm should allow the application to control the | |||
| relative split of available bandwidth. The most correlated | relative split of available bandwidth. The most correlated | |||
| bandwidth usage would be with other flows on the same | bandwidth usage would be with other flows on the same | |||
| 5-tuple, but there may be use in coordinating measurement | 5-tuple, but there may be use in coordinating measurement | |||
| and control of the local link(s). Use of information about | and control of the local link(s). Use of information about | |||
| previous flows, especially on the same 5-tuple, may be | previous flows, especially on the same 5-tuple, may be | |||
| useful input to the algorithm, especially regarding startup | useful input to the algorithm, especially regarding startup | |||
| performance of a new flow. | performance of a new flow. | |||
| 7. The algorithm should not require any special support from | 7. The algorithm SHOULD NOT require any special support from | |||
| network elements to be able to convey congestion-related | network elements to be able to convey congestion-related | |||
| information. As much as possible, it should leverage available | information. As much as possible, it SHOULD leverage available | |||
| information about the incoming flow to provide feedback to the | information about the incoming flow to provide feedback to the | |||
| sender. Examples of this information are the packet arrival | sender. Examples of this information are the packet arrival | |||
| times, acknowledgements and feedback, packet timestamps, packet | times, acknowledgements and feedback, packet timestamps, packet | |||
| losses, and Explicit Congestion Notification (ECN) [RFC3168]; | losses, and Explicit Congestion Notification (ECN) [RFC3168]; | |||
| all of these can provide information about the state of the path | all of these can provide information about the state of the path | |||
| and any bottlenecks. However, the use of available information | and any bottlenecks. However, the use of available information | |||
| is algorithm dependent. | is algorithm dependent. | |||
| a. Extra information could be added to the packets to provide | a. Extra information could be added to the packets to provide | |||
| more detailed information on actual send times (as opposed | more detailed information on actual send times (as opposed | |||
| to sampling times), but such information should not be | to sampling times), but such information should not be | |||
| required. | required. | |||
| 8. Since the assumption here is a set of RTP streams, the | 8. Since the assumption here is a set of RTP streams, the | |||
| backchannel typically should be done via the RTP Control | backchannel typically SHOULD be done via the RTP Control | |||
| Protocol (RTCP) [RFC3550]; instead, one alternative would be to | Protocol (RTCP) [RFC3550]; instead, one alternative would be to | |||
| include it in a reverse-RTP channel using header extensions. | include it in a reverse-RTP channel using header extensions. | |||
| a. In order to react sufficiently quickly when using RTCP for a | a. In order to react sufficiently quickly when using RTCP for a | |||
| backchannel, an RTP profile such as RTP/AVPF [RFC4585] or | backchannel, an RTP profile such as RTP/AVPF [RFC4585] or | |||
| RTP/SAVPF [RFC5124] that allows sufficiently frequent | RTP/SAVPF [RFC5124] that allows sufficiently frequent | |||
| feedback must be used. Note that in some cases, backchannel | feedback must be used. Note that in some cases, backchannel | |||
| messages may be delayed until the RTCP channel can be | messages may be delayed until the RTCP channel can be | |||
| allocated enough bandwidth, even under AVPF rules. This may | allocated enough bandwidth, even under AVPF rules. This may | |||
| also imply negotiating a higher maximum percentage for RTCP | also imply negotiating a higher maximum percentage for RTCP | |||
| skipping to change at line 333 ¶ | skipping to change at line 340 ¶ | |||
| frequent and use more reverse-channel bandwidth. This is an | frequent and use more reverse-channel bandwidth. This is an | |||
| area with considerable flexibility of design, and different | area with considerable flexibility of design, and different | |||
| approaches to backchannel messages and frequency are | approaches to backchannel messages and frequency are | |||
| expected to be evaluated. | expected to be evaluated. | |||
| 9. Flows managed by this algorithm and flows competing against each | 9. Flows managed by this algorithm and flows competing against each | |||
| other at a bottleneck may have different Differentiated Services | other at a bottleneck may have different Differentiated Services | |||
| Code Point (DSCP) [RFC5865] markings depending on the type of | Code Point (DSCP) [RFC5865] markings depending on the type of | |||
| traffic or may be subject to flow-based QoS. A particular | traffic or may be subject to flow-based QoS. A particular | |||
| bottleneck or section of the network path may or may not honor | bottleneck or section of the network path may or may not honor | |||
| DSCP markings. The algorithm should attempt to leverage DSCP | DSCP markings. The algorithm SHOULD attempt to leverage DSCP | |||
| markings when they're available. | markings when they're available. | |||
| 10. The algorithm should sense the unexpected lack of backchannel | 10. The algorithm SHOULD sense the unexpected lack of backchannel | |||
| information as a possible indication of a channel-overuse | information as a possible indication of a channel-overuse | |||
| problem and react accordingly to avoid burst events causing a | problem and react accordingly to avoid burst events causing a | |||
| congestion collapse. | congestion collapse. | |||
| 11. The algorithm should be stable and maintain low delay when faced | 11. The algorithm SHOULD be stable and maintain low delay when faced | |||
| with Active Queue Management (AQM) algorithms. Also note that | with Active Queue Management (AQM) algorithms. Also note that | |||
| these algorithms may apply across multiple queues in the | these algorithms may apply across multiple queues in the | |||
| bottleneck or to a single queue. | bottleneck or to a single queue. | |||
| 3. Deficiencies of Existing Mechanisms | 3. Deficiencies of Existing Mechanisms | |||
| Among the existing congestion control mechanisms, TCP Friendly Rate | Among the existing congestion control mechanisms, TCP Friendly Rate | |||
| Control (TFRC) [RFC5348] is the one that claims to be suitable for | Control (TFRC) [RFC5348] is the one that claims to be suitable for | |||
| real-time interactive media. TFRC is an equation-based congestion | real-time interactive media. TFRC is an equation-based congestion | |||
| control mechanism that provides a reasonably fair share of bandwidth | control mechanism that provides a reasonably fair share of bandwidth | |||
| skipping to change at line 432 ¶ | skipping to change at line 439 ¶ | |||
| are conceivable and need to be evaluated. Such attacks could result | are conceivable and need to be evaluated. Such attacks could result | |||
| in starvation of competing flows and permit amplification attacks. | in starvation of competing flows and permit amplification attacks. | |||
| Algorithm designers should consider the possibility of malicious on- | Algorithm designers should consider the possibility of malicious on- | |||
| path attackers. | path attackers. | |||
| 6. References | 6. References | |||
| 6.1. Normative References | 6.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
| Requirement Levels", BCP 14, RFC 2119, | ||||
| DOI 10.17487/RFC2119, March 1997, | ||||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | |||
| Jacobson, "RTP: A Transport Protocol for Real-Time | Jacobson, "RTP: A Transport Protocol for Real-Time | |||
| Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, | Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, | |||
| July 2003, <https://www.rfc-editor.org/info/rfc3550>. | July 2003, <https://www.rfc-editor.org/info/rfc3550>. | |||
| [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | |||
| "Extended RTP Profile for Real-time Transport Control | "Extended RTP Profile for Real-time Transport Control | |||
| Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | |||
| DOI 10.17487/RFC4585, July 2006, | DOI 10.17487/RFC4585, July 2006, | |||
| <https://www.rfc-editor.org/info/rfc4585>. | <https://www.rfc-editor.org/info/rfc4585>. | |||
| [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for | [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for | |||
| Real-time Transport Control Protocol (RTCP)-Based Feedback | Real-time Transport Control Protocol (RTCP)-Based Feedback | |||
| (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February | (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February | |||
| 2008, <https://www.rfc-editor.org/info/rfc5124>. | 2008, <https://www.rfc-editor.org/info/rfc5124>. | |||
| [RFC8825] Alvestrand, H., "Overview: Real-Time Protocols for | [RFC8825] Alvestrand, H., "Overview: Real-Time Protocols for | |||
| Browser-Based Applications", RFC 8825, | Browser-Based Applications", RFC 8825, | |||
| DOI 10.17487/RFC8825, November 2020, | DOI 10.17487/RFC8825, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8825>. | <https://www.rfc-editor.org/info/rfc8825>. | |||
| 6.2. Informative References | 6.2. Informative References | |||
| [CH09] Choi, S. and M. Handley, "Designing TCP-Friendly Window- | [CH09] Choi, S. and M. Handley, "Designing TCP-Friendly Window- | |||
| based Congestion Control for Real-time Multimedia | based Congestion Control for Real-time Multimedia | |||
| Applications", Proceedings of PFLDNeT, May 2009. | Applications", Proceedings of PFLDNeT, May 2009. | |||
| [MPEG_DASH] | [MPEG_DASH] | |||
| ISO, "Information Technology -- Dynamic adaptive streaming | ISO, "Information Technology -- Dynamic adaptive streaming | |||
| skipping to change at line 502 ¶ | skipping to change at line 514 ¶ | |||
| Interactive Real-Time Communication", RFC 7295, | Interactive Real-Time Communication", RFC 7295, | |||
| DOI 10.17487/RFC7295, July 2014, | DOI 10.17487/RFC7295, July 2014, | |||
| <https://www.rfc-editor.org/info/rfc7295>. | <https://www.rfc-editor.org/info/rfc7295>. | |||
| [RFC8083] Perkins, C. and V. Singh, "Multimedia Congestion Control: | [RFC8083] Perkins, C. and V. Singh, "Multimedia Congestion Control: | |||
| Circuit Breakers for Unicast RTP Sessions", RFC 8083, | Circuit Breakers for Unicast RTP Sessions", RFC 8083, | |||
| DOI 10.17487/RFC8083, March 2017, | DOI 10.17487/RFC8083, March 2017, | |||
| <https://www.rfc-editor.org/info/rfc8083>. | <https://www.rfc-editor.org/info/rfc8083>. | |||
| [RFC8831] Jesup, R., Loreto, S., and M. Tüxen, "WebRTC Data | [RFC8831] Jesup, R., Loreto, S., and M. Tüxen, "WebRTC Data | |||
| Channels", RFC 8831, DOI 10.17487/RFC8831, November 2020, | Channels", RFC 8831, DOI 10.17487/RFC8831, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8831>. | <https://www.rfc-editor.org/info/rfc8831>. | |||
| Acknowledgements | Acknowledgements | |||
| This document is the result of discussions in various fora of the | This document is the result of discussions in various fora of the | |||
| WebRTC effort, in particular on the <rtp-congestion@alvestrand.no> | WebRTC effort, in particular on the <rtp-congestion@alvestrand.no> | |||
| mailing list. Many people contributed their thoughts to this. | mailing list. Many people contributed their thoughts to this. | |||
| Authors' Addresses | Authors' Addresses | |||
| Randell Jesup | Randell Jesup | |||
| Mozilla | Mozilla | |||
| United States of America | United States of America | |||
| Email: randell-ietf@jesup.org | Email: randell-ietf@jesup.org | |||
| Zaheduzzaman Sarker (editor) | Zaheduzzaman Sarker (editor) | |||
| Ericsson | Ericsson AB | |||
| Torshamnsgatan 23 | ||||
| SE-164 83 Stockholm | ||||
| Sweden | Sweden | |||
| Phone: +46 10 717 37 43 | ||||
| Email: zaheduzzaman.sarker@ericsson.com | Email: zaheduzzaman.sarker@ericsson.com | |||
| End of changes. 22 change blocks. | ||||
| 20 lines changed or deleted | 35 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||