Negotiation Data Channels Using the Session Description Protocol (SDP)
RFC 8864
Document | Type | RFC - Proposed Standard (January 2021; No errata) | |
---|---|---|---|
Authors | Keith Drage , Maridi Makaraju , Richard Ejzak , Jerome Marcon , Roni Even | ||
Last updated | 2021-01-19 | ||
Replaces | draft-ejzak-mmusic-data-channel-sdpneg | ||
Stream | Internent Engineering Task Force (IETF) | ||
Formats | plain text html xml pdf htmlized (tools) htmlized bibtex | ||
Reviews | |||
Stream | WG state | Submitted to IESG for Publication | |
Document shepherd | Bo Burman | ||
Shepherd write-up | Show (last changed 2018-04-06) | ||
IESG | IESG state | RFC 8864 (Proposed Standard) | |
Action Holders |
(None)
|
||
Consensus Boilerplate | Yes | ||
Telechat date | |||
Responsible AD | Adam Roach | ||
Send notices to | "Bo Burman" <bo.burman@ericsson.com> | ||
IANA | IANA review state | Version Changed - Review Needed | |
IANA action state | RFC-Ed-Ack |
Internet Engineering Task Force (IETF) K. Drage Request for Comments: 8864 M. Makaraju Category: Standards Track R. Ejzak ISSN: 2070-1721 J. Marcon Unaffiliated R. Even, Ed. January 2021 Negotiation Data Channels Using the Session Description Protocol (SDP) Abstract Data channel setup can be done using either the in-band Data Channel Establishment Protocol (DCEP) or some out-of-band non-DCEP protocol. This document specifies how the SDP (Session Description Protocol) offer/answer exchange can be used to achieve an out-of-band non-DCEP negotiation for establishing a data channel. 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/rfc8864. 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. Terminology 4. Applicability Statement 5. SDP Data Channel Attributes 5.1. SDP DCMAP Attribute 5.1.1. DCMAP Attribute Syntax 5.1.2. 'dcmap-stream-id' Parameter 5.1.3. 'label' Parameter 5.1.4. 'subprotocol' Parameter 5.1.5. 'max-retr' Parameter 5.1.6. 'max-time' Parameter 5.1.7. 'ordered' Parameter 5.1.8. 'priority' Parameter 5.1.9. DCMAP Multiplexing Category 5.2. SDP DCSA Attribute 5.2.1. DCSA Attribute Syntax 5.2.2. DCSA Multiplexing Category 6. SDP Offer/Answer Procedures 6.1. Managing Stream Identifiers 6.2. Negotiating Data Channel Parameters 6.3. Generating the Initial Offer for a Data Channel 6.4. Generating the SDP Answer 6.5. Offerer Processing of the SDP Answer 6.6. Modifying the Session 6.6.1. Closing a Data Channel 6.7. Various SDP Offer/Answer Considerations 7. Examples 8. Security Considerations 9. IANA Considerations 9.1. Subprotocol Identifiers 9.2. New SDP Attributes 9.2.1. dcmap 9.2.2. dcsa 9.3. Registering Attributes for Use with Data Channels 10. References 10.1. Normative References 10.2. Informative References Appendix A. Generic Data Channel Negotiation Aspects when Not Using DCEP A.1. Stream Identifier Numbering A.2. Generic Data Channel Negotiation Not Using DCEP A.2.1. Overview A.2.2. Opening a Data Channel A.2.3. Closing a Data Channel Acknowledgements Contributors Authors' Addresses 1. Introduction The concept of establishing a bidirectional data channel running on top of the Stream Control Transmission Protocol (SCTP) is discussed in [RFC8831], allowing applications to use data channels. An in-band Data Channel Establishment Protocol (DCEP) is described in [RFC8832]; however, other in-band or out-of-band protocols may be used for establishing data channels. Each data channel consists of paired SCTP streams sharing the same SCTP Stream Identifier. Data channels are created by endpoint applications using (1) the WebRTC API (Application Programming Interface) [WebRtcAPI] or (2) other protocols (e.g., Controlling Multiple Streams for Telepresence (CLUE) [RFC8850]). The protocols can be signaled by the data channel 'subprotocol' parameter, conceptually similar to a WebSocket subprotocol as described in [RFC6455]. However, apart from the "subprotocol" value transmitted to the peer, an endpoint application can agree on how to instantiate a given subprotocol on a data channel, and whether it is signaled in-band using DCEP or out-of-bandShow full document text