draft-ietf-avtcore-multiplex-guidelines-02.txt | draft-ietf-avtcore-multiplex-guidelines-03.txt | |||
---|---|---|---|---|
Network Working Group M. Westerlund | Network Working Group M. Westerlund | |||
Internet-Draft B. Burman | Internet-Draft B. Burman | |||
Intended status: Informational Ericsson | Intended status: Informational Ericsson | |||
Expires: July 17, 2014 C. Perkins | Expires: April 11, 2015 C. Perkins | |||
University of Glasgow | University of Glasgow | |||
H. Alvestrand | H. Alvestrand | |||
January 13, 2014 | October 08, 2014 | |||
Guidelines for using the Multiplexing Features of RTP to Support | Guidelines for using the Multiplexing Features of RTP to Support | |||
Multiple Media Streams | Multiple Media Streams | |||
draft-ietf-avtcore-multiplex-guidelines-02 | draft-ietf-avtcore-multiplex-guidelines-03 | |||
Abstract | Abstract | |||
The Real-time Transport Protocol (RTP) is a flexible protocol that | The Real-time Transport Protocol (RTP) is a flexible protocol that | |||
can be used in a wide range of applications, networks, and system | can be used in a wide range of applications, networks, and system | |||
topologies. That flexibility makes for wide applicability, but can | topologies. That flexibility makes for wide applicability, but can | |||
complicate the application design process. One particular design | complicate the application design process. One particular design | |||
question that has received much attention is how to support multiple | question that has received much attention is how to support multiple | |||
media streams in RTP. This memo discusses the available options and | media streams in RTP. This memo discusses the available options and | |||
design trade-offs, and provides guidelines on how to use the | design trade-offs, and provides guidelines on how to use the | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
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 July 17, 2014. | This Internet-Draft will expire on April 11, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 50 ¶ | skipping to change at page 2, line 50 ¶ | |||
6.1.6. Forward Error Correction . . . . . . . . . . . . . . 21 | 6.1.6. Forward Error Correction . . . . . . . . . . . . . . 21 | |||
6.1.7. Transport Translator Sessions . . . . . . . . . . . . 21 | 6.1.7. Transport Translator Sessions . . . . . . . . . . . . 21 | |||
6.2. Interworking Considerations . . . . . . . . . . . . . . . 21 | 6.2. Interworking Considerations . . . . . . . . . . . . . . . 21 | |||
6.2.1. Types of Interworking . . . . . . . . . . . . . . . . 22 | 6.2.1. Types of Interworking . . . . . . . . . . . . . . . . 22 | |||
6.2.2. RTP Translator Interworking . . . . . . . . . . . . . 22 | 6.2.2. RTP Translator Interworking . . . . . . . . . . . . . 22 | |||
6.2.3. Gateway Interworking . . . . . . . . . . . . . . . . 22 | 6.2.3. Gateway Interworking . . . . . . . . . . . . . . . . 22 | |||
6.2.4. Multiple SSRC Legacy Considerations . . . . . . . . . 23 | 6.2.4. Multiple SSRC Legacy Considerations . . . . . . . . . 23 | |||
6.3. Network Considerations . . . . . . . . . . . . . . . . . 24 | 6.3. Network Considerations . . . . . . . . . . . . . . . . . 24 | |||
6.3.1. Quality of Service . . . . . . . . . . . . . . . . . 24 | 6.3.1. Quality of Service . . . . . . . . . . . . . . . . . 24 | |||
6.3.2. NAT and Firewall Traversal . . . . . . . . . . . . . 25 | 6.3.2. NAT and Firewall Traversal . . . . . . . . . . . . . 25 | |||
6.3.3. Multicast . . . . . . . . . . . . . . . . . . . . . . 26 | 6.3.3. Multicast . . . . . . . . . . . . . . . . . . . . . . 27 | |||
6.3.4. Multiplexing multiple RTP Session on a Single | 6.3.4. Multiplexing multiple RTP Session on a Single | |||
Transport . . . . . . . . . . . . . . . . . . . . . . 27 | Transport . . . . . . . . . . . . . . . . . . . . . . 27 | |||
6.4. Security and Key Management Considerations . . . . . . . 27 | 6.4. Security and Key Management Considerations . . . . . . . 28 | |||
6.4.1. Security Context Scope . . . . . . . . . . . . . . . 27 | 6.4.1. Security Context Scope . . . . . . . . . . . . . . . 28 | |||
6.4.2. Key Management for Multi-party session . . . . . . . 28 | 6.4.2. Key Management for Multi-party session . . . . . . . 28 | |||
6.4.3. Complexity Implications . . . . . . . . . . . . . . . 28 | 6.4.3. Complexity Implications . . . . . . . . . . . . . . . 29 | |||
7. Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 7. Archetypes . . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
7.1. Single SSRC per Session . . . . . . . . . . . . . . . . . 29 | 7.1. Single SSRC per Session . . . . . . . . . . . . . . . . . 29 | |||
7.2. Multiple SSRCs of the Same Media Type . . . . . . . . . . 31 | 7.2. Multiple SSRCs of the Same Media Type . . . . . . . . . . 31 | |||
7.3. Multiple Sessions for one Media type . . . . . . . . . . 32 | 7.3. Multiple Sessions for one Media type . . . . . . . . . . 32 | |||
7.4. Multiple Media Types in one Session . . . . . . . . . . . 34 | 7.4. Multiple Media Types in one Session . . . . . . . . . . . 34 | |||
7.5. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 35 | 7.5. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
8. Summary considerations and guidelines . . . . . . . . . . . . 35 | 8. Summary considerations and guidelines . . . . . . . . . . . . 36 | |||
8.1. Guidelines . . . . . . . . . . . . . . . . . . . . . . . 35 | 8.1. Guidelines . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 37 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 37 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 37 | 11.2. Informative References . . . . . . . . . . . . . . . . . 37 | |||
Appendix A. Dismissing Payload Type Multiplexing . . . . . . . . 41 | Appendix A. Dismissing Payload Type Multiplexing . . . . . . . . 41 | |||
Appendix B. Proposals for Future Work . . . . . . . . . . . . . 43 | Appendix B. Proposals for Future Work . . . . . . . . . . . . . 43 | |||
Appendix C. Signalling considerations . . . . . . . . . . . . . 43 | Appendix C. Signalling considerations . . . . . . . . . . . . . 44 | |||
C.1. Signalling Aspects . . . . . . . . . . . . . . . . . . . 44 | C.1. Signalling Aspects . . . . . . . . . . . . . . . . . . . 44 | |||
C.1.1. Session Oriented Properties . . . . . . . . . . . . . 44 | C.1.1. Session Oriented Properties . . . . . . . . . . . . . 44 | |||
C.1.2. SDP Prevents Multiple Media Types . . . . . . . . . . 44 | C.1.2. SDP Prevents Multiple Media Types . . . . . . . . . . 45 | |||
C.1.3. Signalling Media Stream Usage . . . . . . . . . . . . 45 | C.1.3. Signalling Media Stream Usage . . . . . . . . . . . . 45 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 45 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46 | |||
1. Introduction | 1. Introduction | |||
The Real-time Transport Protocol (RTP) [RFC3550] is a commonly used | The Real-time Transport Protocol (RTP) [RFC3550] is a commonly used | |||
protocol for real-time media transport. It is a protocol that | protocol for real-time media transport. It is a protocol that | |||
provides great flexibility and can support a large set of different | provides great flexibility and can support a large set of different | |||
applications. RTP has several multiplexing points designed for | applications. RTP has several multiplexing points designed for | |||
different purposes. These enable support of multiple media streams | different purposes. These enable support of multiple media streams | |||
and switching between different encoding or packetization of the | and switching between different encoding or packetization of the | |||
media. By using multiple RTP sessions, sets of media streams can be | media. By using multiple RTP sessions, sets of media streams can be | |||
skipping to change at page 25, line 8 ¶ | skipping to change at page 25, line 8 ¶ | |||
However, for a flow based scheme there is a clear difference between | However, for a flow based scheme there is a clear difference between | |||
the methods. Additional SSRC will result in all media streams being | the methods. Additional SSRC will result in all media streams being | |||
part of the same 5-tuple (protocol, source address, destination | part of the same 5-tuple (protocol, source address, destination | |||
address, source port, destination port) which is the most common | address, source port, destination port) which is the most common | |||
selector for flow based QoS. Thus, separation of the level of QoS | selector for flow based QoS. Thus, separation of the level of QoS | |||
between media streams is not possible. That is however possible when | between media streams is not possible. That is however possible when | |||
using multiple RTP sessions, where each media stream for which a | using multiple RTP sessions, where each media stream for which a | |||
separate QoS handling is desired can be in a different RTP session | separate QoS handling is desired can be in a different RTP session | |||
that can be sent over different 5-tuples. | that can be sent over different 5-tuples. | |||
It also needs to be noted that packet marking based QoS mechanisms | ||||
can have limitations. A general observation is that different DSCP | ||||
can be assigned to different packets within in a flow as well as | ||||
within an RTP Media Stream. However, care needs to be taken when | ||||
considering which forwarding behaviours that are applied on path due | ||||
to these DSCPs. In some cases the forwarding behaviour can result in | ||||
packet reordering. For more discussion of this see | ||||
[I-D.ietf-dart-dscp-rtp]. | ||||
More specific to the choice between using one or more RTP session can | ||||
be the method for assigning marking to packets. If this is done | ||||
using a network ingress function, it can have issues discriminating | ||||
the different RTP media streams. The network API on the endpoint | ||||
also needs to be capable of setting the marking on a per packet basis | ||||
to reach the full functionality. | ||||
6.3.2. NAT and Firewall Traversal | 6.3.2. NAT and Firewall Traversal | |||
In today's network there exist a large number of middleboxes. The | In today's network there exist a large number of middleboxes. The | |||
ones that normally have most impact on RTP are Network Address | ones that normally have most impact on RTP are Network Address | |||
Translators (NAT) and Firewalls (FW). | Translators (NAT) and Firewalls (FW). | |||
Below we analyze and comment on the impact of requiring more | Below we analyze and comment on the impact of requiring more | |||
underlying transport flows in the presence of NATs and Firewalls: | underlying transport flows in the presence of NATs and Firewalls: | |||
End-Point Port Consumption: A given IP address only has 65536 | End-Point Port Consumption: A given IP address only has 65536 | |||
skipping to change at page 37, line 49 ¶ | skipping to change at page 38, line 22 ¶ | |||
[I-D.ietf-avtcore-6222bis] | [I-D.ietf-avtcore-6222bis] | |||
Begen, A., Perkins, C., Wing, D., and E. Rescorla, | Begen, A., Perkins, C., Wing, D., and E. Rescorla, | |||
"Guidelines for Choosing RTP Control Protocol (RTCP) | "Guidelines for Choosing RTP Control Protocol (RTCP) | |||
Canonical Names (CNAMEs)", draft-ietf-avtcore-6222bis-06 | Canonical Names (CNAMEs)", draft-ietf-avtcore-6222bis-06 | |||
(work in progress), July 2013. | (work in progress), July 2013. | |||
[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-03 (work in | ietf-avtcore-multi-media-rtp-session-05 (work in | |||
progress), July 2013. | progress), February 2014. | |||
[I-D.ietf-avtcore-rtp-security-options] | [I-D.ietf-avtcore-rtp-security-options] | |||
Westerlund, M. and C. Perkins, "Options for Securing RTP | Westerlund, M. and C. Perkins, "Options for Securing RTP | |||
Sessions", draft-ietf-avtcore-rtp-security-options-09 | Sessions", draft-ietf-avtcore-rtp-security-options-10 | |||
(work in progress), November 2013. | (work in progress), January 2014. | |||
[I-D.ietf-avtext-multiple-clock-rates] | [I-D.ietf-avtext-multiple-clock-rates] | |||
Petit-Huguenin, M. and G. Zorn, "Support for Multiple | Petit-Huguenin, M. and G. Zorn, "Support for Multiple | |||
Clock Rates in an RTP Session", draft-ietf-avtext- | Clock Rates in an RTP Session", draft-ietf-avtext- | |||
multiple-clock-rates-10 (work in progress), September | multiple-clock-rates-11 (work in progress), November 2013. | |||
2013. | ||||
[I-D.ietf-dart-dscp-rtp] | ||||
Black, D. and P. Jones, "Differentiated Services | ||||
(DiffServ) and Real-time Communication", draft-ietf-dart- | ||||
dscp-rtp-07 (work in progress), September 2014. | ||||
[I-D.ietf-mmusic-msid] | [I-D.ietf-mmusic-msid] | |||
Alvestrand, H., "Cross Session Stream Identification in | Alvestrand, H., "WebRTC MediaStream Identification in the | |||
the Session Description Protocol", draft-ietf-mmusic- | Session Description Protocol", draft-ietf-mmusic-msid-06 | |||
msid-02 (work in progress), November 2013. | (work in progress), June 2014. | |||
[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, | |||
"Multiplexing Negotiation Using Session Description | "Negotiating Media Multiplexing Using the Session | |||
Protocol (SDP) Port Numbers", draft-ietf-mmusic-sdp- | Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | |||
bundle-negotiation-05 (work in progress), October 2013. | negotiation-11 (work in progress), September 2014. | |||
[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-09 (work in progress), | draft-ietf-payload-rtp-howto-13 (work in progress), | |||
October 2013. | January 2014. | |||
[I-D.lennox-avtcore-rtp-multi-stream] | [I-D.lennox-avtcore-rtp-multi-stream] | |||
Lennox, J., Westerlund, M., Wu, W., and C. Perkins, "RTP | Lennox, J., Westerlund, M., Wu, W., and C. Perkins, "RTP | |||
Considerations for Endpoints Sending Multiple Media | Considerations for Endpoints Sending Multiple Media | |||
Streams", draft-lennox-avtcore-rtp-multi-stream-02 (work | Streams", draft-lennox-avtcore-rtp-multi-stream-02 (work | |||
in progress), February 2013. | in progress), February 2013. | |||
[I-D.lennox-mmusic-sdp-source-selection] | [I-D.lennox-mmusic-sdp-source-selection] | |||
Lennox, J. and H. Schulzrinne, "Mechanisms for Media | Lennox, J. and H. Schulzrinne, "Mechanisms for Media | |||
Source Selection in the Session Description Protocol | Source Selection in the Session Description Protocol | |||
End of changes. 18 change blocks. | ||||
28 lines changed or deleted | 48 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |