| rfc8872v3.txt | rfc8872.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) M. Westerlund | Internet Engineering Task Force (IETF) M. Westerlund | |||
| Request for Comments: 8872 B. Burman | Request for Comments: 8872 B. Burman | |||
| Category: Informational Ericsson | Category: Informational Ericsson | |||
| ISSN: 2070-1721 C. Perkins | ISSN: 2070-1721 C. Perkins | |||
| University of Glasgow | University of Glasgow | |||
| H. Alvestrand | H. Alvestrand | |||
| R. Even | R. Even | |||
| September 2020 | January 2021 | |||
| Guidelines for Using the Multiplexing Features of RTP to Support | Guidelines for Using the Multiplexing Features of RTP to Support | |||
| Multiple Media Streams | Multiple Media Streams | |||
| Abstract | Abstract | |||
| The Real-time Transport Protocol (RTP) is a flexible protocol that | The Real-time Transport Protocol (RTP) is a flexible protocol that | |||
| can be used in a wide range of applications, networks, and system | can be used in a wide range of applications, networks, and system | |||
| topologies. That flexibility makes for wide applicability but can | topologies. That flexibility makes for wide applicability but can | |||
| complicate the application design process. One particular design | complicate the application design process. One particular design | |||
| skipping to change at line 44 ¶ | skipping to change at line 44 ¶ | |||
| 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/rfc8872. | https://www.rfc-editor.org/info/rfc8872. | |||
| 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 | |||
| skipping to change at line 357 ¶ | skipping to change at line 357 ¶ | |||
| media descriptions to be used so that RTP Session Groups can be | media descriptions to be used so that RTP Session Groups can be | |||
| created. Through the use of "Negotiating Media Multiplexing Using | created. Through the use of "Negotiating Media Multiplexing Using | |||
| the Session Description Protocol (SDP)" [RFC8843], multiple media | the Session Description Protocol (SDP)" [RFC8843], multiple media | |||
| descriptions become part of a common RTP session where each media | descriptions become part of a common RTP session where each media | |||
| description represents the RTP streams sent or received for a media | description represents the RTP streams sent or received for a media | |||
| source. | source. | |||
| RTP makes no normative statements about the relationship between | RTP makes no normative statements about the relationship between | |||
| different RTP sessions; however, applications that use more than one | different RTP sessions; however, applications that use more than one | |||
| RTP session need to understand how the different RTP sessions that | RTP session need to understand how the different RTP sessions that | |||
| are created relate to one another. | they create relate to one another. | |||
| 3.2.2. Synchronization Source (SSRC) | 3.2.2. Synchronization Source (SSRC) | |||
| An SSRC identifies a source of an RTP stream, or an RTP receiver when | An SSRC identifies a source of an RTP stream, or an RTP receiver when | |||
| sending RTCP. Every endpoint has at least one SSRC identifier, even | sending RTCP. Every endpoint has at least one SSRC identifier, even | |||
| if it does not send RTP packets. RTP endpoints that are only RTP | if it does not send RTP packets. RTP endpoints that are only RTP | |||
| receivers still send RTCP and use their SSRC identifiers in the RTCP | receivers still send RTCP and use their SSRC identifiers in the RTCP | |||
| packets they send. An endpoint can have multiple SSRC identifiers if | packets they send. An endpoint can have multiple SSRC identifiers if | |||
| it sends multiple RTP streams. Endpoints that function as both RTP | it sends multiple RTP streams. Endpoints that function as both RTP | |||
| sender and RTP receiver use the same SSRC(s) in both roles. | sender and RTP receiver use the same SSRC(s) in both roles. | |||
| skipping to change at line 749 ¶ | skipping to change at line 749 ¶ | |||
| SSRC carrying the RTP retransmission payload, where that SSRC is from | SSRC carrying the RTP retransmission payload, where that SSRC is from | |||
| the same CNAME. This limits a requester to having only one | the same CNAME. This limits a requester to having only one | |||
| outstanding retransmission request on any new SSRCs per endpoint. | outstanding retransmission request on any new SSRCs per endpoint. | |||
| "RTP Payload Format Restrictions" [RFC8851] provides an RTP/RTCP- | "RTP Payload Format Restrictions" [RFC8851] provides an RTP/RTCP- | |||
| based mechanism to unambiguously identify the RTP streams within an | based mechanism to unambiguously identify the RTP streams within an | |||
| RTP session and restrict the streams' payload format parameters in a | RTP session and restrict the streams' payload format parameters in a | |||
| codec-agnostic way beyond what is provided with the regular payload | codec-agnostic way beyond what is provided with the regular payload | |||
| types. The mapping is done by specifying an "a=rid" value in the SDP | types. The mapping is done by specifying an "a=rid" value in the SDP | |||
| offer/answer signaling and having the corresponding RtpStreamId value | offer/answer signaling and having the corresponding RtpStreamId value | |||
| as an SDES item and an RTP header extension. The RID solution also | as an SDES item and an RTP header extension [RFC8852]. The RID | |||
| includes a solution for binding redundancy RTP streams to their | solution also includes a solution for binding redundancy RTP streams | |||
| original source RTP streams, given that those streams use RID | to their original source RTP streams, given that those streams use | |||
| identifiers. | RID identifiers. The redundancy stream uses the RepairedRtpStreamId | |||
| SDES item and RTP header extension to declare the RtpStreamId value | ||||
| of the source stream to create the binding. | ||||
| Experience has shown that an explicit binding between the RTP | Experience has shown that an explicit binding between the RTP | |||
| streams, agnostic of SSRC values, behaves well. That way, solutions | streams, agnostic of SSRC values, behaves well. That way, solutions | |||
| using multiple RTP streams in a single RTP session and in multiple | using multiple RTP streams in a single RTP session and in multiple | |||
| RTP sessions will use the same type of binding. | RTP sessions will use the same type of binding. | |||
| 3.4.4. Forward Error Correction | 3.4.4. Forward Error Correction | |||
| There exist a number of FEC-based schemes designed to mitigate packet | There exist a number of FEC-based schemes designed to mitigate packet | |||
| loss in the original streams. Most of the FEC schemes protect a | loss in the original streams. Most of the FEC schemes protect a | |||
| skipping to change at line 1633 ¶ | skipping to change at line 1635 ¶ | |||
| DOI 10.17487/RFC7656, November 2015, | DOI 10.17487/RFC7656, November 2015, | |||
| <https://www.rfc-editor.org/info/rfc7656>. | <https://www.rfc-editor.org/info/rfc7656>. | |||
| [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, | [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, | |||
| DOI 10.17487/RFC7667, November 2015, | DOI 10.17487/RFC7667, November 2015, | |||
| <https://www.rfc-editor.org/info/rfc7667>. | <https://www.rfc-editor.org/info/rfc7667>. | |||
| [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | |||
| "Negotiating Media Multiplexing Using the Session | "Negotiating Media Multiplexing Using the Session | |||
| Description Protocol (SDP)", RFC 8843, | Description Protocol (SDP)", RFC 8843, | |||
| DOI 10.17487/RFC8843, September 2020, | DOI 10.17487/RFC8843, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8843>. | <https://www.rfc-editor.org/info/rfc8843>. | |||
| [RFC8851] Roach, A.B., Ed., "RTP Payload Format Restrictions", | [RFC8851] Roach, A.B., Ed., "RTP Payload Format Restrictions", | |||
| RFC 8851, DOI 10.17487/RFC8851, September 2020, | RFC 8851, DOI 10.17487/RFC8851, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8851>. | <https://www.rfc-editor.org/info/rfc8851>. | |||
| [RFC8852] Roach, A.B., Nandakumar, S., and P. Thatcher, "RTP Stream | ||||
| Identifier Source Description (SDES)", RFC 8852, | ||||
| DOI 10.17487/RFC8852, January 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8852>. | ||||
| [RFC8860] Westerlund, M., Perkins, C., and J. Lennox, "Sending | [RFC8860] Westerlund, M., Perkins, C., and J. Lennox, "Sending | |||
| Multiple Types of Media in a Single RTP Session", | Multiple Types of Media in a Single RTP Session", | |||
| RFC 8860, DOI 10.17487/RFC8860, September 2020, | RFC 8860, DOI 10.17487/RFC8860, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8860>. | <https://www.rfc-editor.org/info/rfc8860>. | |||
| [RFC8870] Jennings, C., Mattsson, J., McGrew, D., Wing, D., and F. | [RFC8870] Jennings, C., Mattsson, J., McGrew, D., Wing, D., and F. | |||
| Andreasen, "Encrypted Key Transport for DTLS and Secure | Andreasen, "Encrypted Key Transport for DTLS and Secure | |||
| RTP", RFC 8870, DOI 10.17487/RFC8870, September 2020, | RTP", RFC 8870, DOI 10.17487/RFC8870, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8870>. | <https://www.rfc-editor.org/info/rfc8870>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [JINGLE] Ludwig, S., Beda, J., Saint-Andre, P., McQueen, R., Egan, | [JINGLE] Ludwig, S., Beda, J., Saint-Andre, P., McQueen, R., Egan, | |||
| S., and J. Hildebrand, "XEP-0166: Jingle", September 2018, | S., and J. Hildebrand, "XEP-0166: Jingle", September 2018, | |||
| <https://xmpp.org/extensions/xep-0166.html>. | <https://xmpp.org/extensions/xep-0166.html>. | |||
| [RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., | [RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., | |||
| Handley, M., Bolot, J.C., Vega-Garcia, A., and S. Fosse- | Handley, M., Bolot, J.C., Vega-Garcia, A., and S. Fosse- | |||
| skipping to change at line 1787 ¶ | skipping to change at line 1794 ¶ | |||
| "Sending Multiple RTP Streams in a Single RTP Session", | "Sending Multiple RTP Streams in a Single RTP Session", | |||
| RFC 8108, DOI 10.17487/RFC8108, March 2017, | RFC 8108, DOI 10.17487/RFC8108, March 2017, | |||
| <https://www.rfc-editor.org/info/rfc8108>. | <https://www.rfc-editor.org/info/rfc8108>. | |||
| [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive | [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive | |||
| Connectivity Establishment (ICE): A Protocol for Network | Connectivity Establishment (ICE): A Protocol for Network | |||
| Address Translator (NAT) Traversal", RFC 8445, | Address Translator (NAT) Traversal", RFC 8445, | |||
| DOI 10.17487/RFC8445, July 2018, | DOI 10.17487/RFC8445, July 2018, | |||
| <https://www.rfc-editor.org/info/rfc8445>. | <https://www.rfc-editor.org/info/rfc8445>. | |||
| [RFC8852] Roach, A.B., Nandakumar, S., and P. Thatcher, "RTP Stream | ||||
| Identifier Source Description (SDES)", RFC 8852, | ||||
| DOI 10.17487/RFC8852, September 2020, | ||||
| <https://www.rfc-editor.org/info/rfc8852>. | ||||
| [RFC8871] Jones, P., Benham, D., and C. Groves, "A Solution | [RFC8871] Jones, P., Benham, D., and C. Groves, "A Solution | |||
| Framework for Private Media in Privacy-Enhanced RTP | Framework for Private Media in Privacy-Enhanced RTP | |||
| Conferencing (PERC)", RFC 8871, DOI 10.17487/RFC8871, | Conferencing (PERC)", RFC 8871, DOI 10.17487/RFC8871, | |||
| September 2020, <https://www.rfc-editor.org/info/rfc8871>. | January 2021, <https://www.rfc-editor.org/info/rfc8871>. | |||
| Appendix A. Dismissing Payload Type Multiplexing | Appendix A. Dismissing Payload Type Multiplexing | |||
| This section documents a number of reasons why using the payload type | This section documents a number of reasons why using the payload type | |||
| as a multiplexing point is unsuitable for most issues related to | as a multiplexing point is unsuitable for most issues related to | |||
| multiple RTP streams. Attempting to use payload type multiplexing | multiple RTP streams. Attempting to use payload type multiplexing | |||
| beyond its defined usage has well-known negative effects on RTP, as | beyond its defined usage has well-known negative effects on RTP, as | |||
| discussed below. To use the payload type as the single discriminator | discussed below. To use the payload type as the single discriminator | |||
| for multiple streams implies that all the different RTP streams are | for multiple streams implies that all the different RTP streams are | |||
| being sent with the same SSRC, thus using the same timestamp and | being sent with the same SSRC, thus using the same timestamp and | |||
| skipping to change at line 2007 ¶ | skipping to change at line 2009 ¶ | |||
| the document. | the document. | |||
| Authors' Addresses | Authors' Addresses | |||
| Magnus Westerlund | Magnus Westerlund | |||
| Ericsson | Ericsson | |||
| Torshamnsgatan 23 | Torshamnsgatan 23 | |||
| SE-164 80 Kista | SE-164 80 Kista | |||
| Sweden | Sweden | |||
| Phone: +46 10 714 82 87 | ||||
| Email: magnus.westerlund@ericsson.com | Email: magnus.westerlund@ericsson.com | |||
| Bo Burman | Bo Burman | |||
| Ericsson | Ericsson | |||
| Gronlandsgatan 31 | Gronlandsgatan 31 | |||
| SE-164 60 Kista | SE-164 60 Kista | |||
| Sweden | Sweden | |||
| Email: bo.burman@ericsson.com | Email: bo.burman@ericsson.com | |||
| End of changes. 12 change blocks. | ||||
| 18 lines changed or deleted | 19 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/ | ||||