summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8858.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8858.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8858.txt')
-rw-r--r--doc/rfc/rfc8858.txt458
1 files changed, 458 insertions, 0 deletions
diff --git a/doc/rfc/rfc8858.txt b/doc/rfc/rfc8858.txt
new file mode 100644
index 0000000..7a350f6
--- /dev/null
+++ b/doc/rfc/rfc8858.txt
@@ -0,0 +1,458 @@
+
+
+
+
+Internet Engineering Task Force (IETF) C. Holmberg
+Request for Comments: 8858 Ericsson
+Updates: 5761 January 2021
+Category: Standards Track
+ISSN: 2070-1721
+
+
+ Indicating Exclusive Support of RTP and RTP Control Protocol (RTCP)
+ Multiplexing Using the Session Description Protocol (SDP)
+
+Abstract
+
+ This document defines a new Session Description Protocol (SDP) media-
+ level attribute, 'rtcp-mux-only', that can be used by an endpoint to
+ indicate exclusive support of RTP and RTP Control Protocol (RTCP)
+ multiplexing. The document also updates RFC 5761 by clarifying that
+ an offerer can use a mechanism to indicate that it is not able to
+ send and receive RTCP on separate ports.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc8858.
+
+Copyright Notice
+
+ Copyright (c) 2021 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Conventions
+ 3. SDP 'rtcp-mux-only' Attribute
+ 4. SDP Offer/Answer Procedures
+ 4.1. General
+ 4.2. Generating the Initial SDP Offer
+ 4.3. Generating the Answer
+ 4.4. Offerer Processing of the SDP Answer
+ 4.5. Modifying the Session
+ 5. Update to RFC 5761
+ 5.1. General
+ 5.2. Update to 4th Paragraph of Section 5.1.1
+ 5.3. Update to 2nd Paragraph of Section 5.1.3
+ 6. ICE Considerations
+ 7. Security Considerations
+ 8. IANA Considerations
+ 9. References
+ 9.1. Normative References
+ 9.2. Informative References
+ Acknowledgements
+ Author's Address
+
+1. Introduction
+
+ [RFC5761] defines how to multiplex RTP and RTCP on a single IP
+ address and port, referred to as RTP/RTCP multiplexing. [RFC5761]
+ also defines an SDP [RFC4566] attribute, 'rtcp-mux', that can be used
+ by entities to indicate support of RTP/RTCP multiplexing and
+ negotiate usage of it.
+
+ As defined in [RFC5761], if the peer endpoint does not support RTP/
+ RTCP multiplexing, both endpoints should use separate ports for
+ sending and receiving of RTCP (referred to as fallback to usage of
+ separate ports for RTP and RTCP).
+
+ Some newer applications that do not require backward compatibility
+ with peers that cannot multiplex RTCP might choose not to implement
+ separation of RTP and RTCP. Examples of such applications are W3C
+ WebRTC applications [WebRTC], which are not required to interoperate
+ with non-WebRTC clients. For such applications, this document
+ defines an SDP attribute to signal intent to require multiplexing.
+ The use of this attribute in SDP offers [RFC3264] may harm the
+ interoperability of entities that ever need to interoperate with
+ peers that do not support RTC/RTCP multiplexing. Also, while the SDP
+ answerer [RFC3264] might support, and prefer usage of, fallback to
+ nonmultiplex, the attribute indicates that fallback to nonmultiplex
+ cannot be enabled. One example of where nonmultiplex is preferred is
+ where an endpoint is connected to a radio interface and wants to use
+ different bearers (possibly with different quality characteristics)
+ for RTP and RTCP. Another example is where one endpoint is acting as
+ a gateway to a network where RTP/RTCP multiplexing cannot be used.
+ In such a case, the endpoint may also prefer nonmultiplexing towards
+ the other network. Otherwise, the endpoint would have to perform
+ demultiplexing of RTP and RTCP.
+
+ This document defines a new SDP media-level attribute, 'rtcp-mux-
+ only', that can be used by an endpoint to indicate exclusive support
+ of RTP/RTCP multiplexing. The document also updates [RFC5761] by
+ clarifying that an offerer can use a mechanism to indicate that it is
+ not able to send and receive RTCP on separate ports.
+
+ This document also describes the Interactive Connectivity
+ Establishment (ICE) [RFC8445] considerations when indicating
+ exclusive support of RTP/RTCP multiplexing.
+
+2. Conventions
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+3. SDP 'rtcp-mux-only' Attribute
+
+ This section defines a new SDP media-level attribute, 'rtcp-mux-
+ only'.
+
+ Name: rtcp-mux-only
+
+ Value: N/A
+
+ Usage Level: media
+
+ Charset Dependent: no
+
+ Syntax: rtcp-mux-only
+
+ Example: a=rtcp-mux-only
+
+ In an SDP offer, the offerer uses the SDP 'rtcp-mux-only' attribute
+ to indicate exclusive support of RTP/RTCP multiplexing for the RTP-
+ based media associated with the SDP media description ("m=" line).
+
+ In an SDP answer, the 'rtcp-mux' attribute [RFC5761] indicates that
+ the answerer supports, and accepts usage of, RTP/RTCP multiplexing
+ for the RTP-based media associated with the SDP media description
+ ("m=" line).
+
+ The usage of the 'rtcp-mux-only' attribute in an SDP answer is
+ forbidden.
+
+ The usage of the SDP 'rtcp-mux-only' attribute is only defined for
+ RTP-based media.
+
+ The mux category [RFC8859] for the 'rtcp-mux-only' attribute is
+ "IDENTICAL", which means that the attribute, if used within a BUNDLE
+ group [RFC8843], must be associated with all multiplexed RTP-based
+ media descriptions within the BUNDLE group.
+
+ The 'rtcp-mux-only' attribute applies to the whole associated media
+ description. The attribute MUST NOT be defined per source (using the
+ SDP 'ssrc' attribute [RFC5576]).
+
+ The SDP offer/answer procedures [RFC3264] associated with the
+ attribute are defined in Section 4.
+
+4. SDP Offer/Answer Procedures
+
+4.1. General
+
+ This section defines the SDP offer/answer procedures [RFC3264] for
+ indicating exclusive support of RTP/RTCP multiplexing and negotiating
+ usage of it.
+
+ The procedures in this section apply to individual RTP-based SDP
+ media descriptions ("m=" lines).
+
+4.2. Generating the Initial SDP Offer
+
+ When sending the initial offer, if the offerer wants to indicate
+ exclusive RTP/RTCP multiplexing for RTP-based media, it MUST
+ associate an SDP 'rtcp-mux-only' attribute with the associated SDP
+ media description ("m=" line).
+
+ In addition, if the offerer associates an SDP 'rtcp-mux-only'
+ attribute with an SDP media description ("m=" line), the offerer MUST
+ also associate an SDP 'rtcp-mux' attribute with the same SDP media
+ description ("m=" line), following the procedures in [RFC5761].
+
+ If the offerer associates an SDP 'rtcp' attribute [RFC3605] with an
+ SDP media description ("m=" line), and if the offerer also associates
+ an SDP 'rtcp-mux-only' attribute with the same SDP media description
+ ("m=" line), the address and port values of the SDP 'rtcp' attribute
+ MUST match the corresponding values for RTP.
+
+ NOTE: This specification does not mandate the usage of the SDP 'rtcp'
+ attribute for RTP/RTCP multiplexing.
+
+4.3. Generating the Answer
+
+ When an answerer receives an offer that contains an SDP 'rtcp-mux-
+ only' attribute associated with an RTP-based SDP media description
+ ("m=" line), then if the answerer accepts the usage of RTP/RTCP
+ multiplexing, it MUST associate an SDP 'rtcp-mux' attribute with the
+ corresponding SDP media description ("m=") in the associated answer,
+ following the procedures in [RFC5761]. If the answerer does not
+ accept the usage of RTP/RTCP multiplexing, it MUST either reject the
+ SDP media description ("m=") by setting the port value to zero in the
+ associated answer, or reject the whole offer, following the
+ procedures in [RFC3264].
+
+ The answerer MUST NOT associate an SDP 'rtcp-mux-only' attribute with
+ an SDP media description ("m=" line) in the answer.
+
+4.4. Offerer Processing of the SDP Answer
+
+ If an offerer associated an SDP 'rtcp-mux-only' attribute with an
+ RTP-based SDP media description ("m=" line) in an offer, and if the
+ corresponding SDP media description ("m=" line) in the associated
+ answer contains an SDP 'rtcp-mux' attribute, the offerer MUST apply
+ the RTP/RTCP multiplexing procedures [RFC5761] to the associated RTP-
+ based media. If the corresponding SDP media description ("m=" line)
+ in the associated answer does not contain an SDP 'rtcp-mux'
+ attribute, the offerer MUST either take appropriate actions in order
+ to disable the associated RTP-based media -- e.g., send a new offer
+ with a zero port value associated with the SDP media description
+ ("m=" line) -- or send a new offer without associating an SDP 'rtcp-
+ mux-only' attribute with the SDP media description ("m=" line).
+
+ NOTE: This document does not mandate specific actions on how to
+ terminate the RTP media. The offerer might, for example, terminate
+ the RTP media by sending a new offer in which the port value of the
+ SDP media description is set to zero.
+
+4.5. Modifying the Session
+
+ When an offerer sends a subsequent offer, if the offerer and answerer
+ have previously negotiated usage of exclusive RTP/RTCP multiplexing
+ for the media associated with an RTP-based SDP media description
+ ("m=" line), the offerer SHOULD associate an SDP 'rtcp-mux-only' with
+ the corresponding SDP media description ("m=" line).
+
+ In addition, if the offerer associates an SDP 'rtcp-mux-only'
+ attribute with an SDP media description ("m=" line), the offerer MUST
+ also associate an SDP 'rtcp-mux' attribute with the same SDP media
+ description ("m=" line), following the procedures in [RFC5761].
+
+ If the offerer does not associate the attributes with the
+ corresponding SDP media description ("m=" line), it is an indication
+ that the offerer no longer wants to use RTP/RTCP multiplexing and
+ instead MUST fall back to usage of separate ports for RTP and RTCP
+ once the offer has been accepted by the answerer.
+
+ When an offerer sends a subsequent offer, if the offerer and answerer
+ have not previously negotiated usage of RTP/RTCP multiplexing for the
+ media associated with an RTP-based SDP media description ("m=" line),
+ the offerer MAY indicate exclusive support of RTP/RTCP multiplexing,
+ following the procedures in Section 4.2. The offerer MUST process
+ the associated answer following the procedures in Section 4.4.
+
+ It is RECOMMENDED to not switch between usage of RTP/RTCP
+ multiplexing and usage of separate ports for RTP and RTCP in a
+ subsequent offer, unless there is a use case that mandates it.
+
+5. Update to RFC 5761
+
+5.1. General
+
+ This section updates Sections 5.1.1 and 5.1.3 of [RFC5761] by
+ clarifying that an offerer can use a mechanism to indicate that it is
+ not able to send and receive RTCP on separate ports, and that the
+ offerer shall terminate the affected streams if the answerer does not
+ indicate support of RTP/RTCP multiplexing. It also clarifies that,
+ when the offerer is not able to send and receive RTCP on separate
+ ports, the offerer will not provide an SDP 'candidate' attribute for
+ RTCP, nor will the offerer provide a fallback port for RTCP (using
+ the SDP 'rtcp' attribute).
+
+5.2. Update to 4th Paragraph of Section 5.1.1
+
+ NOTE: [RFC8035] also updates Section 5.1.1 of [RFC5761]. While the
+ paragraph updated in this document is not updated by [RFC8035], the
+ location of the paragraph within Section 5.1.1 is moved.
+
+ OLD TEXT:
+
+ | If the answer does not contain an "a=rtcp-mux" attribute, the
+ | offerer MUST NOT multiplex RTP and RTCP packets on a single port.
+ | Instead, it should send and receive RTCP on a port allocated
+ | according to the usual port-selection rules (either the port pair,
+ | or a signalled port if the "a=rtcp:" attribute [10] is also
+ | included). This will occur when talking to a peer that does not
+ | understand the "a=rtcp-mux" attribute.
+
+ NEW TEXT:
+
+ | If the answer does not contain an "a=rtcp-mux" attribute, the
+ | offerer MUST NOT multiplex RTP and RTCP packets on a single port.
+ | Instead, it should send and receive RTCP on a port allocated
+ | according to the usual port-selection rules (either the port pair,
+ | or a signaled port if the "a=rtcp:" attribute [10] is also
+ | included). This will occur when talking to a peer that does not
+ | understand the "a=rtcp-mux" attribute. However, if the offerer
+ | indicated in the offer that it is not able to send and receive
+ | RTCP on a separate port, the offerer MUST disable the media
+ | streams associated with the attribute. The mechanism for
+ | indicating that the offerer is not able to send and receive RTCP
+ | on a separate port is outside the scope of this specification.
+
+5.3. Update to 2nd Paragraph of Section 5.1.3
+
+ OLD TEXT:
+
+ | If it is desired to use both ICE and multiplexed RTP and RTCP, the
+ | initial offer MUST contain an "a=rtcp-mux" attribute to indicate
+ | that RTP and RTCP multiplexing is desired and MUST contain
+ | "a=candidate:" lines for both RTP and RTCP along with an "a=rtcp:"
+ | line indicating a fallback port for RTCP in the case that the
+ | answerer does not support RTP and RTCP multiplexing. This MUST be
+ | done for each media where RTP and RTCP multiplexing is desired.
+
+ NEW TEXT:
+
+ | If it is desired to use both ICE and multiplexed RTP and RTCP, the
+ | initial offer MUST contain an "a=rtcp-mux" attribute to indicate
+ | that RTP and RTCP multiplexing is desired and MUST contain
+ | "a=candidate:" lines for both RTP and RTCP along with an "a=rtcp:"
+ | line indicating a fallback port for RTCP in the case that the
+ | answerer does not support RTP and RTCP multiplexing. This MUST be
+ | done for each media where RTP and RTCP multiplexing is desired.
+ | However, if the offerer indicates in the offer that it is not able
+ | to send and receive RTCP on a separate port, the offerer MUST NOT
+ | include "a=candidate:" lines for RTCP and MUST NOT provide a
+ | fallback port for RTCP using the "a=rtcp:" line.
+
+6. ICE Considerations
+
+ As defined in [RFC8445], if an entity is aware that the remote peer
+ supports, and is willing to use, RTP/RTCP multiplexing, the entity
+ will only provide RTP candidates (component ID 1). However, only
+ providing RTP candidates does not, as such, imply exclusive support
+ of RTP/RTCP multiplexing. RTCP candidates also would not be provided
+ in cases where RTCP is not supported at all. Therefore, additional
+ information is needed in order to indicate support of exclusive RTP/
+ RTCP multiplexing. This document defines such a mechanism using the
+ SDP 'rtcp-mux-only' attribute.
+
+7. Security Considerations
+
+ This document does not introduce new security considerations beyond
+ those specified in [RFC3605] and [RFC5761].
+
+8. IANA Considerations
+
+ This document updates the "Session Description Protocol Parameters"
+ registry as specified in Section 8.2.4 of [RFC4566]. Specifically,
+ it adds the SDP 'rtcp-mux-only' attribute to the table for SDP media-
+ level attributes.
+
+ Attribute name: rtcp-mux-only
+
+ Type of attribute: media-level
+
+ Subject to charset: no
+
+ Purpose: Indicate exclusive support of RTP/RTCP multiplexing
+
+ Appropriate Values: N/A
+
+ Contact name: Christer Holmberg (christer.holmberg@ericsson.com)
+
+ Mux Category: IDENTICAL
+
+9. References
+
+9.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>.
+
+ [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
+ with Session Description Protocol (SDP)", RFC 3264,
+ DOI 10.17487/RFC3264, June 2002,
+ <https://www.rfc-editor.org/info/rfc3264>.
+
+ [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
+ Description Protocol", RFC 4566, DOI 10.17487/RFC4566,
+ July 2006, <https://www.rfc-editor.org/info/rfc4566>.
+
+ [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and
+ Control Packets on a Single Port", RFC 5761,
+ DOI 10.17487/RFC5761, April 2010,
+ <https://www.rfc-editor.org/info/rfc5761>.
+
+ [RFC8035] Holmberg, C., "Session Description Protocol (SDP) Offer/
+ Answer Clarifications for RTP/RTCP Multiplexing",
+ RFC 8035, DOI 10.17487/RFC8035, November 2016,
+ <https://www.rfc-editor.org/info/rfc8035>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive
+ Connectivity Establishment (ICE): A Protocol for Network
+ Address Translator (NAT) Traversal", RFC 8445,
+ DOI 10.17487/RFC8445, July 2018,
+ <https://www.rfc-editor.org/info/rfc8445>.
+
+ [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings,
+ "Negotiating Media Multiplexing Using the Session
+ Description Protocol (SDP)", RFC 8843,
+ DOI 10.17487/RFC8843, January 2021,
+ <https://www.rfc-editor.org/info/rfc8843>.
+
+ [RFC8859] Nandakumar, S., "A Framework for Session Description
+ Protocol (SDP) Attributes When Multiplexing", RFC 8859,
+ DOI 10.17487/RFC8859, January 2021,
+ <https://www.rfc-editor.org/info/rfc8859>.
+
+9.2. Informative References
+
+ [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute
+ in Session Description Protocol (SDP)", RFC 3605,
+ DOI 10.17487/RFC3605, October 2003,
+ <https://www.rfc-editor.org/info/rfc3605>.
+
+ [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific
+ Media Attributes in the Session Description Protocol
+ (SDP)", RFC 5576, DOI 10.17487/RFC5576, June 2009,
+ <https://www.rfc-editor.org/info/rfc5576>.
+
+ [WebRTC] Jennings, C., Boström, H., and J-I. Bruaroey, "WebRTC 1.0:
+ Real-time Communication Between Browsers", W3C Proposed
+ Recommendation, <https://www.w3.org/TR/webrtc/>.
+
+Acknowledgements
+
+ Thanks to Roman Shpount, Paul Kyzivat, Ari Keränen, Bo Burman, Tomas
+ Frankkila, and Martin Thomson for their comments and input on the
+ document. Thanks to Francis Dupont for the GENART review.
+
+Author's Address
+
+ Christer Holmberg
+ Ericsson
+ Hirsalantie 11
+ FI-02420 Jorvas
+ Finland
+
+ Email: christer.holmberg@ericsson.com