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
Google Google
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.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/