RFC 8035

Session Description Protocol (SDP) Offer/Answer Clarifications for RTP/RTCP Multiplexing

πŸ“… published November 2016, from ietf

RFC 8035 πŸŽ€ Session Description Protocol (SDP) Offer/Answer Clarifications for RTP/RTCP Multiplexing

  • Number: RFC 8035 πŸ’–
  • Author: Christer Holmberg of Ericsson ✨
  • Category: Standards Track πŸ”₯
  • Date: November 2016 🌸
  • Updates: RFC 5761 πŸ¦‹
  • ISSN: 2070-1721 🧚

Abstract ✨

okay bestie, this doc updates RFC 5761 by making the SDP offer/answer negotiation for RTP and RTP Control Protocol (RTCP) multiplexing super clear πŸ’…. The big point is that an answerer can only put an "a=rtcp-mux" attribute in a Session Description Protocol (SDP) answer if the associated SDP offer had that attribute too πŸ™ˆ.

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 got public review, and the Internet Engineering Steering Group (IESG) approved it for publication ✨. You can find more about Internet Standards in Section 2 of RFC 7841 πŸ“š.

For info on the current status of this document, any errata, and how to send feedback, check http://www.rfc-editor.org/info/rfc8035 🫢.

Copyright (c) 2016 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 (http://trustee.ietf.org/license-info) as they stand on the date this document was published πŸ“œ. Please read these carefully, because they spell out your rights and restrictions for this document. Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as the Simplified BSD License describes πŸ’….

This document may contain material from IETF Documents or IETF Contributions that were published or made publicly available before November 10, 2008 πŸ“. The people who control the copyright in some of that material may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process 😭. Unless you get an adequate license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process. The only exceptions are formatting it for publication as an RFC or translating it into languages other than English 🌸.

Table of Contents πŸ—‚οΈ

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
2.  Conventions . . . . . . . . . . . . . . . . . . . . . . . . .   3
3.  Update to RFC 5761  . . . . . . . . . . . . . . . . . . . . .   3
  3.1.  Update to Section 5.1.1 . . . . . . . . . . . . . . . . .   4
4.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
6.  Normative References  . . . . . . . . . . . . . . . . . . . .   6
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   6
Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1. Introduction ✨

okay so RFC 5761 [RFC5761] is the one that explains how to multiplex RTP data packets and RTP Control Protocol (RTCP) packets on a single UDP port πŸ¦‹. It also covers how to negotiate that multiplexing with the SDP offer/answer mechanism [RFC3264] using an "a=rtcp-mux" attribute πŸŽ€. The problem is that the text wasn't clear on whether an answerer is allowed to include the attribute in an answer when the associated offer didn't have it 😭.

This document updates RFC 5761 [RFC5761] by clarifying that an answerer can only include an "a=rtcp-mux" attribute in an answer if the associated offer contained the attribute πŸ’…. It also clarifies that RTP and RTCP multiplexing is negotiated for usage in both directions πŸ”₯.

2. Conventions πŸ“š

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 [RFC2119] πŸ’œ.

3. Update to RFC 5761 πŸ¦‹

This section updates Section 5.1.1 of RFC 5761 🌸. It clarifies that an answerer can only include an "a=rtcp-mux" attribute in an answer if the associated offer contained the attribute, and it clarifies that RTP and RTCP multiplexing negotiation is for usage in both directions πŸ’–.

3.1. Update to Section 5.1.1 πŸ’…

In this section, any references to Sections 4 and 8 point to those sections in [RFC5761] 🫢.

OLD TEXT:

When the Session Description Protocol (SDP) [8] is used to negotiate RTP sessions following the offer/answer model [9], the "a=rtcp-mux" attribute (see Section 8) indicates the desire to multiplex RTP and RTCP onto a single port. The initial SDP offer MUST include this attribute at the media level to request multiplexing of RTP and RTCP on a single port. For example:

    v=0
    o=csp 1153134164 1153134164 IN IP6 2001:DB8::211:24ff:fea3:7a2e
    s=-
    c=IN IP6 2001:DB8::211:24ff:fea3:7a2e
    t=1153134164 1153137764
    m=audio 49170 RTP/AVP 97
    a=rtpmap:97 iLBC/8000
    a=rtcp-mux

This offer is a unicast voice-over-IP session using the RTP/AVP profile with iLBC coding 🎧. The answerer is asked to send both RTP and RTCP to port 49170 on IPv6 address 2001:DB8::211:24ff:fea3:7a2e πŸ’œ.

If the answerer wants to multiplex RTP and RTCP onto a single port, it MUST include a media-level "a=rtcp-mux" attribute in the answer. The RTP payload types used in the answer MUST conform to the rules in Section 4 πŸ”₯.

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 happen when talking to a peer that doesn't understand the "a=rtcp-mux" attribute 😭.

When SDP is used in a declarative manner, the presence of an "a=rtcp-mux" attribute signals that the sender will multiplex RTP and RTCP on the same port 🌈. The receiver MUST be prepared to receive RTCP packets on the RTP port, and any resource reservation needs to be made including the RTCP bandwidth 🧚.

NEW TEXT:

When the Session Description Protocol (SDP) [8] is used to negotiate RTP sessions following the offer/answer model [9], the "a=rtcp-mux" attribute (see Section 8) indicates the desire to multiplex RTP and RTCP onto a single port, and the usage is always negotiated for both directions πŸ¦‹.

If the offerer wants to multiplex RTP and RTCP onto a single port, the initial SDP offer MUST include the attribute at the media level to request multiplexing of RTP and RTCP on a single port. For example:

     v=0
     o=csp 1153134164 1153134164 IN IP6 2001:DB8::211:24ff:fea3:7a2e
     s=-
     c=IN IP6 2001:DB8::211:24ff:fea3:7a2e
     t=1153134164 1153137764
     m=audio 49170 RTP/AVP 97
     a=rtpmap:97 iLBC/8000
     a=rtcp-mux

This offer is a unicast voice-over-IP session using the RTP/AVP profile with Internet Low Bit Rate Codec (iLBC) coding 🎧. The answerer is asked to send both RTP and RTCP to port 49170 on IPv6 address 2001:DB8::211:24ff:fea3:7a2e πŸ’–.

If the offer contains the "a=rtcp-mux" attribute, and the answerer wants to multiplex RTP and RTCP onto a single port, it MUST include a media-level "a=rtcp-mux" attribute in the answer. The RTP payload types used in the answer MUST conform to the rules in Section 4. If the offer does not contain the "a=rtcp-mux" attribute, the answerer MUST NOT include an "a=rtcp-mux" attribute in the answer, and the answerer MUST NOT multiplex RTP and RTCP packets on a single port πŸ™…β€β™€οΈ.

If the answer contains an "a=rtcp-mux" attribute, the offerer and answerer MUST multiplex RTP and RTCP packets on a single port ✨.

If the answer does not contain an "a=rtcp-mux" attribute, the offerer and answerer MUST NOT multiplex RTP and RTCP packets on a single port. Instead, they 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 happen when talking to a peer that doesn't understand the "a=rtcp-mux" attribute 🌸.

When SDP is used in a declarative manner, the presence of an "a=rtcp-mux" attribute signals that the sender will multiplex RTP and RTCP on the same port 🌈. The receiver MUST be prepared to receive RTCP packets on the RTP port, and any resource reservation needs to be made including the RTCP bandwidth πŸ‘‘.

4. Security Considerations πŸ”

The security considerations for RTP and RTCP multiplexing are described in RFC 5761 😀. This specification does not change any of those security considerations, so they stay exactly as RFC 5761 lays them out πŸ’€.

5. IANA Considerations 🧾

IANA has added a reference to this document for the att-field (media level only) registration "rtcp-mux" in the "Session Description Protocol (SDP) Parameters" registry πŸ“.

6. 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,
           <http://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,
           <http://www.rfc-editor.org/info/rfc3264>.

[RFC5761]  Perkins, C. and M. Westerlund, "Multiplexing RTP Data and
           Control Packets on a Single Port", RFC 5761,
           DOI 10.17487/RFC5761, April 2010,
           <http://www.rfc-editor.org/info/rfc5761>.

Acknowledgements 🫢

Huge thanks to Colin Perkins, Magnus Westerlund, Paul Kyzivat, and Roni Even for reading the document and leaving comments πŸ’–. Thomas Belling gave useful input in the discussions that happened in 3GPP and led to this document being submitted 🌟. Elwyn Davies did the Gen-ART review πŸ”, Rick Casarez did the Ops-Dir review πŸ”, and Alissa Cooper and Spencer Dawkins gave IESG review comments πŸ‘‘. They're all iconic πŸ’….

Author's Address 🧚

Christer Holmberg
Ericsson
Hirsalantie 11
Jorvas  02420
Finland

Email: christer.holmberg@ericsson.com
πŸ“¦ where this page comes from