Internet DRAFT - draft-pd-msrp-webrtc
draft-pd-msrp-webrtc
Network Working Group P. Dunkley
Internet-Draft G. Llewellyn
Updates: 4975 (if approved) Crocodile RCS Ltd
Intended status: Standards Track May 10, 2013
Expires: November 11, 2013
The WebRTC Data Channel as a Transport for the Message Session Relay
Protocol (MSRP)
draft-pd-msrp-webrtc-00
Abstract
The WebRTC Data Channel enables two-way real-time communication
between browsers. This document updates normatively updates RFC 4975
to add support for WebRTC Data Channel as a transport for MSRP
(Message Session Relay Protocol). This will enable secure, low-
latency, structured peer-to-peer messaging between WebRTC end-points.
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 November 11, 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
Dunkley & Llewellyn Expires November 11, 2013 [Page 1]
Internet-Draft MSRP over WebRTC Data Channel May 2013
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . . 3
3. The WebRTC Data Channel . . . . . . . . . . . . . . . . . . . . 3
4. MSRP WebRTC Data Channel Transport . . . . . . . . . . . . . . 4
4.1. General . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2. Updates to RFC 4975 . . . . . . . . . . . . . . . . . . . . 4
4.2.1. MSRP URI Transport Parameter . . . . . . . . . . . . . 4
4.2.2. SDP . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.3. Opening Data Channels for MSRP . . . . . . . . . . . . . . 5
5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1. SDP exchange . . . . . . . . . . . . . . . . . . . . . . . 5
5.2. SEND . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
9.1. Normative References . . . . . . . . . . . . . . . . . . . 7
9.2. Informative References . . . . . . . . . . . . . . . . . . 8
Appendix A. Implementation Guidelines . . . . . . . . . . . . . . 9
A.1. MSRP WebRTC Client Considerations . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
Dunkley & Llewellyn Expires November 11, 2013 [Page 2]
Internet-Draft MSRP over WebRTC Data Channel May 2013
1. Introduction
The WebRTC Data Channel [I-D.ietf-rtcweb-data-channel] enables
secure, reliable, low-latency message exchange between browsers.
Network Address Translation (NAT) issues between browsers are handled
through the use of ICE [RFC5245].
Modern web browsers include a WebRTC client stack complying with the
WebRTC API [WEBRTC-API] as specified by the W3C. The specification in
this document enables usage of MSRP in these scenarios.
This specification updates MSRP [RFC4975] to support WebRTC Data
Channel as a transport for the exchange of MSRP messages between
browsers.
MSRP over WebRTC is well suited for MSRP interactions between clients
that require security, reliability, low-latency, and where there are
no local policies requiring authorisation and/or logging of
interactions. For client-to-server messaging or where local policy
requires authentication and/or logging MSRP over WebSocket
[I-D.pd-dispatch-msrp-websocket] should be considered.
2. Terminology
All diagrams, examples, and notes in this specification are non-
normative, as are all sections explicitly marked non-normative.
Everything else in this specification is normative.
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].
2.1. Definitions
MSRP WebRTC Client: An MSRP entity capable of opening WebRTC Data
Channel connections to other MSRP entities.
3. The WebRTC Data Channel
_This section is non-normative._
The WebRTC Data Channel [I-D.ietf-rtcweb-data-channel] is a transport
layer on top of SCTP over DTLS over UDP in which clients exchange
message units in both directions.
WebRTC Data Channel defines message units to be used by applications
Dunkley & Llewellyn Expires November 11, 2013 [Page 3]
Internet-Draft MSRP over WebRTC Data Channel May 2013
for the exchange of data, so it provides a message boundary-
preserving transport layer. These message units contain binary data.
4. MSRP WebRTC Data Channel Transport
4.1. General
Each MSRP chunk MUST be carried within a single Data Channel message,
and a Data Channel message MUST NOT contain more than one MSRP chunk.
This simplifies parsing of MSRP messages for clients. When large
messages are sent MSRP chunking (as defined in section 5.1 of
[RFC4975]) MUST be used to split the message into several smaller
MSRP chunks.
4.2. Updates to RFC 4975
4.2.1. MSRP URI Transport Parameter
This document defines the value "dc" as the transport parameter value
for an MSRP URI [RFC3986] to be contacted using WebRTC Data Channel
as transport.
The updated augmented BNF (Backus-Naur Form) [RFC5234] for this
parameter is the following (the original BNF for this parameter can
be found in [RFC4975]):
transport = "tcp" / "dc" / 1*ALPHANUM
4.2.2. SDP
When using MSRP over WebRTC the SDP connection and media-lines will
be generated by browser when the "createOffer" method
[I-D.ietf-rtcweb-jsep] is called. MSRP WebRTC Clients MUST NOT
create connection and media-lines as described in section 8.1 of
[RFC4975].
Other MSRP related SDP fields are contained within attribute-lines
which MUST be added to browser generated SDP.
As all MSRP over WebRTC messages are routed directly between MSRP
WebRTC Clients there are no backwards compatibility issues with non-
WebRTC MSRP clients.
The "dc" transport parameter will appear in the endpoint URI in SDP
"path" attribute ([RFC4975] section 8.2).
Dunkley & Llewellyn Expires November 11, 2013 [Page 4]
Internet-Draft MSRP over WebRTC Data Channel May 2013
4.3. Opening Data Channels for MSRP
Section 5.4 of [I-D.ietf-mmusic-sctp-sdp] defines the "subprotocol
Attribute" enabling the client to indicate which protocol it would
like to speak on a channel. This document defines a new subprotocol
of "MSRP" which MUST be used on channels carrying MSRP over WebRTC.
When establishing MSRP sessions clients often include a lot of meta-
data [RFC5547] about the intended use of the session in attribute-
lines within the SDP (for example, when performing file-transfer
filename, type, and size are indicated). There is no information in
these attribute-lines that that will enable a client to associate
them with a specific channel. To solve this issue MSRP WebRTC
Clients MUST create SCTP associations with only 1 channel (that is,
one stream in each direction).
Section 5 of [I-D.jesup-rtcweb-data-protocol] allows applications
to specify the number of streams for an SCTP association. It is
usually the case that more streams are desirable to enable
additional communication between browsers without the need for
renegotiation and to create new Data Channels; this is not
applicable to MSRP. Additional MSRP sessions require renegotion
so that the meta-data [RFC5547] describing the intended use of the
session can be exchanged.
5. Examples
5.1. SDP exchange
The following example shows SDP that could be included in a SIP
message to set up an MSRP session between Alice and Bob.
Note that SDP does not permit line folding. A "\" in the examples
shows a line continuation due to limitations in line length of this
document. Neither the backslash nor the extra CRLF is included in
the actual SDP.
Alice makes an offer:
m=application 54111 DTLS/SCTP 5000
c=IN IP4 79.97.215.79
a=sctpmap:5000 webrtc-DataChannel 1
a=webrtc-DataChannel:5000 \
stream=1;label="channel 1";subprotocol="msrp"
a=accept-types:message/cpim text/plain text/html
a=path:msrp://df7jal23ls0d.invalid:5000/98cjs;dc
Dunkley & Llewellyn Expires November 11, 2013 [Page 5]
Internet-Draft MSRP over WebRTC Data Channel May 2013
In this offer, Alice wishes to receive MSRP messages using the WebRTC
Data Channel. She can accept message/cpim, text/plain, and text/html
message bodies in SEND requests.
Bob's answer to this offer could look like:
m=application 63241 DTLS/SCTP 3000
c=IN IP4 79.97.215.84
a=sctpmap:3000 webrtc-DataChannel 1
a=webrtc-DataChannel:3000
stream=1;label="channel 1";subprotocol="msrp"
a=accept-types:message/cpim text/plain
a=path:msrp://jk3apo92lf5w.invalid:3000/20ksw;dc
Here Bob wishes to receive the MSRP messages. He can accept only
message/cpim and text/plain message bodies in SEND requests and has
rejected the text/html content offered by Alice.
5.2. SEND
Alice (MSRP DC) Bob
| |
|SEND F1 |
|---------------------------->|
|200 OK F2 |
|<----------------------------|
In the same scenario Alice sends an instant message to Bob (session
details having been previously negotiated by some other mechanism -
such as SDP.
Dunkley & Llewellyn Expires November 11, 2013 [Page 6]
Internet-Draft MSRP over WebRTC Data Channel May 2013
F1 SEND Alice -> Bob (transport DC)
MSRP 6aef SEND
To-Path: msrp://jk3apo92lf5w.invalid:3000/20ksw;dc
From-Path: msrp://df7jal23ls0d.invalid:5000/98cjs;dc
Success-Report: no
Byte-Range: 1-*/*
Message-ID: 87652
Content-Type: text/plain
Hi Bob, I'm about to send you file.mpeg
-------6aef$
F2 200 OK Bob -> Alice (transport DC)
MSRP 6aef 200 OK
To-Path: msrp://df7jal23ls0d.invalid:5000/98cjs;dc
From-Path: msrp://jk3apo92lf5w.invalid:3000/20ksw;dc
-------6aef$
6. Security Considerations
The WebRTC Data Channel [I-D.ietf-rtcweb-data-channel] provides
secure communication between browsers. As such there are no specific
security considerations for this draft.
7. IANA Considerations
This specification does not require any IANA registry changes.
8. Acknowledgements
Special thanks to Inaki Baz Castillo, Jose Luis Millan Villegas, and
Victor Pascual, the authors of [I-D.ietf-sipcore-sip-websocket] which
has inspired this draft.
9. References
9.1. Normative References
[I-D.ietf-mmusic-sctp-sdp]
Loreto, S. and G. Camarillo, "Stream Control Transmission
Protocol (SCTP)-Based Media Transport in the Session
Dunkley & Llewellyn Expires November 11, 2013 [Page 7]
Internet-Draft MSRP over WebRTC Data Channel May 2013
Description Protocol (SDP)", draft-ietf-mmusic-sctp-sdp-03
(work in progress), January 2013.
[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.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message
Session Relay Protocol (MSRP)", RFC 4975, September 2007.
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, January 2008.
9.2. Informative References
[I-D.ietf-rtcweb-jsep]
Uberti, J. and C. Jennings, "Javascript Session
Establishment Protocol", draft-ietf-rtcweb-jsep-03 (work
in progress), February 2013.
[I-D.ietf-sipcore-sip-websocket]
Castillo, I., Millan, J., and V. Pascual, "The WebSocket
Protocol as a Transport for the Session Initiation
Protocol (SIP)", draft-ietf-sipcore-sip-websocket-08 (work
in progress), March 2013.
[I-D.pd-dispatch-msrp-websocket]
Dunkley, P., Llewellyn, G., and V. Pascual, "The WebSocket
Protocol as a Transport for the Message Session Relay
Protocol (MSRP)", draft-pd-dispatch-msrp-websocket-01
(work in progress), January 2013.
[RFC2606] Eastlake, D. and A. Panitz, "Reserved Top Level DNS
Names", BCP 32, RFC 2606, June 1999.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005.
Dunkley & Llewellyn Expires November 11, 2013 [Page 8]
Internet-Draft MSRP over WebRTC Data Channel May 2013
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Protocol for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols", RFC 5245,
April 2010.
[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.
[WEBRTC-API]
W3C, Bergkvist, A., Ed., Burnett, D., Ed., Jennings, C.,
Ed., and A. Narayanan, Ed., "WebRTC 1.0: Real-time
Communication Between Browsers", September 2012.
Appendix A. Implementation Guidelines
_This section is non-normative._
A.1. MSRP WebRTC Client Considerations
The JavaScript stack in web browsers does not have the ability to
discover the local transport address used for originating WebRTC
connections. Therefore the MSRP WebSocket Client constructs a domain
name consisting of a random token followed by the ".invalid" top-
level domain name, as stated in [RFC2606], and uses it within its
From-Path headers.
Authors' Addresses
Peter Dunkley
Crocodile RCS Ltd
Forum 3, Parkway
Solent Business Park, Whiteley
Fareham PO15 7FH
United Kingdom
Email: peter.dunkley@crocodile-rcs.com
Dunkley & Llewellyn Expires November 11, 2013 [Page 9]
Internet-Draft MSRP over WebRTC Data Channel May 2013
Gavin Llewellyn
Crocodile RCS Ltd
Forum 3, Parkway
Solent Business Park, Whiteley
Fareham PO15 7FH
United Kingdom
Email: gavin.llewellyn@crocodile-rcs.com
Dunkley & Llewellyn Expires November 11, 2013 [Page 10]