draft-ietf-rtcweb-transports-00.txt | draft-ietf-rtcweb-transports-01.txt | |||
---|---|---|---|---|
Network Working Group H. Alvestrand | Network Working Group H. Alvestrand | |||
Internet-Draft Google | Internet-Draft Google | |||
Intended status: Standards Track August 18, 2013 | Intended status: Standards Track September 3, 2013 | |||
Expires: February 19, 2014 | Expires: March 7, 2014 | |||
Transports for RTCWEB | Transports for RTCWEB | |||
draft-ietf-rtcweb-transports-00 | draft-ietf-rtcweb-transports-01 | |||
Abstract | Abstract | |||
This document describes the data transport protocols used by RTCWEB, | This document describes the data transport protocols used by RTCWEB, | |||
including the protocols used for interaction with intermediate boxes | including the protocols used for interaction with intermediate boxes | |||
such as firewalls, relays and NAT boxes. | such as firewalls, relays and NAT boxes. | |||
Requirements Language | Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
skipping to change at page 1, line 38 | skipping to change at page 1, line 38 | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 February 19, 2014. | This Internet-Draft will expire on March 7, 2014. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 2, line 14 | skipping to change at page 2, line 14 | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Transport and Middlebox specification . . . . . . . . . . . . . 3 | 2. Transport and Middlebox specification . . . . . . . . . . . . . 3 | |||
2.1. System-provided interfaces . . . . . . . . . . . . . . . . 3 | 2.1. System-provided interfaces . . . . . . . . . . . . . . . . 3 | |||
2.2. Middle box related functions . . . . . . . . . . . . . . . 3 | 2.2. Middle box related functions . . . . . . . . . . . . . . . 4 | |||
2.3. Transport protocols implemented . . . . . . . . . . . . . . 4 | 2.3. Transport protocols implemented . . . . . . . . . . . . . . 4 | |||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4 | 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 | |||
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 | 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
6.1. Normative References . . . . . . . . . . . . . . . . . . . 5 | 6.1. Normative References . . . . . . . . . . . . . . . . . . . 5 | |||
6.2. Informative References . . . . . . . . . . . . . . . . . . 6 | 6.2. Informative References . . . . . . . . . . . . . . . . . . 7 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6 | Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . . 7 | |||
A.1. Changes from -00 to -01 . . . . . . . . . . . . . . . . . . 7 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
1. Introduction | 1. Introduction | |||
The IETF RTCWEB effort, part of the WebRTC effort carried out in | The IETF RTCWEB effort, part of the WebRTC effort carried out in | |||
cooperation between the IETF and the W3C, is aimed at specifying a | cooperation between the IETF and the W3C, is aimed at specifying a | |||
protocol suite that is useful for real time multimedia exchange | protocol suite that is useful for real time multimedia exchange | |||
between browsers. | between browsers. | |||
The overall effort is described in the RTCWEB overview document, | The overall effort is described in the RTCWEB overview document, | |||
[I-D.ietf-rtcweb-overview]. This document focuses on the data | [I-D.ietf-rtcweb-overview]. This document focuses on the data | |||
skipping to change at page 3, line 36 | skipping to change at page 3, line 36 | |||
protocols are available to the implementations of the RTCWEB | protocols are available to the implementations of the RTCWEB | |||
protocols: | protocols: | |||
o UDP. This is the protocol assumed by most protocol elements | o UDP. This is the protocol assumed by most protocol elements | |||
described. | described. | |||
o TCP. This is used for HTTP/WebSockets, as well as for TURN/SSL | o TCP. This is used for HTTP/WebSockets, as well as for TURN/SSL | |||
and ICE-TCP. | and ICE-TCP. | |||
For both protocols, this specification assumes the ability to set the | For both protocols, this specification assumes the ability to set the | |||
DSCP code point of the sockets opened. It does not assume that the | DSCP code point of the sockets opened on a per-packet basis, in order | |||
DSCP codepoints will be honored, and does assume that they may be | to achieve the prioritizations described in [I-D.ietf-rtcweb-qos]. | |||
zeroed or changed, since this is a local configuration issue. | It does not assume that the DSCP codepoints will be honored, and does | |||
assume that they may be zeroed or changed, since this is a local | ||||
configuration issue. | ||||
If DSCP code points can only be set on a per-socket basis, not per- | ||||
packet, one loses the ability to have the network discriminate | ||||
reliably between classes of traffic sent over the same transport, but | ||||
this does not prevent communication. | ||||
This specification does not assume that the implementation will have | This specification does not assume that the implementation will have | |||
access to ICMP or raw IP. | access to ICMP or raw IP. | |||
2.2. Middle box related functions | 2.2. Middle box related functions | |||
The primary mechanism to deal with middle boxes is ICE, which is an | The primary mechanism to deal with middle boxes is ICE, which is an | |||
appropriate way to deal with NAT boxes and firewalls that accept | appropriate way to deal with NAT boxes and firewalls that accept | |||
traffic from the inside, but only from the outside if it's in | traffic from the inside, but only from the outside if it's in | |||
response to inside traffic (simple stateful firewalls). | response to inside traffic (simple stateful firewalls). | |||
In order to deal with symmetric NATs, TURN MUST be supported. | In order to deal with situations where both parties are behind NATs | |||
which perform endpoint-dependent mapping (as defined in [RFC5128] | ||||
section 2.4), TURN [RFC5766] MUST be supported. | ||||
In order to deal with firewalls that block all UDP traffic, TURN over | In order to deal with firewalls that block all UDP traffic, TURN | |||
TCP MUST be supported. (QUESTION: What about ICE-TCP?) | using TCP between the client and the server MUST be supported, and | |||
TURN using TLS between the client and the server MUST be supported. | ||||
ICE TCP candidates [RFC6062] MAY be supported; this may allow | ||||
applications to achieve peer-to-peer communication across UDP- | ||||
blocking firewalls, but this also requires use of the SRTP/AVPF/TCP | ||||
profile of RTP. | ||||
The following specifications MUST be supported: | The following specifications MUST be supported: | |||
o ICE [RFC5245] | o ICE [RFC5245] | |||
o TURN, including TURN over TCP [[QUESTION: and TURN over TLS]], | o TURN, including TURN over TCP[RFC5766]. | |||
[RFC5766]. | ||||
TURN over TLS over TCP MAY be supported. (QUESTION: SHOULD? MUST?) | ||||
For referring to STUN and TURN servers, this specification depends on | For referring to STUN and TURN servers, this specification depends on | |||
the STUN URI, [I-D.nandakumar-rtcweb-stun-uri]. | the STUN URI, [I-D.nandakumar-rtcweb-stun-uri]. | |||
Further discussion of the interaction of RTCWEB with firewalls is | ||||
contained in [I-D.hutton-rtcweb-nat-firewall-considerations]. This | ||||
document makes no requirements on interacting with HTTP proxies or | ||||
HTTP proxy configuration methods. | ||||
2.3. Transport protocols implemented | 2.3. Transport protocols implemented | |||
For data transport over the RTCWEB data channel | For data transport over the RTCWEB data channel | |||
[I-D.ietf-rtcweb-data-channel], RTCWEB implementations support SCTP | [I-D.ietf-rtcweb-data-channel], RTCWEB implementations support SCTP | |||
over DTLS over ICE. This is specified in | over DTLS over ICE. This is specified in | |||
[I-D.ietf-tsvwg-sctp-dtls-encaps]. Negotiation of this transport in | [I-D.ietf-tsvwg-sctp-dtls-encaps]. Negotiation of this transport in | |||
SCTP is defined in [I-D.ietf-mmusic-sctp-sdp]. | SCTP is defined in [I-D.ietf-mmusic-sctp-sdp]. | |||
The setup protocol for RTCWEB data channels is described in | The setup protocol for RTCWEB data channels is described in | |||
[I-D.jesup-rtcweb-data-protocol]. | [I-D.jesup-rtcweb-data-protocol]. | |||
For transport of media, secure RTP is used. The details of the | For transport of media, secure RTP is used. The details of the | |||
profile of RTP used are described in "RTP Usage" | profile of RTP used are described in "RTP Usage" | |||
[I-D.ietf-rtcweb-rtp-usage]. | [I-D.ietf-rtcweb-rtp-usage]. | |||
RTCWEB implementations MUST support multiplexing of SCTP/DTLS and RTP | RTCWEB implementations MUST support multiplexing of DTLS and RTP over | |||
over the same port pair, as described in the DTLS_SRTP specification | the same port pair, as described in the DTLS_SRTP specification | |||
[RFC5764], section 5.1.2. | [RFC5764], section 5.1.2. Further separation of the DTLS traffic | |||
into SCTP and "other" is described in <need reference>. | ||||
3. IANA Considerations | 3. IANA Considerations | |||
This document makes no request of IANA. | This document makes no request of IANA. | |||
Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
RFC. | RFC. | |||
4. Security Considerations | 4. Security Considerations | |||
skipping to change at page 5, line 26 | skipping to change at page 5, line 44 | |||
Loreto, S. and G. Camarillo, "Stream Control Transmission | Loreto, S. and G. Camarillo, "Stream Control Transmission | |||
Protocol (SCTP)-Based Media Transport in the Session | Protocol (SCTP)-Based Media Transport in the Session | |||
Description Protocol (SDP)", draft-ietf-mmusic-sctp-sdp-04 | Description Protocol (SDP)", draft-ietf-mmusic-sctp-sdp-04 | |||
(work in progress), June 2013. | (work in progress), June 2013. | |||
[I-D.ietf-rtcweb-data-channel] | [I-D.ietf-rtcweb-data-channel] | |||
Jesup, R., Loreto, S., and M. Tuexen, "RTCWeb Data | Jesup, R., Loreto, S., and M. Tuexen, "RTCWeb Data | |||
Channels", draft-ietf-rtcweb-data-channel-05 (work in | Channels", draft-ietf-rtcweb-data-channel-05 (work in | |||
progress), July 2013. | progress), July 2013. | |||
[I-D.ietf-rtcweb-qos] | ||||
Dhesikan, S., Druta, D., Jones, P., and J. Polk, "DSCP and | ||||
other packet markings for RTCWeb QoS", | ||||
draft-ietf-rtcweb-qos-00 (work in progress), October 2012. | ||||
[I-D.ietf-rtcweb-rtp-usage] | [I-D.ietf-rtcweb-rtp-usage] | |||
Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time | Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time | |||
Communication (WebRTC): Media Transport and Use of RTP", | Communication (WebRTC): Media Transport and Use of RTP", | |||
draft-ietf-rtcweb-rtp-usage-07 (work in progress), | draft-ietf-rtcweb-rtp-usage-07 (work in progress), | |||
July 2013. | July 2013. | |||
[I-D.ietf-rtcweb-security] | [I-D.ietf-rtcweb-security] | |||
Rescorla, E., "Security Considerations for WebRTC", | Rescorla, E., "Security Considerations for WebRTC", | |||
draft-ietf-rtcweb-security-05 (work in progress), | draft-ietf-rtcweb-security-05 (work in progress), | |||
July 2013. | July 2013. | |||
skipping to change at page 6, line 22 | skipping to change at page 6, line 49 | |||
April 2010. | April 2010. | |||
[RFC5764] McGrew, D. and E. Rescorla, "Datagram Transport Layer | [RFC5764] McGrew, D. and E. Rescorla, "Datagram Transport Layer | |||
Security (DTLS) Extension to Establish Keys for the Secure | Security (DTLS) Extension to Establish Keys for the Secure | |||
Real-time Transport Protocol (SRTP)", RFC 5764, May 2010. | Real-time Transport Protocol (SRTP)", RFC 5764, May 2010. | |||
[RFC5766] Mahy, R., Matthews, P., and J. Rosenberg, "Traversal Using | [RFC5766] Mahy, R., Matthews, P., and J. Rosenberg, "Traversal Using | |||
Relays around NAT (TURN): Relay Extensions to Session | Relays around NAT (TURN): Relay Extensions to Session | |||
Traversal Utilities for NAT (STUN)", RFC 5766, April 2010. | Traversal Utilities for NAT (STUN)", RFC 5766, April 2010. | |||
[RFC6062] Perreault, S. and J. Rosenberg, "Traversal Using Relays | ||||
around NAT (TURN) Extensions for TCP Allocations", | ||||
RFC 6062, November 2010. | ||||
6.2. Informative References | 6.2. Informative References | |||
[I-D.hutton-rtcweb-nat-firewall-considerations] | ||||
Stach, T., Hutton, A., and J. Uberti, "RTCWEB | ||||
Considerations for NATs, Firewalls and HTTP proxies", | ||||
draft-hutton-rtcweb-nat-firewall-considerations-01 (work | ||||
in progress), June 2013. | ||||
[I-D.ietf-rtcweb-overview] | [I-D.ietf-rtcweb-overview] | |||
Alvestrand, H., "Overview: Real Time Protocols for Brower- | Alvestrand, H., "Overview: Real Time Protocols for Brower- | |||
based Applications", draft-ietf-rtcweb-overview-06 (work | based Applications", draft-ietf-rtcweb-overview-07 (work | |||
in progress), February 2013. | in progress), August 2013. | |||
[I-D.jesup-rtcweb-data-protocol] | [I-D.jesup-rtcweb-data-protocol] | |||
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel | Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel | |||
Protocol", draft-jesup-rtcweb-data-protocol-04 (work in | Protocol", draft-jesup-rtcweb-data-protocol-04 (work in | |||
progress), February 2013. | progress), February 2013. | |||
[RFC5128] Srisuresh, P., Ford, B., and D. Kegel, "State of Peer-to- | ||||
Peer (P2P) Communication across Network Address | ||||
Translators (NATs)", RFC 5128, March 2008. | ||||
Appendix A. Change log | ||||
A.1. Changes from -00 to -01 | ||||
o Clarified DSCP requirements, with reference to -qos- | ||||
o Clarified "symmetric NAT" -> "NATs which perform endpoint- | ||||
dependent mapping" | ||||
o Made support of TURN over TCP mandatory | ||||
o Made support of TURN over TLS a MAY, and added open question | ||||
o Added an informative reference to -firewalls- | ||||
o Called out that we don't make requirements on HTTP proxy | ||||
interaction (yet) | ||||
Author's Address | Author's Address | |||
Harald Alvestrand | Harald Alvestrand | |||
Email: harald@alvestrand.no | Email: harald@alvestrand.no | |||
End of changes. 17 change blocks. | ||||
22 lines changed or deleted | 83 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |