Internet DRAFT - draft-marcon-msrp-over-webrtc-data-channels
draft-marcon-msrp-over-webrtc-data-channels
MMUSIC J. Marcon
Internet-Draft R. Ejzak
Intended status: Informational Alcatel-Lucent
Expires: January 10, 2014 July 09, 2013
MSRP over WebRTC data channels
draft-marcon-msrp-over-webrtc-data-channels-00
Abstract
The Real-Time Communication in WEB-browsers (RTCWeb) working group is
charged to provide protocols to support direct interactive rich
communication using audio, video, and data between two peers' web-
browsers. For the support of data communication, the RTCWeb working
group has in particular defined the concept of bi-directional data
channels over SCTP, where each data channel might be used to
transport other protocols, called sub-protocols. This document
specifies how the Message Session Relay Protocol (MSRP) can be
instantiated as a WebRTC data channel sub-protocol, using the SDP
offer/exchange to negotiate out-of-band the sub-protocol specific
parameters. Two network configurations are documented: a WebRTC end-
to-end configuration (connecting two MSRP over data channel
endpoints), and a gateway configuration (connecting an MSRP over data
channel endpoint with an MSRP over TCP endpoint).
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 10, 2014.
Marcon & Ejzak Expires January 10, 2014 [Page 1]
Internet-Draft MSRP over WebRTC data channels July 2013
Copyright Notice
Copyright (c) 2013 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) 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
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. WebRTC Data Channels . . . . . . . . . . . . . . . . . . . . 4
5. End-to-end configuration . . . . . . . . . . . . . . . . . . 5
5.1. Support for SDP-based sub-protocol negotiation . . . . . 5
5.1.1. SDP syntax . . . . . . . . . . . . . . . . . . . . . 5
5.1.1.1. Channel-specific setup parameters . . . . . . . . 5
5.1.1.2. Sub-protocol specific attributes . . . . . . . . 6
5.1.2. Procedures . . . . . . . . . . . . . . . . . . . . . 7
5.1.2.1. Opening a data channel . . . . . . . . . . . . . 7
5.1.2.2. Closing a data channel . . . . . . . . . . . . . 7
5.2. Support for MSRP data channels . . . . . . . . . . . . . 7
5.2.1. Overview . . . . . . . . . . . . . . . . . . . . . . 7
5.2.2. MSRP URI . . . . . . . . . . . . . . . . . . . . . . 8
5.2.3. Session negotiation . . . . . . . . . . . . . . . . . 8
5.2.4. Session opening . . . . . . . . . . . . . . . . . . . 8
5.2.5. Data sending and reporting . . . . . . . . . . . . . 8
5.2.6. Session closing . . . . . . . . . . . . . . . . . . . 9
5.3. Support for MSRP File Transfer function . . . . . . . . . 9
6. Gateway configuration . . . . . . . . . . . . . . . . . . . . 9
7. Security Considerations . . . . . . . . . . . . . . . . . . . 10
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
10.1. Normative References . . . . . . . . . . . . . . . . . . 10
10.2. Informative References . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction
Marcon & Ejzak Expires January 10, 2014 [Page 2]
Internet-Draft MSRP over WebRTC data channels July 2013
The Message Session Relay Protocol (MSRP) [RFC4975] is currently
defined to work over TCP connections.
The RTCWeb working group has defined the concept of bi-directional
data channels running on top of SCTP/DTLS. Each data channel
consists of paired SCTP streams sharing the same SCTP Stream
Identifier. Data channels are created by endpoint applications
through the WebRTC API, and can be used to transport proprietary or
well-defined protocols, which in the latter case can be signaled by
the data channel "sub-protocol" parameter, conceptually similar to
the WebSocket "sub-protocol". However, apart from the "sub-protocol"
value transmitted to the peer, RTCWeb leaves open how endpoint
applications can agree on how to instantiate a given sub-protocol on
a data channel, whether it be in-band or out-of-band (or both). As
an example, the SDP offer generated by the browser includes no
channel-specific information.
MSRP is a protocol for transmitting a series of related instant
messages in the context of a session. In addition to instant
messaging, MSRP can also be used for image sharing or file transfer.
Defining the MSRP as a data channel sub-protocol has many benefits:
o provide to WebRTC applications a proven protocol enabling instant
messaging, file transfer, image sharing
o integrate those features with other RTCWeb voice and video
features
o leverage the SDP-based negotiation already defined for MSRP
o allows the interworking with MSRP endpoints running on a TCP
connection
This document defines the use MSRP of over WebRTC data channels,
where one MSRP endpoint is an MSRP WebRTC application and the other
endpoint is either an MSRP WebRTC application or an MSRP TCP
application.
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. Terminology
This document uses the following terms:
Marcon & Ejzak Expires January 10, 2014 [Page 3]
Internet-Draft MSRP over WebRTC data channels July 2013
Data channel: A bidirectional channel consisting of paired SCTP
outbound and inbound streams.
In-band: transmission through the peer-to-peer SCTP association.
Out-of-band: transmission through the WebRTC signaling path, using
JSEP [I-D.ietf-rtcweb-jsep] and the SDP Offer/Answer model
[RFC3264].
MSRP data channel: A data channel specifically used to transport
the messages of one MSRP session.
Peer: From the perspective of one of the agents in a session, its
peer is the other agent. Specifically, from the perspective of
the SDP offerer, the peer is the SDP answerer. From the
perspective of the SDP answerer, the peer is the SDP offerer.
4. WebRTC Data Channels
This section summarizes how WebRTC data channels work in general.
A WebRTC application creates a data channel via the WebRTC Data
Channel API, by providing a number of setup parameters (sub-protocol,
label, reliability, order of delivery, priority).
The browser then opens in-band the data channel using the DATA
CHANNEL OPEN message defined in [draft-jesup-rtcweb-data-protocol].
This message carries some of the channel-specific parameters passed
by the application (sub-protocol, label, reliability, order of
delivery).
In case an SCTP association is already established, the browser
transmits immediately the DATA CHANNEL OPEN message to the peer, on
an unused SCTP stream.
In case no SCTP association is established, the browser triggers for
an SDP offer/answer exchange, and sends the DATA CHANNEL OPEN
message(s) once the SCTP association is established (i.e.
subsequently to the reception of the answer).
The SDP offer generated by the browser is as per [draft-ietf-mmusic-
sctp-sdp]. In brief, it contains one m-line for the SCTP association
on top of which data channels will run, and one attribute per
protocol assigned to the SCTP ports:
m=application 54111 DTLS/SCTP 5000 5001 5002
c=IN IP4 79.97.215.79
a=sctpmap:5000 webrtc-datachannel 16
Marcon & Ejzak Expires January 10, 2014 [Page 4]
Internet-Draft MSRP over WebRTC data channels July 2013
a=sctpmap:5001 bfcp 2
a=sctpmap:5002 t38 1
Note: A WebRTC browser will only create an sctpmap attribute for the
webrtc-datachannel protocol, and will not create sctpmap attributes
for other protocols such as bfcp or t38. This example shows the
hypothetical power of the syntax to support multiplexing of SCTP
associations for different protocols on the same DTLS connection.
Note: this SDP syntax does not contain any channel-specific
information.
5. End-to-end configuration
This section describes the network configuration where each MSRP
endpoint is a WebRTC endpoint, running MSRP over an SCTP/DTLS
connection.
5.1. Support for SDP-based sub-protocol negotiation
In the default procedures described in Section 4, the channel-
specific parameters are notified in-band to the peer, rather than
negotiated with the peer. Also, no mechanism is defined to transmit
subprotocol-specific parameters to the peer.
This section defines a means to negotiate channel-specific and
subprotocol-specific parameters, using the out-of-band SDP offer/
exchange.
5.1.1. SDP syntax
The SDP only contains the declaration of data channels for which an
SDP-based negotiation is required, and that are either being created
or already opened.
5.1.1.1. Channel-specific setup parameters
For each of these data channels, the SDP lists one attribute line
providing the Stream Identifier, sub-protocol, label, reliability,
order of delivery, priority.
a=webrtc-DataChannel:5000 stream=2;label="channel 2"; \
subprotocol="file transfer";max_retr=3
NOTE: the related SDP syntax has to be imported from version 3 of
[draft-ietf-mmusic-sctp-sdp].
Marcon & Ejzak Expires January 10, 2014 [Page 5]
Internet-Draft MSRP over WebRTC data channels July 2013
This line MUST be replicated without changes in the SDP answer, if
the answerer accepts the offered data channel.
This line MUST be replicated without changes in any subsequent offer
or answer, as long as the data channel is still opened at the time of
offer or answer generation.
The Sub-protocol, label, reliability and order of delivery parameters
MUST be equal to those transmitted in-band in the DATA CHANNEL OPEN
message. The Stream Identifier MUST be equal to the SCTP Stream
Identifier on which the DATA CHANNEL OPEN message is sent.
5.1.1.2. Sub-protocol specific attributes
In the SDP, each data channel declaration MAY also be followed by
other SDP attributes specific to the sub-protocol in use. Each of
these attributes is represented by one new attribute line, and it
includes the contents of a media-level SDP attribute already defined
for use with this (sub)protocol in another IETF specification.
Each sub-protocol specific attribute such as "a=accept-types:text/
plain" that would normally be used to negotiate an instance of MSRP
is replaced with an attribute of the form "a=wdcsa:sctp-port:stream-
id original-attribute", where wdcsa stands for "webrtc-DataChannel
sub-protocol attribute", sctp-port is the sctp port number assigned
for webrtc-DataChannel on the media line, stream-id is the sctp
stream id assigned to this instance of MSRP, and original-attribute
represents the contents of the MSRP related attribute to be included.
a=webrtc-DataChannel:5000 stream=2;label="channel 2"; \
subprotocol="MSRP";max_retr=3
a=wdcsa:5000:2 accept-types:text/plain
Thus the attribute "a=wdcsa:5000:2 accept-types:text/plain" specifies
that this instance of MSRP on stream id 2 accepts plain text files.
As opposed to the data channel setup parameters, these parameters are
subject to offer/answer negotiation.
The same syntax applies to any other SDP attribute required for
negotiation of this instance of the sub-protocol.
Marcon & Ejzak Expires January 10, 2014 [Page 6]
Internet-Draft MSRP over WebRTC data channels July 2013
5.1.2. Procedures
5.1.2.1. Opening a data channel
Opening a data channel is done in-band by the DATA CHANNEL OPEN
message. However when the sub-protocol requires an SDP-based
negotiation, applications MUST NOT send data on this channel till
both SDP negotiation and DATA CHANNEL OPEN message sending are done,
which may happen in any order.
When the application creates a new data channel (requiring some sub-
protocol specific negotiation), the browser follows in any case a
generic behavior:
o if no SCTP association is established, the browser triggers the
SDP negotiation, and sends the DATA CHANNEL OPEN message once the
answer is received and the SCTP association initialized.
o if an SCTP association is established, the browser does not
trigger any SDP negotiation but instead immediately sends a DATA
CHANNEL OPEN message. The application then initiates a new offer/
answer exchange
Note: in this case, as the DATA CHANNEL OPEN message is sent before
the offer is created, Stream ID conflicts between offers sent to the
peer, and DATA CHANNEL OPEN messages received from the peer should
not occur.
The application has the task to complete the browser-generated offer
(or answer) with the data channel and subprotocol specific parameters
in scope of the SCTP m-line. The browser is expected to ignore those
parameters when the completed offer (or answer) is applied locally.
5.1.2.2. Closing a data channel
Closing a data channel is done in-band by the SSN reset mechanism,
and does not trigger a new offer/answer exchange.
5.2. Support for MSRP data channels
5.2.1. Overview
This document defines how MSRP can be used as a WebRTC sub-protocol,
where the MSRP-related negotiation is done as part of the SDP-based
data channel negotiation defined in Section 5.1.1.2.
Marcon & Ejzak Expires January 10, 2014 [Page 7]
Internet-Draft MSRP over WebRTC data channels July 2013
In this design, the MSRP connection maps to the SCTP association and
the port assigned to data channels, and each MSRP session maps to one
data channel exactly.
5.2.2. MSRP URI
This document extends the MSRP URI syntax [RFC3986] by defining the
new transport parameter value "dc":
transport = "tcp" / "dc" / 1*ALPHANUM
5.2.3. Session negotiation
Using the syntax a=webrtc-DataChannel:<port> <param=value>, the SDP
declaration of a given MSRP data channel can include at least all the
following well-known parameters:
o defined in [RFC4975]: "path", "accept-types", "accept-wrapped-
types", "max-size"
o defined in [RFC4566]: "sendonly", "recvonly", "inactive", and
"sendrecv"
o defined in [RFC6135]: "setup"
o defined in [RFC6714]: "msrp-cema"
o defined in [RFC5547]: all the parameters related to MSRP file
transfer
5.2.4. Session opening
The MSRP session is normally opened by the active MSRP endpoint,
which sends an MSRP SEND message (empty or not) to the other MSRP
endpoint. The active MSRP endpoint does not use the path attribute
to open a transport connection to its peer. Instead, the active MSRP
endpoint uses the DataChannel established for this MSRP session by
the procedures in Section 5.1. The cema attribute is implicitly
associated with every MSRP session using data channel transport.
5.2.5. Data sending and reporting
Marcon & Ejzak Expires January 10, 2014 [Page 8]
Internet-Draft MSRP over WebRTC data channels July 2013
5.2.6. Session closing
Either endpoint can close the MSRP session by closing the underlying
data channel. Closing an MSRP session should not trigger an SDP
negotiation.
5.3. Support for MSRP File Transfer function
[RFC5547] defines an end-to-end file transfer method based on MSRP
and the SDP offer/answer mechanism. This file transfer method is
also usable by MSRP WebRTC endpoints, with the following
considerations:
o As an MSRP session maps to one data channel, a file transfer
session maps also to one data channel.
o SDP attributes specified in [RFC5547] for a file transfer m-line
are embedded as subprotocol-specific attributes as defined in
Section 5.1.1.2.
o Each file chunk is transmitted over one SCTP user message.
o Once the file transfer is complete, the same data channel MAY be
reused for another file transfer.
o Following the aborting of a file transfer, the SDP can be updated
by adding the "inactive" attribute to the list of subprotocol-
specific attributes associated with the corresponding data
channel.
6. Gateway configuration
This section describes the network configuration where one endpoint
runs MSRP over a WebRTC SCTP/DTLS connection, the other MSRP endpoint
runs MSRP over one or more TLS/TCP connections, and the two endpoints
interwork via an MSRP gateway.
Specifically, a gateway can be configured to interwork an MSRP
session using a data channel with a peer that does not support data
channel transport in one of two ways. In one model, the gateway
performs as a MSRP B2BUA to interwork all the procedures as necessary
between the endpoints. No further specification is needed for this
model.
Alternately, the gateway can use CEMA procedures to provide transport
level interworking between MSRP endpoints using different transport
protocols as follows.
Marcon & Ejzak Expires January 10, 2014 [Page 9]
Internet-Draft MSRP over WebRTC data channels July 2013
When the gateway performs transport level interworking between MSRP
endpoints, all of the procedures in section Section 5.1 apply to each
peer, with the following additions:
o The endpoint establishing an MSRP session using data channel
transport shall not request inclusion of any relays, although it
may interoperate with a peer that signals the use of relays.
o The gateway receiving an SDP offer that includes a request to
negotiate an MSRP session on a data channel can provide transport
level interworking in the same manner as a CEMA SBC by forwarding
TCP or TLS transport parameters in a new m line with the
appropriate attributes within the forwarded SDP offer.
o Similarly, a gateway receiving an SDP offer to negotiate an MSRP
session using TCP or TLS transport with an endpoint that only
supports data channel transport for MSRP can provide transport
level interworking in the same manner as a CEMA SBC by
establishing a new data channel for the MSRP session with the
target endpoint.
7. Security Considerations
To be completed.
8. IANA Considerations
To be completed.
9. Acknowledgments
The authors wish to thank... for their invaluable comments.
10. References
10.1. Normative References
[I-D.ietf-rtcweb-jsep]
Uberti, J. and C. Jennings, "Javascript Session
Establishment Protocol", draft-ietf-rtcweb-jsep-02 (work
in progress), October 2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
Marcon & Ejzak Expires January 10, 2014 [Page 10]
Internet-Draft MSRP over WebRTC data channels July 2013
[RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message
Session Relay Protocol (MSRP)", RFC 4975, September 2007.
[RFC4976] Jennings, C., Mahy, R., and A. Roach, "Relay Extensions
for the Message Sessions Relay Protocol (MSRP)", RFC 4976,
September 2007.
[RFC5547] Garcia-Martin, M., Isomaki, M., Camarillo, G., Loreto, S.,
and P. Kyzivat, "A Session Description Protocol (SDP)
Offer/Answer Mechanism to Enable File Transfer", RFC 5547,
May 2009.
[RFC6135] Holmberg, C. and S. Blau, "An Alternative Connection Model
for the Message Session Relay Protocol (MSRP)", RFC 6135,
February 2011.
[RFC6714] Holmberg, C., Blau, S., and E. Burger, "Connection
Establishment for Media Anchoring (CEMA) for the Message
Session Relay Protocol (MSRP)", RFC 6714, August 2012.
10.2. Informative References
[I-D.ietf-rtcweb-data-channel]
Jesup, R., Loreto, S., and M. Tuexen, "RTCWeb Data
Channels", draft-ietf-rtcweb-data-channel-04 (work in
progress), February 2013.
[I-D.jesup-rtcweb-data-protocol]
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel
Protocol", draft-jesup-rtcweb-data-protocol-04 (work in
progress), February 2013.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264, June
2002.
[WebRtcAPI]
Bergkvist, A., Burnett, D., Narayanan, A., and C.
Jennings, "WebRTC 1.0: Real-time Communication Between
Browsers", World Wide Web Consortium WD WD-
webrtc-20120821, August 2012,
<http://www.w3.org/TR/2012/WD-webrtc-20120821>.
Marcon & Ejzak Expires January 10, 2014 [Page 11]
Internet-Draft MSRP over WebRTC data channels July 2013
Authors' Addresses
Jerome Marcon
Alcatel-Lucent
Route de Villejust
Nozay 91620
France
Email: jerome.marcon@alcatel-lucent.com
Richard Ejzak
Alcatel-Lucent
1960 Lucent Lane
Naperville, Illinois 60563-1594
US
Phone: +1 630 979 7036
Email: richard.ejzak@alcatel-lucent.com
Marcon & Ejzak Expires January 10, 2014 [Page 12]