Guidelines for Using the Multiplexing Features of RTP to Support Multiple Media Streams
RFC 8872

Document Type RFC - Informational (January 2021; No errata)
Authors Magnus Westerlund  , Bo Burman  , Colin Perkins  , Harald Alvestrand  , Roni Even 
Last updated 2021-01-18
Replaces draft-westerlund-avtcore-multiplex-architecture
Stream Internet Engineering Task Force (IETF)
Formats plain text html xml pdf htmlized (tools) htmlized bibtex
Reviews
Stream WG state Submitted to IESG for Publication
Document shepherd Jonathan Lennox
Shepherd write-up Show (last changed 2019-02-17)
IESG IESG state RFC 8872 (Informational)
Action Holders
(None)
Consensus Boilerplate Yes
Telechat date
Responsible AD Barry Leiba
Send notices to Jonathan Lennox <jonathan.lennox42@gmail.com>
IANA IANA review state Version Changed - Review Needed
IANA action state No IANA Actions


Internet Engineering Task Force (IETF)                     M. Westerlund
Request for Comments: 8872                                     B. Burman
Category: Informational                                         Ericsson
ISSN: 2070-1721                                               C. Perkins
                                                   University of Glasgow
                                                           H. Alvestrand
                                                                  Google
                                                                 R. Even
                                                            January 2021

    Guidelines for Using the Multiplexing Features of RTP to Support
                         Multiple Media Streams

Abstract

   The Real-time Transport Protocol (RTP) is a flexible protocol that
   can be used in a wide range of applications, networks, and system
   topologies.  That flexibility makes for wide applicability but can
   complicate the application design process.  One particular design
   question that has received much attention is how to support multiple
   media streams in RTP.  This memo discusses the available options and
   design trade-offs, and provides guidelines on how to use the
   multiplexing features of RTP to support multiple media streams.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Not all documents
   approved by the IESG are candidates for any level of Internet
   Standard; see Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8872.

Copyright Notice

   Copyright (c) 2021 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
   (https://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
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction
   2.  Definitions
     2.1.  Terminology
     2.2.  Focus of This Document
   3.  RTP Multiplexing Overview
     3.1.  Reasons for Multiplexing and Grouping RTP Streams
     3.2.  RTP Multiplexing Points
       3.2.1.  RTP Session
       3.2.2.  Synchronization Source (SSRC)
       3.2.3.  Contributing Source (CSRC)
       3.2.4.  RTP Payload Type
     3.3.  Issues Related to RTP Topologies
     3.4.  Issues Related to RTP and RTCP
       3.4.1.  The RTP Specification
       3.4.2.  Multiple SSRCs in a Session
       3.4.3.  Binding Related Sources
       3.4.4.  Forward Error Correction
   4.  Considerations for RTP Multiplexing
     4.1.  Interworking Considerations
       4.1.1.  Application Interworking
       4.1.2.  RTP Translator Interworking
       4.1.3.  Gateway Interworking
       4.1.4.  Legacy Considerations for Multiple SSRCs
     4.2.  Network Considerations
       4.2.1.  Quality of Service
       4.2.2.  NAT and Firewall Traversal
       4.2.3.  Multicast
     4.3.  Security and Key-Management Considerations
       4.3.1.  Security Context Scope
       4.3.2.  Key Management for Multi-party Sessions
       4.3.3.  Complexity Implications
   5.  RTP Multiplexing Design Choices
     5.1.  Multiple Media Types in One Session
     5.2.  Multiple SSRCs of the Same Media Type
     5.3.  Multiple Sessions for One Media Type
     5.4.  Single SSRC per Endpoint
     5.5.  Summary
   6.  Guidelines
   7.  IANA Considerations
   8.  Security Considerations
   9.  References
     9.1.  Normative References
     9.2.  Informative References
   Appendix A.  Dismissing Payload Type Multiplexing
   Appendix B.  Signaling Considerations
     B.1.  Session-Oriented Properties
     B.2.  SDP Prevents Multiple Media Types
     B.3.  Signaling RTP Stream Usage
   Acknowledgments
   Contributors
   Authors' Addresses

1.  Introduction

   The Real-time Transport Protocol (RTP) [RFC3550] is a commonly used
   protocol for real-time media transport.  It is a protocol that
   provides great flexibility and can support a large set of different
   applications.  From the beginning, RTP was designed for multiple
   participants in a communication session.  It supports many topology
   paradigms and usages, as defined in [RFC7667].  RTP has several
Show full document text