draft-ietf-rtcweb-rtp-usage-22.txt | draft-ietf-rtcweb-rtp-usage-23.txt | |||
---|---|---|---|---|
RTCWEB Working Group C. S. Perkins | RTCWEB Working Group C. S. Perkins | |||
Internet-Draft University of Glasgow | Internet-Draft University of Glasgow | |||
Intended status: Standards Track M. Westerlund | Intended status: Standards Track M. Westerlund | |||
Expires: August 13, 2015 Ericsson | Expires: October 01, 2015 Ericsson | |||
J. Ott | J. Ott | |||
Aalto University | Aalto University | |||
February 09, 2015 | March 30, 2015 | |||
Web Real-Time Communication (WebRTC): Media Transport and Use of RTP | Web Real-Time Communication (WebRTC): Media Transport and Use of RTP | |||
draft-ietf-rtcweb-rtp-usage-22 | draft-ietf-rtcweb-rtp-usage-23 | |||
Abstract | Abstract | |||
The Web Real-Time Communication (WebRTC) framework provides support | The Web Real-Time Communication (WebRTC) framework provides support | |||
for direct interactive rich communication using audio, video, text, | for direct interactive rich communication using audio, video, text, | |||
collaboration, games, etc. between two peers' web-browsers. This | collaboration, games, etc. between two peers' web-browsers. This | |||
memo describes the media transport aspects of the WebRTC framework. | memo describes the media transport aspects of the WebRTC framework. | |||
It specifies how the Real-time Transport Protocol (RTP) is used in | It specifies how the Real-time Transport Protocol (RTP) is used in | |||
the WebRTC context, and gives requirements for which RTP features, | the WebRTC context, and gives requirements for which RTP features, | |||
profiles, and extensions need to be supported. | profiles, and extensions need to be supported. | |||
skipping to change at page 1, line 39 | skipping to change at page 1, line 39 | |||
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 August 13, 2015. | This Internet-Draft will expire on October 01, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 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 49 | skipping to change at page 2, line 49 | |||
5.2.4. Media Stream Identification . . . . . . . . . . . . . 18 | 5.2.4. Media Stream Identification . . . . . . . . . . . . . 18 | |||
5.2.5. Coordination of Video Orientation . . . . . . . . . . 18 | 5.2.5. Coordination of Video Orientation . . . . . . . . . . 18 | |||
6. WebRTC Use of RTP: Improving Transport Robustness . . . . . . 19 | 6. WebRTC Use of RTP: Improving Transport Robustness . . . . . . 19 | |||
6.1. Negative Acknowledgements and RTP Retransmission . . . . 19 | 6.1. Negative Acknowledgements and RTP Retransmission . . . . 19 | |||
6.2. Forward Error Correction (FEC) . . . . . . . . . . . . . 20 | 6.2. Forward Error Correction (FEC) . . . . . . . . . . . . . 20 | |||
7. WebRTC Use of RTP: Rate Control and Media Adaptation . . . . 20 | 7. WebRTC Use of RTP: Rate Control and Media Adaptation . . . . 20 | |||
7.1. Boundary Conditions and Circuit Breakers . . . . . . . . 21 | 7.1. Boundary Conditions and Circuit Breakers . . . . . . . . 21 | |||
7.2. Congestion Control Interoperability and Legacy Systems . 22 | 7.2. Congestion Control Interoperability and Legacy Systems . 22 | |||
8. WebRTC Use of RTP: Performance Monitoring . . . . . . . . . . 23 | 8. WebRTC Use of RTP: Performance Monitoring . . . . . . . . . . 23 | |||
9. WebRTC Use of RTP: Future Extensions . . . . . . . . . . . . 23 | 9. WebRTC Use of RTP: Future Extensions . . . . . . . . . . . . 23 | |||
10. Signalling Considerations . . . . . . . . . . . . . . . . . . 23 | 10. Signalling Considerations . . . . . . . . . . . . . . . . . . 24 | |||
11. WebRTC API Considerations . . . . . . . . . . . . . . . . . . 25 | 11. WebRTC API Considerations . . . . . . . . . . . . . . . . . . 25 | |||
12. RTP Implementation Considerations . . . . . . . . . . . . . . 27 | 12. RTP Implementation Considerations . . . . . . . . . . . . . . 27 | |||
12.1. Configuration and Use of RTP Sessions . . . . . . . . . 27 | 12.1. Configuration and Use of RTP Sessions . . . . . . . . . 28 | |||
12.1.1. Use of Multiple Media Sources Within an RTP Session 27 | 12.1.1. Use of Multiple Media Sources Within an RTP Session 28 | |||
12.1.2. Use of Multiple RTP Sessions . . . . . . . . . . . . 29 | 12.1.2. Use of Multiple RTP Sessions . . . . . . . . . . . . 29 | |||
12.1.3. Differentiated Treatment of RTP Packet Streams . . . 33 | 12.1.3. Differentiated Treatment of RTP Packet Streams . . . 33 | |||
12.2. Media Source, RTP Packet Streams, and Participant | 12.2. Media Source, RTP Packet Streams, and Participant | |||
Identification . . . . . . . . . . . . . . . . . . . . . 35 | Identification . . . . . . . . . . . . . . . . . . . . . 35 | |||
12.2.1. Media Source Identification . . . . . . . . . . . . 35 | 12.2.1. Media Source Identification . . . . . . . . . . . . 35 | |||
12.2.2. SSRC Collision Detection . . . . . . . . . . . . . . 36 | 12.2.2. SSRC Collision Detection . . . . . . . . . . . . . . 36 | |||
12.2.3. Media Synchronisation Context . . . . . . . . . . . 37 | 12.2.3. Media Synchronisation Context . . . . . . . . . . . 37 | |||
13. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | 13. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | |||
14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 | 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 | |||
15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 39 | 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 39 | |||
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 39 | 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
16.1. Normative References . . . . . . . . . . . . . . . . . . 39 | 16.1. Normative References . . . . . . . . . . . . . . . . . . 40 | |||
16.2. Informative References . . . . . . . . . . . . . . . . . 42 | 16.2. Informative References . . . . . . . . . . . . . . . . . 43 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 45 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
1. Introduction | 1. Introduction | |||
The Real-time Transport Protocol (RTP) [RFC3550] provides a framework | The Real-time Transport Protocol (RTP) [RFC3550] provides a framework | |||
for delivery of audio and video teleconferencing data and other real- | for delivery of audio and video teleconferencing data and other real- | |||
time media applications. Previous work has defined the RTP protocol, | time media applications. Previous work has defined the RTP protocol, | |||
along with numerous profiles, payload formats, and other extensions. | along with numerous profiles, payload formats, and other extensions. | |||
When combined with appropriate signalling, these form the basis for | When combined with appropriate signalling, these form the basis for | |||
many teleconferencing systems. | many teleconferencing systems. | |||
skipping to change at page 22, line 16 | skipping to change at page 22, line 16 | |||
Maximum Media Stream Bit Rate (TMMBR) Requests (see Section 5.1.6 of | Maximum Media Stream Bit Rate (TMMBR) Requests (see Section 5.1.6 of | |||
this memo). Signalled bandwidth limitations, such as SDP "b=AS:" or | this memo). Signalled bandwidth limitations, such as SDP "b=AS:" or | |||
"b=CT:" lines received from the peer, MUST be followed when sending | "b=CT:" lines received from the peer, MUST be followed when sending | |||
RTP packet streams. A WebRTC Endpoint receiving media SHOULD signal | RTP packet streams. A WebRTC Endpoint receiving media SHOULD signal | |||
its bandwidth limitations, these limitations have to be based on | its bandwidth limitations, these limitations have to be based on | |||
known bandwidth limitations, for example the capacity of the edge | known bandwidth limitations, for example the capacity of the edge | |||
links. | links. | |||
7.2. Congestion Control Interoperability and Legacy Systems | 7.2. Congestion Control Interoperability and Legacy Systems | |||
There are legacy RTP implementations that do not implement RTCP, and | All endpoints that wish to interwork with WebRTC MUST implement RTCP | |||
hence do not provide any congestion feedback. Congestion control | and provide congestion feedback via the defined RTCP reporting | |||
cannot be performed with these end-points. WebRTC Endpoints that | mechanisms. | |||
need to interwork with such end-points MUST limit their transmission | ||||
to a low rate, equivalent to a VoIP call using a low bandwidth codec, | ||||
that is unlikely to cause any significant congestion. | ||||
When interworking with legacy implementations that support RTCP using | When interworking with legacy implementations that support RTCP using | |||
the RTP/AVP profile [RFC3551], congestion feedback is provided in | the RTP/AVP profile [RFC3551], congestion feedback is provided in | |||
RTCP RR packets every few seconds. Implementations that have to | RTCP RR packets every few seconds. Implementations that have to | |||
interwork with such end-points MUST ensure that they keep within the | interwork with such end-points MUST ensure that they keep within the | |||
RTP circuit breaker [I-D.ietf-avtcore-rtp-circuit-breakers] | RTP circuit breaker [I-D.ietf-avtcore-rtp-circuit-breakers] | |||
constraints to limit the congestion they can cause. | constraints to limit the congestion they can cause. | |||
If a legacy end-point supports RTP/AVPF, this enables negotiation of | If a legacy end-point supports RTP/AVPF, this enables negotiation of | |||
important parameters for frequent reporting, such as the "trr-int" | important parameters for frequent reporting, such as the "trr-int" | |||
skipping to change at page 39, line 48 | skipping to change at page 40, line 12 | |||
Romascanu, Jim Spring, Martin Thomson, and the other members of the | Romascanu, Jim Spring, Martin Thomson, and the other members of the | |||
IETF RTCWEB working group for their valuable feedback. | IETF RTCWEB working group for their valuable feedback. | |||
16. References | 16. References | |||
16.1. Normative References | 16.1. Normative References | |||
[I-D.ietf-avtcore-multi-media-rtp-session] | [I-D.ietf-avtcore-multi-media-rtp-session] | |||
Westerlund, M., Perkins, C., and J. Lennox, "Sending | Westerlund, M., Perkins, C., and J. Lennox, "Sending | |||
Multiple Types of Media in a Single RTP Session", draft- | Multiple Types of Media in a Single RTP Session", draft- | |||
ietf-avtcore-multi-media-rtp-session-06 (work in | ietf-avtcore-multi-media-rtp-session-07 (work in | |||
progress), October 2014. | progress), March 2015. | |||
[I-D.ietf-avtcore-rtp-circuit-breakers] | [I-D.ietf-avtcore-rtp-circuit-breakers] | |||
Perkins, C. and V. Singh, "Multimedia Congestion Control: | Perkins, C. and V. Singh, "Multimedia Congestion Control: | |||
Circuit Breakers for Unicast RTP Sessions", draft-ietf- | Circuit Breakers for Unicast RTP Sessions", draft-ietf- | |||
avtcore-rtp-circuit-breakers-08 (work in progress), | avtcore-rtp-circuit-breakers-10 (work in progress), March | |||
December 2014. | 2015. | |||
[I-D.ietf-avtcore-rtp-multi-stream-optimisation] | [I-D.ietf-avtcore-rtp-multi-stream-optimisation] | |||
Lennox, J., Westerlund, M., Wu, Q., and C. Perkins, | Lennox, J., Westerlund, M., Wu, Q., and C. Perkins, | |||
"Sending Multiple Media Streams in a Single RTP Session: | "Sending Multiple Media Streams in a Single RTP Session: | |||
Grouping RTCP Reception Statistics and Other Feedback ", | Grouping RTCP Reception Statistics and Other Feedback ", | |||
draft-ietf-avtcore-rtp-multi-stream-optimisation-00 (work | draft-ietf-avtcore-rtp-multi-stream-optimisation-00 (work | |||
in progress), July 2013. | in progress), July 2013. | |||
[I-D.ietf-avtcore-rtp-multi-stream] | [I-D.ietf-avtcore-rtp-multi-stream] | |||
Lennox, J., Westerlund, M., Wu, W., and C. Perkins, | Lennox, J., Westerlund, M., Wu, W., and C. Perkins, | |||
"Sending Multiple Media Streams in a Single RTP Session", | "Sending Multiple Media Streams in a Single RTP Session", | |||
draft-ietf-avtcore-rtp-multi-stream-06 (work in progress), | draft-ietf-avtcore-rtp-multi-stream-07 (work in progress), | |||
October 2014. | March 2015. | |||
[I-D.ietf-mmusic-sdp-bundle-negotiation] | [I-D.ietf-mmusic-sdp-bundle-negotiation] | |||
Holmberg, C., Alvestrand, H., and C. Jennings, | Holmberg, C., Alvestrand, H., and C. Jennings, | |||
"Negotiating Media Multiplexing Using the Session | "Negotiating Media Multiplexing Using the Session | |||
Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | |||
negotiation-16 (work in progress), January 2015. | negotiation-19 (work in progress), March 2015. | |||
[I-D.ietf-rtcweb-audio] | [I-D.ietf-rtcweb-audio] | |||
Valin, J. and C. Bran, "WebRTC Audio Codec and Processing | Valin, J. and C. Bran, "WebRTC Audio Codec and Processing | |||
Requirements", draft-ietf-rtcweb-audio-07 (work in | Requirements", draft-ietf-rtcweb-audio-07 (work in | |||
progress), October 2014. | progress), October 2014. | |||
[I-D.ietf-rtcweb-fec] | [I-D.ietf-rtcweb-fec] | |||
Uberti, J., "WebRTC Forward Error Correction | Uberti, J., "WebRTC Forward Error Correction | |||
Requirements", draft-ietf-rtcweb-fec-00 (work in | Requirements", draft-ietf-rtcweb-fec-01 (work in | |||
progress), February 2015. | progress), March 2015. | |||
[I-D.ietf-rtcweb-security-arch] | [I-D.ietf-rtcweb-security-arch] | |||
Rescorla, E., "WebRTC Security Architecture", draft-ietf- | Rescorla, E., "WebRTC Security Architecture", draft-ietf- | |||
rtcweb-security-arch-10 (work in progress), July 2014. | rtcweb-security-arch-11 (work in progress), March 2015. | |||
[I-D.ietf-rtcweb-security] | [I-D.ietf-rtcweb-security] | |||
Rescorla, E., "Security Considerations for WebRTC", draft- | Rescorla, E., "Security Considerations for WebRTC", draft- | |||
ietf-rtcweb-security-07 (work in progress), July 2014. | ietf-rtcweb-security-08 (work in progress), February 2015. | |||
[I-D.ietf-rtcweb-video] | [I-D.ietf-rtcweb-video] | |||
Roach, A., "WebRTC Video Processing and Codec | Roach, A., "WebRTC Video Processing and Codec | |||
Requirements", draft-ietf-rtcweb-video-03 (work in | Requirements", draft-ietf-rtcweb-video-05 (work in | |||
progress), November 2014. | progress), March 2015. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC2736] Handley, M. and C. Perkins, "Guidelines for Writers of RTP | [RFC2736] Handley, M. and C. Perkins, "Guidelines for Writers of RTP | |||
Payload Format Specifications", BCP 36, RFC 2736, December | Payload Format Specifications", BCP 36, RFC 2736, December | |||
1999. | 1999. | |||
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | |||
Jacobson, "RTP: A Transport Protocol for Real-Time | Jacobson, "RTP: A Transport Protocol for Real-Time | |||
skipping to change at page 43, line 11 | skipping to change at page 43, line 25 | |||
16.2. Informative References | 16.2. Informative References | |||
[I-D.ietf-avtcore-multiplex-guidelines] | [I-D.ietf-avtcore-multiplex-guidelines] | |||
Westerlund, M., Perkins, C., and H. Alvestrand, | Westerlund, M., Perkins, C., and H. Alvestrand, | |||
"Guidelines for using the Multiplexing Features of RTP to | "Guidelines for using the Multiplexing Features of RTP to | |||
Support Multiple Media Streams", draft-ietf-avtcore- | Support Multiple Media Streams", draft-ietf-avtcore- | |||
multiplex-guidelines-03 (work in progress), October 2014. | multiplex-guidelines-03 (work in progress), October 2014. | |||
[I-D.ietf-avtcore-rtp-topologies-update] | [I-D.ietf-avtcore-rtp-topologies-update] | |||
Westerlund, M. and S. Wenger, "RTP Topologies", draft- | Westerlund, M. and S. Wenger, "RTP Topologies", draft- | |||
ietf-avtcore-rtp-topologies-update-05 (work in progress), | ietf-avtcore-rtp-topologies-update-06 (work in progress), | |||
November 2014. | March 2015. | |||
[I-D.ietf-avtext-rtp-grouping-taxonomy] | [I-D.ietf-avtext-rtp-grouping-taxonomy] | |||
Lennox, J., Gross, K., Nandakumar, S., and G. Salgueiro, | Lennox, J., Gross, K., Nandakumar, S., and G. Salgueiro, | |||
"A Taxonomy of Grouping Semantics and Mechanisms for Real- | "A Taxonomy of Grouping Semantics and Mechanisms for Real- | |||
Time Transport Protocol (RTP) Sources", draft-ietf-avtext- | Time Transport Protocol (RTP) Sources", draft-ietf-avtext- | |||
rtp-grouping-taxonomy-05 (work in progress), January 2015. | rtp-grouping-taxonomy-06 (work in progress), March 2015. | |||
[I-D.ietf-mmusic-msid] | [I-D.ietf-mmusic-msid] | |||
Alvestrand, H., "WebRTC MediaStream Identification in the | Alvestrand, H., "WebRTC MediaStream Identification in the | |||
Session Description Protocol", draft-ietf-mmusic-msid-07 | Session Description Protocol", draft-ietf-mmusic-msid-08 | |||
(work in progress), October 2014. | (work in progress), February 2015. | |||
[I-D.ietf-mmusic-sdp-bundle-negotiation] | [I-D.ietf-mmusic-sdp-bundle-negotiation] | |||
Holmberg, C., Alvestrand, H., and C. Jennings, | Holmberg, C., Alvestrand, H., and C. Jennings, | |||
"Negotiating Media Multiplexing Using the Session | "Negotiating Media Multiplexing Using the Session | |||
Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | |||
negotiation-16 (work in progress), January 2015. | negotiation-19 (work in progress), March 2015. | |||
[I-D.ietf-payload-rtp-howto] | [I-D.ietf-payload-rtp-howto] | |||
Westerlund, M., "How to Write an RTP Payload Format", | Westerlund, M., "How to Write an RTP Payload Format", | |||
draft-ietf-payload-rtp-howto-13 (work in progress), | draft-ietf-payload-rtp-howto-13 (work in progress), | |||
January 2014. | January 2014. | |||
[I-D.ietf-rmcat-cc-requirements] | [I-D.ietf-rmcat-cc-requirements] | |||
Jesup, R. and Z. Sarker, "Congestion Control Requirements | Jesup, R. and Z. Sarker, "Congestion Control Requirements | |||
for Interactive Real-Time Media", draft-ietf-rmcat-cc- | for Interactive Real-Time Media", draft-ietf-rmcat-cc- | |||
requirements-09 (work in progress), December 2014. | requirements-09 (work in progress), December 2014. | |||
End of changes. 21 change blocks. | ||||
36 lines changed or deleted | 33 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |