draft-ietf-mmusic-data-channel-sdpneg-26.txt | draft-ietf-mmusic-data-channel-sdpneg-27.txt | |||
---|---|---|---|---|
MMUSIC K. Drage | MMUSIC K. Drage | |||
Internet-Draft Unaffiliated | Internet-Draft Unaffiliated | |||
Intended status: Standards Track M. Makaraju | Intended status: Standards Track M. Makaraju | |||
Expires: October 25, 2019 Nokia | Expires: October 31, 2019 Nokia | |||
R. Ejzak | R. Ejzak | |||
J. Marcon | J. Marcon | |||
Unaffiliated | Unaffiliated | |||
R. Even, Ed. | R. Even, Ed. | |||
Huawei | Huawei | |||
April 23, 2019 | April 29, 2019 | |||
SDP-based Data Channel Negotiation | SDP-based Data Channel Negotiation | |||
draft-ietf-mmusic-data-channel-sdpneg-26 | draft-ietf-mmusic-data-channel-sdpneg-27 | |||
Abstract | Abstract | |||
Data channel setup can be done using either the in-band Data Channel | Data channel setup can be done using either the in-band Data Channel | |||
Establishment Protocol (DCEP) or using some out-of-band non-DCEP | Establishment Protocol (DCEP) or using some out-of-band non-DCEP | |||
protocol. This document specifies how the SDP (Session Description | protocol. This document specifies how the SDP (Session Description | |||
Protocol) offer/answer exchange can be used to achieve an out-of-band | Protocol) offer/answer exchange can be used to achieve an out-of-band | |||
non-DCEP negotiation for establishing a data channel. | non-DCEP negotiation for establishing a data channel. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on October 25, 2019. | This Internet-Draft will expire on October 31, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | |||
skipping to change at page 6, line 5 ¶ | skipping to change at page 6, line 4 ¶ | |||
as specified in [RFC4960]. | as specified in [RFC4960]. | |||
Stream identifier: The identifier of the outbound and inbound SCTP | Stream identifier: The identifier of the outbound and inbound SCTP | |||
streams composing a data channel. | streams composing a data channel. | |||
4. Applicability Statement | 4. Applicability Statement | |||
The mechanism in this document only applies to the Session | The mechanism in this document only applies to the Session | |||
Description Protocol (SDP) [I-D.ietf-mmusic-rfc4566bis] when used | Description Protocol (SDP) [I-D.ietf-mmusic-rfc4566bis] when used | |||
together with the SDP offer/answer mechanism [RFC3264]. Declarative | together with the SDP offer/answer mechanism [RFC3264]. Declarative | |||
usage of SDP is out of scope of this document, and is thus undefined. | usage of SDP is out of scope for this document, and is thus | |||
undefined. | ||||
5. SDP Data Channel Attributes | 5. SDP Data Channel Attributes | |||
This section defines two new SDP media-level attributes that can be | This section defines two new SDP media-level attributes that can be | |||
used together with the SDP Offer/Answer mechanism to negotiate data | used together with the SDP Offer/Answer mechanism to negotiate data | |||
channel-specific and subprotocol-specific parameters without the | channel-specific and subprotocol-specific parameters without the | |||
usage of DCEP [I-D.ietf-rtcweb-data-protocol]. The first attribute | usage of DCEP [I-D.ietf-rtcweb-data-protocol]. The first attribute | |||
provides for negotiation of channel-specific parameters. The second | provides for negotiation of channel-specific parameters. The second | |||
attribute provides for negotiation of subprotocol-specific | attribute provides for negotiation of subprotocol-specific | |||
parameters. | parameters. | |||
skipping to change at page 14, line 28 ¶ | skipping to change at page 14, line 28 ¶ | |||
ordered=true;max-time=<lifetime in milliseconds> | ordered=true;max-time=<lifetime in milliseconds> | |||
DATA_CHANNEL_PARTIAL_RELIABLE_TIMED_UNORDERED | DATA_CHANNEL_PARTIAL_RELIABLE_TIMED_UNORDERED | |||
ordered=false;max-time=<lifetime in milliseconds> | ordered=false;max-time=<lifetime in milliseconds> | |||
By definition max-retr and max-time are mutually exclusive, so both | By definition max-retr and max-time are mutually exclusive, so both | |||
MUST NOT be present in the "a=dcmap:" attribute line. If an SDP | MUST NOT be present in the "a=dcmap:" attribute line. If an SDP | |||
offer contains both of these parameters then the receiver of such an | offer contains both of these parameters then the receiver of such an | |||
SDP offer MUST reject the SDP offer. If an SDP answer contains both | SDP offer MUST reject the SDP offer. If an SDP answer contains both | |||
of these parameters then the offerer MUST treat the associated SDP | of these parameters then the offerer MUST treat the associated SDP | |||
offer/answer failed. | offer/answer as failed. | |||
6.3. Generating the Initial Offer for A Data Channel | 6.3. Generating the Initial Offer for A Data Channel | |||
When an offerer sends an initial offer, in order to negotiate an SCTP | When an offerer sends an initial offer, in order to negotiate an SCTP | |||
stream for a data channel, the offerer: | stream for a data channel, the offerer: | |||
o SHALL include an SDP dcmap attribute (Section 5 and Section 6.2) | o SHALL include an SDP dcmap attribute (Section 5 and Section 6.2) | |||
associated with the data channel in the "m=" section representing | associated with the data channel in the "m=" section representing | |||
the SCTP association used to realize the data channel; and | the SCTP association used to realize the data channel; and | |||
skipping to change at page 15, line 22 ¶ | skipping to change at page 15, line 22 ¶ | |||
An offerer receiving an SDP answer performs the following: | An offerer receiving an SDP answer performs the following: | |||
o SHALL close any created data channels as described in | o SHALL close any created data channels as described in | |||
Section 6.6.1 for which the expected "a=dcmap:" attributes are not | Section 6.6.1 for which the expected "a=dcmap:" attributes are not | |||
present in the SDP answer. If the SDP answer has no "a=dcmap" | present in the SDP answer. If the SDP answer has no "a=dcmap" | |||
attribute either the peer does not support "a=dcmap:" attributes | attribute either the peer does not support "a=dcmap:" attributes | |||
or it rejected all the data channels. In either case the offerer | or it rejected all the data channels. In either case the offerer | |||
closes all the SDP offered data channels that were open at the | closes all the SDP offered data channels that were open at the | |||
time of offer. The DTLS association and SCTP association will | time of offer. The DTLS association and SCTP association will | |||
still be setup. | still be setup. At this point the offerer may use DCEP | |||
negotiation [I-D.ietf-rtcweb-data-protocol] to open data channels | ||||
Each agent application MUST wait to send data until it has | Each agent application MUST wait to send data until it has | |||
confirmation that the data channel at the peer is instantiated. For | confirmation that the data channel at the peer is instantiated. For | |||
WebRTC, this is when both data channel stacks have channel parameters | WebRTC, this is when both data channel stacks have channel parameters | |||
instantiated. This occurs: | instantiated. This occurs: | |||
o At both peers when a data channel is created without a previously | o At both peers when a data channel is created without a previously | |||
established SCTP association, as soon as the SCTP association is | established SCTP association, as soon as the SCTP association is | |||
successfully established. | successfully established. | |||
skipping to change at page 36, line 18 ¶ | skipping to change at page 36, line 18 ¶ | |||
<https://www.rfc-editor.org/info/rfc6525>. | <https://www.rfc-editor.org/info/rfc6525>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
13.2. Informative References | 13.2. Informative References | |||
[I-D.ietf-clue-datachannel] | [I-D.ietf-clue-datachannel] | |||
Holmberg, C., "CLUE Protocol data channel", draft-ietf- | Holmberg, C., "CLUE Protocol data channel", draft-ietf- | |||
clue-datachannel-17 (work in progress), April 2019. | clue-datachannel-18 (work in progress), April 2019. | |||
[I-D.ietf-mmusic-msrp-usage-data-channel] | [I-D.ietf-mmusic-msrp-usage-data-channel] | |||
Drage, K., Makaraju, M., Stoetzer-Bradler, J., Ejzak, R., | Drage, K., Makaraju, M., Stoetzer-Bradler, J., Ejzak, R., | |||
Marcon, J., and J. Recio, "MSRP over Data Channels", | Marcon, J., and J. Recio, "MSRP over Data Channels", | |||
draft-ietf-mmusic-msrp-usage-data-channel-10 (work in | draft-ietf-mmusic-msrp-usage-data-channel-10 (work in | |||
progress), April 2019. | progress), April 2019. | |||
[RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor | [RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor | |||
Control Protocol (BFCP)", RFC 4582, DOI 10.17487/RFC4582, | Control Protocol (BFCP)", RFC 4582, DOI 10.17487/RFC4582, | |||
November 2006, <https://www.rfc-editor.org/info/rfc4582>. | November 2006, <https://www.rfc-editor.org/info/rfc4582>. | |||
skipping to change at page 36, line 40 ¶ | skipping to change at page 36, line 40 ¶ | |||
[RFC4975] Campbell, B., Ed., Mahy, R., Ed., and C. Jennings, Ed., | [RFC4975] Campbell, B., Ed., Mahy, R., Ed., and C. Jennings, Ed., | |||
"The Message Session Relay Protocol (MSRP)", RFC 4975, | "The Message Session Relay Protocol (MSRP)", RFC 4975, | |||
DOI 10.17487/RFC4975, September 2007, | DOI 10.17487/RFC4975, September 2007, | |||
<https://www.rfc-editor.org/info/rfc4975>. | <https://www.rfc-editor.org/info/rfc4975>. | |||
[RFC6455] Fette, I. and A. Melnikov, "The WebSocket Protocol", | [RFC6455] Fette, I. and A. Melnikov, "The WebSocket Protocol", | |||
RFC 6455, DOI 10.17487/RFC6455, December 2011, | RFC 6455, DOI 10.17487/RFC6455, December 2011, | |||
<https://www.rfc-editor.org/info/rfc6455>. | <https://www.rfc-editor.org/info/rfc6455>. | |||
[WebRtcAPI] | [WebRtcAPI] | |||
Bergkvist, A., Burnett, D., Jennings, C., and A. | Bergkvist, A., Burnett, D., Jennings, C., Narayanan, A., | |||
Narayanan, "WebRTC 1.0: Real-time Communication Between | Aboba, B., Brandstetter, T., and J. Bruaroey, "WebRTC 1.0: | |||
Browsers", World Wide Web Consortium WD-webrtc-20150210, | Real-time Communication Between Browsers", World Wide Web | |||
February 2015, | Consortium CR CR-webrtc-20180927, September 2018, | |||
<http://www.w3.org/TR/2015/WD-webrtc-20150210/>. | <https://www.w3.org/TR/2018/CR-webrtc-20180927/>. | |||
Appendix A. Generic Data Channel Negotiation Aspects When Not Using | Appendix A. Generic Data Channel Negotiation Aspects When Not Using | |||
DCEP | DCEP | |||
This appendix summarizes how data channels work in general and | This appendix summarizes how data channels work in general and | |||
discusses some key aspects, which should be considered for the out- | discusses some key aspects, which should be considered for the out- | |||
of-band negotiation of data channels if DCEP is not used. | of-band negotiation of data channels if DCEP is not used. | |||
A WebRTC application creates a data channel by providing a number of | A WebRTC application creates a data channel by providing a number of | |||
setup parameters (subprotocol, label, maximal number of | setup parameters (subprotocol, label, maximal number of | |||
skipping to change at page 37, line 42 ¶ | skipping to change at page 37, line 42 ¶ | |||
Note: The above SDP media description does not contain any channel- | Note: The above SDP media description does not contain any channel- | |||
specific information. | specific information. | |||
A.1. Stream Identifier Numbering | A.1. Stream Identifier Numbering | |||
Independently from the requested type of negotiation, the application | Independently from the requested type of negotiation, the application | |||
creating a data channel can either pass the stream identifier to the | creating a data channel can either pass the stream identifier to the | |||
data channel stack to assign to the data channel or else let the data | data channel stack to assign to the data channel or else let the data | |||
channel stack pick one identifier from the unused ones. | channel stack pick one identifier from the unused ones. | |||
To avoid glare situations, each endpoint can moreover own an | To avoid glare situations [RFC3264], each endpoint can moreover own | |||
exclusive set of stream identifiers, in which case an endpoint can | an exclusive set of stream identifiers, in which case an endpoint can | |||
only create a data channel with a stream identifier it owns. | only create a data channel with a stream identifier it owns. | |||
Which set of stream identifiers is owned by which endpoint is | Which set of stream identifiers is owned by which endpoint is | |||
determined by convention or other means. | determined by convention or other means. | |||
Note:For data channels negotiated with the DCEP, one endpoint owns | Note:For data channels negotiated with the DCEP, one endpoint owns | |||
by convention the even stream identifiers, whereas the other owns | by convention the even stream identifiers, whereas the other owns | |||
the odd stream identifiers, as defined in | the odd stream identifiers, as defined in | |||
[I-D.ietf-rtcweb-data-protocol]. | [I-D.ietf-rtcweb-data-protocol]. | |||
End of changes. 10 change blocks. | ||||
15 lines changed or deleted | 17 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |