diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8088.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8088.txt')
-rw-r--r-- | doc/rfc/rfc8088.txt | 3643 |
1 files changed, 3643 insertions, 0 deletions
diff --git a/doc/rfc/rfc8088.txt b/doc/rfc/rfc8088.txt new file mode 100644 index 0000000..6e24307 --- /dev/null +++ b/doc/rfc/rfc8088.txt @@ -0,0 +1,3643 @@ + + + + + + +Internet Engineering Task Force (IETF) M. Westerlund +Request for Comments: 8088 Ericsson +Updates: 2736 May 2017 +Category: Informational +ISSN: 2070-1721 + + + How to Write an RTP Payload Format + +Abstract + + This document contains information on how best to write an RTP + payload format specification. It provides reading tips, design + practices, and practical tips on how to produce an RTP payload format + specification quickly and with good results. A template is also + included with instructions. + +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 a candidate 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 + http://www.rfc-editor.org/info/rfc8088. + +Copyright Notice + + Copyright (c) 2017 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 + (http://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. + + + + +Westerlund Informational [Page 1] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +Table of Contents + + 1. Introduction ....................................................4 + 1.1. Structure ..................................................4 + 2. Terminology .....................................................5 + 2.1. Definitions ................................................5 + 2.2. Abbreviations ..............................................5 + 2.3. Use of Normative Requirements Language .....................6 + 3. Preparations ....................................................6 + 3.1. Read and Understand the Media Coding Specification .........6 + 3.2. Recommended Reading ........................................7 + 3.2.1. IETF Process and Publication ........................7 + 3.2.2. RTP .................................................9 + 3.3. Important RTP Details .....................................13 + 3.3.1. The RTP Session ....................................13 + 3.3.2. RTP Header .........................................14 + 3.3.3. RTP Multiplexing ...................................16 + 3.3.4. RTP Synchronization ................................16 + 3.4. Signaling Aspects .........................................18 + 3.4.1. Media Types ........................................19 + 3.4.2. Mapping to SDP .....................................20 + 3.5. Transport Characteristics .................................23 + 3.5.1. Path MTU ...........................................23 + 3.5.2. Different Queuing Algorithms .......................23 + 3.5.3. Quality of Service .................................24 + 4. Standardization Process for an RTP Payload Format ..............24 + 4.1. IETF ......................................................25 + 4.1.1. Steps from Idea to Publication .....................25 + 4.1.2. WG Meetings ........................................27 + 4.1.3. Draft Naming .......................................27 + 4.1.4. Writing Style ......................................28 + 4.1.5. How to Speed Up the Process ........................29 + 4.2. Other Standards Bodies ....................................29 + 4.3. Proprietary and Vendor Specific ...........................30 + 4.4. Joint Development of Media Coding Specification + and RTP Payload Format ....................................31 + 5. Designing Payload Formats ......................................31 + 5.1. Features of RTP Payload Formats ...........................32 + 5.1.1. Aggregation ........................................32 + 5.1.2. Fragmentation ......................................33 + 5.1.3. Interleaving and Transmission Rescheduling .........33 + 5.1.4. Media Back Channels ................................34 + 5.1.5. Media Scalability ..................................34 + 5.1.6. High Packet Rates ..................................37 + 5.2. Selecting Timestamp Definition ............................37 + + + + + + +Westerlund Informational [Page 2] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + 6. Noteworthy Aspects in Payload Format Design ....................39 + 6.1. Audio Payloads ............................................39 + 6.2. Video .....................................................40 + 6.3. Text ......................................................41 + 6.4. Application ...............................................41 + 7. Important Specification Sections ...............................42 + 7.1. Media Format Description ..................................42 + 7.2. Security Considerations ...................................43 + 7.3. Congestion Control ........................................44 + 7.4. IANA Considerations .......................................45 + 8. Authoring Tools ................................................45 + 8.1. Editing Tools .............................................46 + 8.2. Verification Tools ........................................46 + 9. Security Considerations ........................................47 + 10. Informative References ........................................47 + Appendix A. RTP Payload Format Template ...........................58 + A.1. Title .....................................................58 + A.2. Front-Page Boilerplate ....................................58 + A.3. Abstract ..................................................58 + A.4. Table of Contents .........................................58 + A.5. Introduction ..............................................59 + A.6. Conventions, Definitions, and Abbreviations ...............59 + A.7. Media Format Description ..................................59 + A.8. Payload Format ............................................59 + A.8.1. RTP Header Usage ......................................59 + A.8.2. Payload Header ........................................59 + A.8.3. Payload Data ..........................................60 + A.9. Payload Examples ..........................................60 + A.10. Congestion Control Considerations .........................60 + A.11. Payload Format Parameters .................................60 + A.11.1. Media Type Definition ................................60 + A.11.2. Mapping to SDP .......................................62 + A.12. IANA Considerations .......................................63 + A.13. Security Considerations ...................................63 + A.14. RFC Editor Considerations .................................64 + A.15. References ................................................64 + A.15.1. Normative References .................................64 + A.15.2. Informative References ...............................64 + A.16. Authors' Addresses ........................................64 + Acknowledgements ..................................................64 + Contributors ......................................................65 + Author's Address ..................................................65 + + + + + + + + + +Westerlund Informational [Page 3] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +1. Introduction + + RTP [RFC3550] payload formats define how a specific real-time data + format is structured in the payload of an RTP packet. A real-time + data format without a payload format specification cannot be + transported using RTP. This creates an interest in many individuals/ + organizations with media encoders or other types of real-time data to + define RTP payload formats. However, the specification of a well- + designed RTP payload format is nontrivial and requires knowledge of + both RTP and the real-time data format. + + This document is intended to help any author of an RTP payload format + specification make important design decisions, consider important + features of RTP and RTP security, etc. The document is also intended + to be a good starting point for any person with little experience in + the IETF and/or RTP to learn the necessary steps. + + This document extends and updates the information that is available + in "Guidelines for Writers of RTP Payload Format Specifications" + [RFC2736]. Since that RFC was written, further experience has been + gained on the design and specification of RTP payload formats. + Several new RTP profiles and robustness tools have been defined, and + these need to be considered. + + This document also discusses the possible venues for defining an RTP + payload format: the IETF, other standards bodies, and proprietary + ones. + + Note, this document does discuss IETF, IANA, and RFC Editor processes + and rules as they were when this document was published. This to + make clear how the work to specify an RTP payload formats depends, + uses, and interacts with these rules and processes. However, these + rules and processes are subject to change and the formal rule and + process specifications always takes precedence over what is written + here. + +1.1. Structure + + This document has several different parts discussing different + aspects of the creation of an RTP payload format specification. + Section 3 discusses the preparations the author(s) should make before + starting to write a specification. Section 4 discusses the different + processes used when specifying and completing a payload format, with + focus on working inside the IETF. Section 5 discusses the design of + payload formats themselves in detail. Section 6 discusses current + design trends and provides good examples of practices that should be + followed when applicable. Following that, Section 7 provides a + discussion on important sections in the RTP payload format + + + +Westerlund Informational [Page 4] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + specification itself such as Security Considerations and IANA + Considerations. This document ends with an appendix containing a + template that can be used when writing RTP payload formats + specifications. + +2. Terminology + +2.1. Definitions + + RTP Stream: A sequence of RTP packets that together carry part or + all of the content of a specific media (audio, video, text, or + data whose form and meaning are defined by a specific real-time + application) from a specific sender source within a given RTP + session. + + RTP Session: An association among a set of participants + communicating with RTP. The distinguishing feature of an RTP + session is that each session maintains a full, separate space of + synchronization source (SSRC) identifiers. See also + Section 3.3.1. + + RTP Payload Format: The RTP payload format specifies how units of a + specific encoded media are put into the RTP packet payloads and + how the fields of the RTP packet header are used, thus enabling + the format to be used in RTP applications. + + A Taxonomy of Semantics and Mechanisms for Real-Time Transport + Protocol (RTP) Sources [RFC7656] defines many useful terms. + +2.2. Abbreviations + + ABNF: Augmented Backus-Naur Form [RFC5234] + + ADU: Application Data Unit + + ALF: Application Level Framing + + ASM: Any-Source Multicast + + BCP: Best Current Practice + + I-D: Internet-Draft + + IESG: Internet Engineering Steering Group + + MTU: Maximum Transmission Unit + + WG: Working Group + + + +Westerlund Informational [Page 5] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + QoS: Quality of Service + + RFC: Request For Comments + + RTP: Real-time Transport Protocol + + RTCP: RTP Control Protocol + + RTT: Round-Trip Time + + SSM: Source-Specific Multicast + +2.3. Use of Normative Requirements Language + + As this document is both Informational and instructional rather than + a specification, this document does not use any RFC 2119 language and + the use of "may", "should", "recommended", and "must" carries no + special connotation. + +3. Preparations + + RTP is a complex real-time media delivery framework, and it has a lot + of details that need to be considered when writing an RTP payload + format. It is also important to have a good understanding of the + media codec / format so that all of its important features and + properties are considered. Only when one has sufficient + understanding of both parts can one produce an RTP payload format of + high quality. On top of this, one needs to understand the process + within the IETF and especially the Working Group responsible for + standardizing payload formats (currently the PAYLOAD WG) to go + quickly from the initial idea stage to a finished RFC. This and the + next sections help an author prepare himself in those regards. + +3.1. Read and Understand the Media Coding Specification + + It may be obvious, but it is necessary for an author of an RTP + payload specification to have a solid understanding of the media to + be transported. Important are not only the specifically spelled out + transport aspects (if any) in the media coding specification, but + also core concepts of the underlying technology. For example, an RTP + payload format for video coded with inter-picture prediction will + perform poorly if the payload designer does not take the use of + inter-picture prediction into account. On the other hand, some + (mostly older) media codecs offer error-resilience tools against bit + errors, which, when misapplied over RTP, in almost all cases would + only introduce overhead with no measurable return. + + + + + +Westerlund Informational [Page 6] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +3.2. Recommended Reading + + The following subsections list a number of documents. Not all need + to be read in full detail. However, an author basically needs to be + aware of everything listed below. + +3.2.1. IETF Process and Publication + + Newcomers to the IETF are strongly recommended to read the "Tao of + the IETF" [TAO] that goes through most things that one needs to know + about the IETF: the history, organizational structure, how the WGs + and meetings work, etc. + + It is very important to note and understand the IETF Intellectual + Property Rights (IPR) policy that requires early disclosures based on + personal knowledge from anyone contributing in IETF. The IETF + policies associated with IPR are documented in BCP 78 [BCP78] + (related to copyright, including software copyright, for example, + code) and BCP 79 [BCP79] (related to patent rights). These rules may + be different from other standardization organizations. For example, + a person that has a patent or a patent application that he or she + reasonably and personally believes to cover a mechanism that gets + added to the Internet-Draft they are contributing to (e.g., by + submitting the draft, posting comments or suggestions on a mailing + list, or speaking at a meeting) will need to make a timely IPR + disclosure. Read the above documents for the authoritative rules. + Failure to follow the IPR rules can have dire implications for the + specification and the author(s) as discussed in [RFC6701]. + + Note: These IPR rules apply on what is specified in the RTP + payload format Internet-Draft (and later RFC); an IPR that relates + to a codec specification from an external body does not require + IETF IPR disclosure. Informative text explaining the nature of + the codec would not normally require an IETF IPR declaration. + Appropriate IPR declarations for the codec itself would normally + be found in files of the external body defining the codec, in + accordance with that external body's own IPR rules. + + The main part of the IETF process is formally defined in BCP 9 + [BCP9]. BCP 25 [BCP25] describes the WG process, the relation + between the IESG and the WG, and the responsibilities of WG Chairs + and participants. + + It is important to note that the RFC Series contains documents of + several different publication streams as defined by The RFC Series + and RFC Editor [RFC4844]. The most important stream for RTP payload + formats authors is the IETF Stream. In this stream, the work of the + IETF is published. The stream contains documents of several + + + +Westerlund Informational [Page 7] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + different categories: Standards Track, Informational, Experimental, + Best Current Practice, and Historic. "Standards Track" contains two + maturity levels: Proposed Standard and Internet Standard [RFC6410]. + A Standards Track document must start as a Proposed Standard; after + successful deployment and operational experience with at least two + implementations, it can be moved to an Internet Standard. The + Independent Submission Stream could appear to be of interest as it + provides a way of publishing documents of certain categories such as + Experimental and Informational with a different review process. + However, as long as IETF has a WG that is chartered to work on RTP + payload formats, this stream should not be used. + + As the content of a given RFC is not allowed to change once + published, the only way to modify an RFC is to write and publish a + new one that either updates or replaces the old one. Therefore, + whether reading or referencing an RFC, it is important to consider + both the Category field in the document header and to check if the + RFC is the latest on the subject and still valid. One way of + checking the current status of an RFC is to use the RFC Editor's RFC + search page (https://www.rfc-editor.org/search), which displays the + current status and which if any RFC has updated or obsoleted it. The + RFC Editor search engine will also indicate if there exist any errata + reports for the RFC. Any verified errata report contains issues of + significant importance with the RFC; thus, they should be known prior + to an update and replacement publication. + + Before starting to write a draft, one should also read the Internet- + Draft writing guidelines (http://www.ietf.org/ietf/1id- + guidelines.txt), the I-D checklist (http://www.ietf.org/ID- + Checklist.html), and the RFC Style Guide [RFC7322]. Another document + that can be useful is "Guide for Internet Standards Writers" + [RFC2360]. + + There are also a number of documents to consider in the process of + writing drafts intended to become RFCs. These are important when + writing certain types of text. + + RFC 2606: When writing examples using DNS names in Internet-Drafts, + those names shall be chosen from the example.com, example.net, and + example.org domains. + + RFC 3849: Defines the range of IPv6 unicast addresses + (2001:DB8::/32) that should be used in any examples. + + RFC 5737: Defines the ranges of IPv4 unicast addresses reserved for + documentation and examples: 192.0.2.0/24, 198.51.100.0/24, and + 203.0.113.0/24. + + + + +Westerlund Informational [Page 8] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + RFC 5234: Augmented Backus-Naur Form (ABNF) is often used when + writing text field specifications. Not commonly used in RTP + payload formats, but may be useful when defining media type + parameters of some complexity. + +3.2.2. RTP + + The recommended reading for RTP consists of several different parts: + design guidelines, the RTP protocol, profiles, robustness tools, and + media-specific recommendations. + + Any author of RTP payload formats should start by reading "Guidelines + for Writers of RTP Payload Format Specifications" [RFC2736], which + contains an introduction to the Application Level Framing (ALF) + principle, the channel characteristics of IP channels, and design + guidelines for RTP payload formats. The goal of ALF is to be able to + transmit Application Data Units (ADUs) that are independently usable + by the receiver in individual RTP packets, thus minimizing + dependencies between RTP packets and the effects of packet loss. + + Then, it is advisable to learn more about the RTP protocol, by + studying the RTP specification "RTP: A Transport Protocol for Real- + Time Applications" [RFC3550] and the existing profiles. As a + complement to the Standards Track documents, there exists a book + totally dedicated to RTP [CSP-RTP]. There exist several profiles for + RTP today, but all are based on "RTP Profile for Audio and Video + Conferences with Minimal Control" [RFC3551] (abbreviated as RTP/AVP). + The other profiles that one should know about are "The Secure Real- + time Transport Protocol (SRTP)" (RTP/SAVP) [RFC3711], "Extended RTP + Profile for RTCP-based Feedback (RTP/AVPF)" [RFC4585], and "Extended + Secure Real-time Transport Control Protocol (RTCP)-Based Feedback + (RTP/SAVPF)" [RFC5124]. It is important to understand RTP and the + RTP/AVP profile in detail. For the other profiles, it is sufficient + to have an understanding of what functionality they provide and the + limitations they create. + + A number of robustness tools have been developed for RTP. The tools + are for different use cases and real-time requirements. + + RFC 2198: "RTP Payload for Redundant Audio Data" [RFC2198] provides + functionalities to transmit redundant copies of audio or text + payloads. These redundant copies are sent together with a primary + format in the same RTP payload. This format relies on the RTP + timestamp to determine where data belongs in a sequence; + therefore, it is usually most suitable to be used with audio. + However, the RTP Payload format for T.140 [RFC4103] text format + also uses this format. The format's major property is that it + only preserves the timestamp of the redundant payloads, not the + + + +Westerlund Informational [Page 9] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + original sequence number. This makes it unusable for most video + formats. This format is also only suitable for media formats that + produce relatively small RTP payloads. + + RFC 6354: The "Forward-Shifted RTP Redundancy Payload Support" + [RFC6354] is a variant of RFC 2198 that allows the redundant data + to be transmitted prior to the original. + + RFC 5109: The "RTP Payload Format for Generic Forward Error + Correction" [RFC5109] provides an XOR-based Forward Error + Correction (FEC) of the whole or parts of a number of RTP packets. + This specification replaced the previous specification for XOR- + based FEC [RFC2733]. These FEC packets are sent in a separate + stream or as a redundant encoding using RFC 2198. This FEC scheme + has certain restrictions in the number of packets it can protect. + It is suitable for applications with low-to-medium delay tolerance + with a limited amount of RTP packets. + + RFC 6015: "RTP Payload Format for 1-D Interleaved Parity Forward + Error Correction (FEC)" [RFC6015] provides a variant of the XOR- + based Generic protection defined in [RFC2733]. The main + difference is to use interleaving scheme on which packets gets + included as source packets for a particular protection packet. + The interleaving is defined by using every L packets as source + data and then producing protection data over D number of packets. + Thus, each block of D x L source packets will result in L number + of Repair packets, each capable of repairing one loss. The goal + is to provide better burst-error robustness when the packet rate + is higher. + + FEC Framework: "Forward Error Correction (FEC) Framework" [RFC6363] + defines how to use FEC protection for arbitrary packet flows. + This framework can be applied for RTP/RTCP packet flows, including + using RTP for transmission of repair symbols, an example is in + "RTP Payload Format for Raptor Forward Error Correction (FEC)" + [RFC6682]. + + RTP Retransmission: The RTP retransmission scheme [RFC4588] is used + for semi-reliability of the most important RTP packets in a RTP + stream. The level of reliability between semi- and in-practice + full reliability depends on the targeted properties and situation + where parameters such as round-trip time (RTT) allowed additional + overhead and allowable delay. It often requires the application + to be quite delay tolerant as a minimum of one round-trip time + plus processing delay is required to perform a retransmission. + Thus, it is mostly suitable for streaming applications but may + also be usable in certain other cases when operating in networks + with short round-trip times. + + + +Westerlund Informational [Page 10] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + RTP over TCP: RFC 4571 [RFC4571] defines how one sends RTP and RTCP + packets over connection-oriented transports like TCP. If one uses + TCP, one gets reliability for all packets but loses some of the + real-time behavior that RTP was designed to provide. Issues with + TCP transport of real-time media include head-of-line blocking and + wasting resources on retransmission of data that is already late. + TCP is also limited to point-to-point connections, which further + restricts its applicability. + + There have been both discussion and design of RTP payload formats, + e.g., Adaptive Multi-Rate (AMR) and AMR Wideband (AMR-WB) [RFC4867], + supporting the unequal error detection provided by UDP-Lite + [RFC3828]. The idea is that by not having a checksum over part of + the RTP payload one can allow bit errors from the lower layers. By + allowing bit errors one can increase the efficiency of some link + layers and also avoid unnecessary discarding of data when the payload + and media codec can get at least some benefit from the data. The + main issue is that one has no idea of the level of bit errors present + in the unprotected part of the payload. This makes it hard or + impossible to determine whether or not one can design something + usable. Payload format designers are not recommended to consider + features for unequal error detection using UDP-Lite unless very clear + requirements exist. + + There also exist some management and monitoring extensions. + + RFC 2959: The RTP protocol Management Information Database (MIB) + [RFC2959] that is used with SNMP [RFC3410] to configure and + retrieve information about RTP sessions. + + RFC 3611: The RTCP Extended Reports (RTCP XR) [RFC3611] consists of + a framework for reports sent within RTCP. It can easily be + extended by defining new report formats, which has and is + occurring. The XRBLOCK WG in the IETF is chartered (at the time + of writing) with defining new report formats. The list of + specified formats is available in IANA's RTCP XR Block Type + registry (http://www.iana.org/assignments/rtcp-xr-block-types/). + The report formats that are defined in RFC 3611 provide report + information on packet loss, packet duplication, packet reception + times, RTCP statistics summary, and VoIP Quality. [RFC3611] also + defines a mechanism that allows receivers to calculate the RTT to + other session participants when used. + + RMONMIB: The Remote Network Monitoring WG has defined a mechanism + [RFC3577] based on usage of the MIB that can be an alternative to + RTCP XR. + + + + + +Westerlund Informational [Page 11] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + A number of transport optimizations have also been developed for use + in certain environments. They are all intended to be transparent and + do not require special consideration by the RTP payload format + writer. Thus, they are primarily listed here for informational + reasons. + + RFC 2508: "Compressing IP/UDP/RTP Headers for Low-Speed Serial + Links" (CRTP) [RFC2508] is the first IETF-developed RTP header + compression mechanism. It provides quite good compression; + however, it has clear performance problems when subject to packet + loss or reordering between compressor and decompressor. + + RFCs 3095 and 5795: These are the base specifications of the robust + header compression (ROHC) protocol version 1 [RFC3095] and version + 2 [RFC5795]. This solution was created as a result of CRTP's lack + of performance when compressed packets are subject to loss. + + RFC 3545: Enhanced compressed RTP (E-CRTP) [RFC3545] was developed + to provide extensions to CRTP that allow for better performance + over links with long RTTs, packet loss, and/or reordering. + + RFC 4170: "Tunneling Multiplexed Compressed RTP (TCRTP)" [RFC4170] + is a solution that allows header compression within a tunnel + carrying multiple multiplexed RTP flows. This is primarily used + in voice trunking. + + There exist a couple of different security mechanisms that may be + used with RTP. By definition, generic mechanisms are transparent for + the RTP payload format and do not need special consideration by the + format designer. The main reason that different solutions exist is + that different applications have different requirements; thus, + different solutions have been developed. For more discussion on + this, please see "Options for Securing RTP Sessions" [RFC7201] and + "Securing the RTP Framework: Why RTP Does Not Mandate a Single Media + Security Solution" [RFC7202]. The main properties for an RTP + security mechanism are to provide confidentiality for the RTP + payload, integrity protection to detect manipulation of payload and + headers, and source authentication. Not all mechanisms provide all + of these features, a point that will need to be considered when a + specific mechanisms is chosen. + + The profile for Secure RTP - SRTP (RTP/SAVP) [RFC3711] and the + derived profile (RTP/SAVPF [RFC5124]) are a solution that enables + confidentiality, integrity protection, replay protection, and partial + source authentication. It is the solution most commonly used with + RTP at the time of writing this document. There exist several key- + management solutions for SRTP, as well other choices, affecting the + + + + +Westerlund Informational [Page 12] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + security properties. For a more in-depth review of the options and + solutions other than SRTP consult "Options for Securing RTP Sessions" + [RFC7201]. + +3.3. Important RTP Details + + This section reviews a number of RTP features and concepts that are + available in RTP, independent of the payload format. The RTP payload + format can make use of these when appropriate, and even affect the + behavior (RTP timestamp and marker bit), but it is important to note + that not all features and concepts are relevant to every payload + format. This section does not remove the necessity to read up on + RTP. However, it does point out a few important details to remember + when designing a payload format. + +3.3.1. The RTP Session + + The definition of the RTP session from RFC 3550 is: + + An association among a set of participants communicating with RTP. + A participant may be involved in multiple RTP sessions at the same + time. In a multimedia session, each medium is typically carried + in a separate RTP session with its own RTCP packets unless the + encoding itself multiplexes multiple media into a single data + stream. A participant distinguishes multiple RTP sessions by + reception of different sessions using different pairs of + destination transport addresses, where a pair of transport + addresses comprises one network address plus a pair of ports for + RTP and RTCP. All participants in an RTP session may share a + common destination transport address pair, as in the case of IP + multicast, or the pairs may be different for each participant, as + in the case of individual unicast network addresses and port + pairs. In the unicast case, a participant may receive from all + other participants in the session using the same pair of ports, or + may use a distinct pair of ports for each. + + The distinguishing feature of an RTP session is that each session + maintains a full, separate space of SSRC identifiers (defined + next). The set of participants included in one RTP session + consists of those that can receive an SSRC identifier transmitted + by any one of the participants either in RTP as the SSRC or a CSRC + (also defined below) or in RTCP. For example, consider a three- + party conference implemented using unicast UDP with each + participant receiving from the other two on separate port pairs. + If each participant sends RTCP feedback about data received from + one other participant only back to that participant, then the + conference is composed of three separate point-to-point RTP + sessions. If each participant provides RTCP feedback about its + + + +Westerlund Informational [Page 13] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + reception of one other participant to both of the other + participants, then the conference is composed of one multi-party + RTP session. The latter case simulates the behavior that would + occur with IP multicast communication among the three + participants. + + The RTP framework allows the variations defined here, but a + particular control protocol or application design will usually + impose constraints on these variations. + +3.3.2. RTP Header + + The RTP header contains a number of fields. Two fields always + require additional specification by the RTP payload format, namely + the RTP timestamp and the marker bit. Certain RTP payload formats + also use the RTP sequence number to realize certain functionalities, + primarily related to the order of their application data units. The + payload type is used to indicate the used payload format. The SSRC + is used to distinguish RTP packets from multiple senders and media + sources identifying the RTP stream. Finally, [RFC5285] specifies how + to transport payload format independent metadata relating to the RTP + packet or stream. + + Marker Bit: A single bit normally used to provide important + indications. In audio, it is normally used to indicate the start + of a talk burst. This enables jitter buffer adaptation prior to + the beginning of the burst with minimal audio quality impact. In + video, the marker bit is normally used to indicate the last packet + part of a frame. This enables a decoder to finish decoding the + picture, where it otherwise may need to wait for the next packet + to explicitly know that the frame is finished. + + Timestamp: The RTP timestamp indicates the time instance the media + sample belongs to. For discrete media like video, it normally + indicates when the media (frame) was sampled. For continuous + media, it normally indicates the first time instance the media + present in the payload represents. For audio, this is the + sampling time of the first sample. All RTP payload formats must + specify the meaning of the timestamp value and the clock rates + allowed. Selecting a timestamp rate is an active design choice + and is further discussed in Section 5.2. + + Discontinuous Transmission (DTX) that is common among speech + codecs, typically results in gaps or jumps in the timestamp values + due to that there is no media payload to transmit and the next + used timestamp value represent the actual sampling time of the + data transmitted. + + + + +Westerlund Informational [Page 14] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + Sequence Number: The sequence number is monotonically increasing and + is set as the packet is sent. This property is used in many + payload formats to recover the order of everything from the whole + stream down to fragments of application data units (ADUs) and the + order they need to be decoded. Discontinuous transmissions do not + result in gaps in the sequence number, as it is monotonically + increasing for each sent RTP packet. + + Payload Type: The payload type is used to indicate, on a per-packet + basis, which format is used. The binding between a payload type + number and a payload format and its configuration are dynamically + bound and RTP session specific. The configuration information can + be bound to a payload type value by out-of-band signaling + (Section 3.4). An example of this would be video decoder + configuration information. Commonly, the same payload type is + used for a media stream for the whole duration of a session. + However, in some cases it may be necessary to change the payload + format or its configuration during the session. + + SSRC: The synchronization source (SSRC) identifier is normally not + used by a payload format other than to identify the RTP timestamp + and sequence number space a packet belongs to, allowing + simultaneously reception of multiple media sources. However, some + of the RTP mechanisms for improving resilience to packet loss uses + multiple SSRCs to separate original data and repair or redundant + data, as well as multi-stream transmission of scalable codecs. + + Header Extensions: RTP payload formats often need to include + metadata relating to the payload data being transported. Such + metadata is sent as a payload header, at the start of the payload + section of the RTP packet. The RTP packet also includes space for + a header extension [RFC5285]; this can be used to transport + payload format independent metadata, for example, an SMPTE time + code for the packet [RFC5484]. The RTP header extensions are not + intended to carry headers that relate to a particular payload + format, and must not contain information needed in order to decode + the payload. + + The remaining fields do not commonly influence the RTP payload + format. The padding bit is worth clarifying as it indicates that one + or more bytes are appended after the RTP payload. This padding must + be removed by a receiver before payload format processing can occur. + Thus, it is completely separate from any padding that may occur + within the payload format itself. + + + + + + + +Westerlund Informational [Page 15] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +3.3.3. RTP Multiplexing + + RTP has three multiplexing points that are used for different + purposes. A proper understanding of this is important to correctly + use them. + + The first one is separation of RTP streams of different types or + usages, which is accomplished using different RTP sessions. So, for + example, in the common multimedia session with audio and video, RTP + commonly multiplexes audio and video in different RTP sessions. To + achieve this separation, transport-level functionalities are used, + normally UDP port numbers. Different RTP sessions can also be used + to realize layered scalability as it allows a receiver to select one + or more layers for multicast RTP sessions simply by joining the + multicast groups over which the desired layers are transported. This + separation also allows different Quality of Service (QoS) to be + applied to different media types. Use of multiple transport flows + has potential issues due to NAT and firewall traversal. The choices + how one applies RTP sessions as well as transport flows can affect + the transport properties an RTP media stream experiences. + + The next multiplexing point is separation of different RTP streams + within an RTP session. Here, RTP uses the SSRC to identify + individual sources of RTP streams. An example of individual media + sources would be the capture of different microphones that are + carried in an RTP session for audio, independently of whether they + are connected to the same host or different hosts. There also exist + cases where a single media source, is transmitted using multiple RTP + streams. For each SSRC, a unique RTP sequence number and timestamp + space is used. + + The third multiplexing point is the RTP header payload type field. + The payload type identifies what format the content in the RTP + payload has. This includes different payload format configurations, + different codecs, and also usage of robustness mechanisms like the + one described in RFC 2198 [RFC2198]. + +3.3.4. RTP Synchronization + + There are several types of synchronization, and we will here describe + how RTP handles the different types: + + Intra media: The synchronization within a media stream from a + synchronization source (SSRC) is accomplished using the RTP + timestamp field. Each RTP packet carries the RTP timestamp, which + specifies the position in time of the media payload contained in + this packet relative to the content of other RTP packets in the + same RTP stream (i.e., a given SSRC). This is especially useful + + + +Westerlund Informational [Page 16] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + in cases of discontinuous transmissions. Discontinuities can be + caused by network conditions; when extensive losses occur the RTP + timestamp tells the receiver how much later than previously + received media the present media should be played out. + + Inter-media: Applications commonly have a desire to use several + media sources, possibly of different media types, at the same + time. Thus, there exists a need to synchronize different media + from the same endpoint. This puts two requirements on RTP: the + possibility to determine which media are from the same endpoint + and if they should be synchronized with each other and the + functionality to facilitate the synchronization itself. + + The first step in inter-media synchronization is to determine which + SSRCs in each session should be synchronized with each other. This + is accomplished by comparing the CNAME fields in the RTCP source + description (SDES) packets. SSRCs with the same CNAME sent in any of + multiple RTP sessions can be synchronized. + + The actual RTCP mechanism for inter-media synchronization is based on + the idea that each RTP stream provides a position on the media + specific time line (measured in RTP timestamp ticks) and a common + reference time line. The common reference time line is expressed in + RTCP as a wall-clock time in the Network Time Protocol (NTP) format. + It is important to notice that the wall-clock time is not required to + be synchronized between hosts, for example, by using NTP [RFC5905]. + It can even have nothing at all to do with the actual time; for + example, the host system's up-time can be used for this purpose. The + important factor is that all media streams from a particular source + that are being synchronized use the same reference clock to derive + their relative RTP timestamp time scales. The type of reference + clock and its timebase can be signaled using RTP Clock Source + Signaling [RFC7273]. + + Figure 1 illustrates how if one receives RTCP Sender Report (SR) + packet P1 for one RTP stream and RTCP SR packet P2 for the other RTP + stream, then one can calculate the corresponding RTP timestamp values + for any arbitrary point in time T. However, to be able to do that, + it is also required to know the RTP timestamp rates for each RTP + stream currently used in the sessions. + + + + + + + + + + + +Westerlund Informational [Page 17] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + TS1 --+---------------+-------> + | | + P1 | + | | + NTP ---+-----+---------T------> + | | + P2 | + | | + TS2 ---------+---------+---X--> + + Figure 1: RTCP Synchronization + + Assume that medium 1 uses an RTP timestamp clock rate of 16 kHz, and + medium 2 uses a clock rate of 90 kHz. Then, TS1 and TS2 for point T + can be calculated in the following way: TS1(T) = TS1(P1) + 16000 * + (NTP(T)-NTP(P1)) and TS2(T) = TS2(P2) + 90000 * (NTP(T)-NTP(P2)). + This calculation is useful as it allows the implementation to + generate a common synchronization point for which all time values are + provided (TS1(T), TS2(T) and T). So, when one wishes to calculate + the NTP time that the timestamp value present in packet X corresponds + to, one can do that in the following way: NTP(X) = NTP(T) + (TS2(X) - + TS2(T))/90000. + + Improved signaling for layered codecs and fast tune-in have been + specified in "Rapid Synchronization for RTP Flows" [RFC6051]. + + Leap seconds are extra seconds added or seconds removed to keep our + clocks in sync with the earth's rotation. Adding or removing seconds + can impact the reference clock as discussed in "RTP and Leap Seconds" + [RFC7164]; also, in cases where the RTP timestamp values are derived + using the wall clock during the leap second event, errors can occur. + Implementations need to consider leap seconds and should consider the + recommendations in [RFC7164]. + +3.4. Signaling Aspects + + RTP payload formats are used in the context of application signaling + protocols such as SIP [RFC3261] using the Session Description + Protocol (SDP) [RFC4566] with Offer/Answer [RFC3264], RTSP [RFC7826], + or the Session Announcement Protocol [RFC2974]. These examples all + use out-of-band signaling to indicate which type of RTP streams are + desired to be used in the session and how they are configured. To be + able to declare or negotiate the media format and RTP payload + packetization, the payload format must be given an identifier. In + addition to the identifier, many payload formats also have the need + to signal further configuration information out-of-band for the RTP + payloads prior to the media transport session. + + + + +Westerlund Informational [Page 18] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + The above examples of session-establishing protocols all use SDP, but + other session description formats may be used. For example, there + was discussion of a new XML-based session description format within + the IETF (SDP-NG). In the end, the proposal did not get beyond draft + protocol specification because of the enormous installed base of SDP + implementations. However, to avoid locking the usage of RTP to SDP + based out-of-band signaling, the payload formats are identified using + a separate definition format for the identifier and associated + parameters. That format is the media type. + +3.4.1. Media Types + + Media types [RFC6838] are identifiers originally created for + identifying media formats included in email. In this usage, they + were known as MIME types, where the expansion of the MIME acronym + includes the word "mail". The term "media type" was introduced to + reflect a broader usage, which includes HTTP [RFC7231], Message + Session Relay Protocol (MSRP) [RFC4975], and many other protocols to + identify arbitrary content carried within the protocols. Media types + also provide a media hierarchy that fits RTP payload formats well. + Media type names are of two parts and consist of content type and + sub-type separated with a slash, e.g., 'audio/PCMA' or 'video/ + h263-2000'. It is important to choose the correct content-type when + creating the media type identifying an RTP payload format. However, + in most cases, there is little doubt what content type the format + belongs to. Guidelines for choosing the correct media type and + registration rules for media type names are provided in "Media Type + Specifications and Registration Procedures" [RFC6838]. The + additional rules for media types for RTP payload formats are provided + in "Media Type Registration of RTP Payload Formats" [RFC4855]. + + Registration of the RTP payload name is something that is required to + avoid name collision in the future. Note that "x-" names are not + suitable for any documented format as they have the same problem with + name collision and can't be registered. The list of already- + registered media types can be found at + <https://www.iana.org/assignments/media-types/media-types.xhtml>. + + Media types are allowed any number of parameters, which may be + required or optional for that media type. They are always specified + on the form "name=value". There exist no restrictions on how the + value is defined from the media type's perspective, except that + parameters must have a value. However, the usage of media types in + + + + + + + + +Westerlund Informational [Page 19] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + SDP, etc., has resulted in the following restrictions that need to be + followed to make media types usable for RTP-identifying payload + formats: + + 1. Arbitrary binary content in the parameters is allowed, but it + needs to be encoded so that it can be placed within text-based + protocols. Base64 [RFC4648] is recommended, but for shorter + content Base16 [RFC4648] may be more appropriate as it is simpler + to interpret for humans. This needs to be explicitly stated when + defining a media type parameter with binary values. + + 2. The end of the value needs to be easily found when parsing a + message. Thus, parameter values that are continuous and not + interrupted by common text separators, such as space and + semicolon characters, are recommended. If that is not possible, + some type of escaping should be used. Usage of quote (") is + recommended; do not forget to provide a method of encoding any + character used for quoting inside the quoted element. + + 3. A common representation form for the media type and its + parameters is on a single line. In that case, the media type is + followed by a semicolon-separated list of the parameter value + pairs, e.g.: + + audio/amr octet-align=0; mode-set=0,2,5,7; mode-change-period=2 + +3.4.2. Mapping to SDP + + Since SDP [RFC4566] is so commonly used as an out-of-band signaling + protocol, a mapping of the media type into SDP exists. The details + on how to map the media type and its parameters into SDP are + described in [RFC4855]. However, this is not sufficient to explain + how certain parameters must be interpreted, for example, in the + context of Offer/Answer negotiation [RFC3264]. + +3.4.2.1. The Offer/Answer Model + + The Offer/Answer (O/A) model allows SIP to negotiate which media + formats and payload formats are to be used in a session and how they + are to be configured. However, O/A does not define a default + behavior; instead, it points out the need to define how parameters + behave. To make things even more complex, the direction of media + within a session has an impact on these rules, so that some cases may + require separate descriptions for RTP streams that are send-only, + receive-only, or both sent and received as identified by the SDP + attributes a=sendonly, a=recvonly, and a=sendrecv. In addition, the + usage of multicast adds further limitations as the same RTP stream is + + + + +Westerlund Informational [Page 20] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + delivered to all participants. If those multicast-imposed + restrictions are too limiting for unicast, then separate rules for + unicast and multicast will be required. + + The simplest and most common O/A interpretation is that a parameter + is defined to be declarative; i.e., the SDP Offer/Answer sending + agent can declare a value and that has no direct impact on the other + agent's values. This declared value applies to all media that are + going to be sent to the declaring entity. For example, most video + codecs have a level parameter that tells the other participants the + highest complexity the video decoder supports. The level parameter + can be declared independently by two participants in a unicast + session as it will be the media sender's responsibility to transmit a + video stream that fulfills the limitation the other side has + declared. However, in multicast, it will be necessary to send a + stream that follows the limitation of the weakest receiver, i.e., the + one that supports the lowest level. To simplify the negotiation in + these cases, it is common to require any answerer to a multicast + session to take a yes or no approach to parameters. + + A "negotiated" parameter is a different case, for which both sides + need to agree on its value. Such a parameter requires the answerer + to either accept it as it is offered or remove the payload type the + parameter belonged to from its answer. The removal of the payload + type from the answer indicates to the offerer the lack of support for + the parameter values presented. An unfortunate implication of the + need to use complete payload types to indicate each possible + configuration so as to maximize the chances of achieving + interoperability, is that the number of necessary payload types can + quickly grow large. This is one reason to limit the total number of + sets of capabilities that may be implemented. + + The most problematic type of parameters are those that relate to the + media the entity sends. They do not really fit the O/A model, but + can be shoehorned in. Examples of such parameters can be found in + the H.264 video codec's payload format [RFC6184], where the name of + all parameters with this property starts with "sprop-". The issue + with these parameters is that they declare properties for a RTP + stream that the other party may not accept. The best one can make of + the situation is to explain the assumption that the other party will + accept the same parameter value for the media it will receive as the + offerer of the session has proposed. If the answerer needs to change + any declarative parameter relating to streams it will receive, then + the offerer may be required to make a new offer to update the + parameter values for its outgoing RTP stream. + + + + + + +Westerlund Informational [Page 21] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + Another issue to consider is the send-only RTP streams in offers. + Parameters that relate to what the answering entity accepts to + receive have no meaning other than to provide a template for the + answer. It is worth pointing out in the specification that these + really provide a set of parameter values that the sender recommends. + Note that send-only streams in answers will need to indicate the + offerer's parameters to ensure that the offerer can match the answer + to the offer. + + A further issue with Offer/Answer that complicates things is that the + answerer is allowed to renumber the payload types between offer and + answer. This is not recommended, but allowed for support of gateways + to the ITU conferencing suite. This means that it must be possible + to bind answers for payload types to the payload types in the offer + even when the payload type number has been changed, and some of the + proposed payload types have been removed. This binding must normally + be done by matching the configurations originally offered against + those in the answer. This may require specification in the payload + format of which parameters that constitute a configuration, for + example, as done in Section 8.2.2 of the H.264 RTP Payload format + [RFC6184], which states: "The parameters identifying a media format + configuration for H.264 are profile-level-id and packetization-mode". + +3.4.2.2. Declarative Usage in RTSP and SAP + + SAP (Session Announcement Protocol) [RFC2974] was experimentally used + for announcing multicast sessions. Similar but better protocols are + using SDP in a declarative style to configure multicast-based + applications. Independently of the usage of Source-Specific + Multicast (SSM) [RFC3569] or Any-Source Multicast (ASM), the SDP + provided by these configuration delivery protocols applies to all + participants. All media that is sent to the session must follow the + RTP stream definition as specified by the SDP. This enables everyone + to receive the session if they support the configuration. Here, SDP + provides a one-way channel with no possibility to affect the + configuration that the session creator has decided upon. Any RTP + payload format that requires parameters for the send direction and + that needs individual values per implementation or instance will fail + in a SAP session for a multicast session allowing anyone to send. + + Real-Time Streaming Protocol (RTSP) [RFC7826] allows the negotiation + of transport parameters for RTP streams that are part of a streaming + session between a server and client. RTSP has divided the transport + parameters from the media configuration. SDP is commonly used for + media configuration in RTSP and is sent to the client prior to + session establishment, either through use of the DESCRIBE method or + + + + + +Westerlund Informational [Page 22] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + by means of an out-of-band channel like HTTP, email, etc. The SDP is + used to determine which RTP streams and what formats are being used + prior to session establishment. + + Thus, both SAP and RTSP use SDP to configure receivers and senders + with a predetermined configuration for a RTP stream including the + payload format and any of its parameters. All parameters are used in + a declarative fashion. This can result in different treatment of + parameters between Offer/Answer and declarative usage in RTSP and + SAP. Any such difference will need to be spelled out by the payload + format specification. + +3.5. Transport Characteristics + + The general channel characteristics that RTP flows experience are + documented in Section 3 of "Guidelines for Writers of RTP Payload + Format Specifications" [RFC2736]. The discussion below provides + additional information. + +3.5.1. Path MTU + + At the time of writing, the most common IP Maximum Transmission Unit + (MTU) in commonly deployed link layers is 1500 bytes (Ethernet data + payload). However, there exist both links with smaller MTUs and + links with much larger MTUs. An example for links with small MTU + size is older generation cellular links. Certain parts of the + Internet already support an IP MTU of 8000 bytes or more, but these + are limited islands. The most likely places to find MTUs larger than + 1500 bytes are within enterprise networks, university networks, data + centers, storage networks, and over high capacity (10 Gbps or more) + links. There is a slow, ongoing evolution towards larger MTU sizes. + However, at the same time, it has become common to use tunneling + protocols, often multiple ones, whose overhead when added together + can shrink the MTU significantly. Thus, there exists a need both to + consider limited MTUs as well as enable support of larger MTUs. This + should be considered in the design, especially in regard to features + such as aggregation of independently decodable data units. + +3.5.2. Different Queuing Algorithms + + Routers and switches on the network path between an IP sender and a + particular receiver can exhibit different behaviors affecting the + end-to-end characteristics. One of the more important aspects of + this is queuing behavior. Routers and switches have some amount of + queuing to handle temporary bursts of data that designated to leave + the switch or router on the same egress link. A queue, when not + empty, results in an increased path delay. + + + + +Westerlund Informational [Page 23] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + The implementation of the queuing affects the delay and also how + congestion signals (Explicit Congestion Notification (ECN) [RFC6679] + or packet drops) are provided to the flow. The other aspects are if + the flow shares the queue with other flows and how the implementation + affects the flow interaction. This becomes important, for example, + when real-time flows interact with long-lived TCP flows. TCP has a + built-in behavior in its congestion control that strives to fill the + buffer; thus, all flows sharing the buffer experienced the delay + build up. + + A common, but quite poor, queue-handling mechanism is tail-drop, + i.e., only drop packets when the incoming packet doesn't fit in the + queue. If a bad queuing algorithm is combined with too much queue + space, the queuing time can grow to be very significant and can even + become multiple seconds. This is called "bufferbloat" [BLOAT]. + Active Queue Management (AQM) is a term covering mechanisms that try + to do something smarter by actively managing the queue, for example, + sending congestion signals earlier by dropping packets earlier in the + queue. The behavior also affects the flow interactions. For + example, Random Early Detection (RED) [RED] selects which packet(s) + to drop randomly. This gives flows that have more packets in the + queue a higher probability to experience the packet loss (congestion + signal). There is ongoing work in the IETF WG AQM to find suitable + mechanisms to recommend for implementation and reduce the use of + tail-drop. + +3.5.3. Quality of Service + + Using best-effort Internet has no guarantees for the path's + properties. QoS mechanisms are intended to provide the possibility + to bound the path properties. Where Diffserv [RFC2475] markings + affect the queuing and forwarding behaviors of routers, the mechanism + provides only statistical guarantees and care in how much marked + packets of different types that are entering the network. Flow-based + QoS, like IntServ [RFC1633], has the potential for stricter + guarantees as the properties are agreed on by each hop on the path, + at the cost of per-flow state in the network. + +4. Standardization Process for an RTP Payload Format + + This section discusses the recommended process to produce an RTP + payload format in the described venues. This is to document the best + current practice on how to get a well-designed and specified payload + format as quickly as possible. For specifications that are defined + by standards bodies other than the IETF, the primary milestone is the + registration of the media type for the RTP payload format. For + + + + + +Westerlund Informational [Page 24] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + proprietary media formats, the primary goal depends on whether + interoperability is desired at the RTP level. However, there is also + the issue of ensuring best possible quality of any specification. + +4.1. IETF + + For all standardized media formats, it is recommended that the + payload format be specified in the IETF. The main reason is to + provide an openly available RTP payload format specification that has + been reviewed by people experienced with RTP payload formats. At the + time of writing, this work is done in the PAYLOAD Working Group (WG), + but that may change in the future. + +4.1.1. Steps from Idea to Publication + + There are a number of steps that an RTP payload format should go + through from the initial idea until it is published. This also + documents the process that the PAYLOAD WG applies when working with + RTP payload formats. + + Idea: Determine the need for an RTP payload format as an IETF + specification. + + Initial effort: Using this document as a guideline, one should be + able to get started on the work. If one's media codec doesn't fit + any of the common design patterns or one has problems + understanding what the most suitable way forward is, then one + should contact the PAYLOAD WG and/or the WG Chairs. The goal of + this stage is to have an initial individual draft. This draft + needs to focus on the introductory parts that describe the real- + time media format and the basic idea on how to packetize it. Not + all the details are required to be filled in. However, the + security chapter is not something that one should skip, even + initially. From the start, it is important to consider any + serious security risks that need to be solved. The first step is + completed when one has a draft that is sufficiently detailed for a + first review by the WG. The less confident one is of the + solution, the less work should be spent on details; instead, + concentrate on the codec properties and what is required to make + the packetization work. + + Submission of the first version: When one has performed the above, + one submits the draft as an individual draft + (https://datatracker.ietf.org/submit/). This can be done at any + time, except for a period prior to an IETF meeting (see important + dates related to the next IETF meeting for draft submission cutoff + date). When the Internet-Draft announcement has been sent out on + + + + +Westerlund Informational [Page 25] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + the draft announcement list + (https://www.ietf.org/mailman/listinfo/I-D-Announce), forward it + to the PAYLOAD WG (https://www.ietf.org/mailman/listinfo/payload) + and request that it be reviewed. In the email, outline any issues + the authors currently have with the design. + + Iterative improvements: Taking the feedback received into account, + one updates the draft and tries resolve issues. New revisions of + the draft can be submitted at any time (again except for a short + period before meetings). It is recommended to submit a new + version whenever one has made major updates or has new issues that + are easiest to discuss in the context of a new draft version. + + Becoming a WG document: Given that the definition of RTP payload + formats is part of the PAYLOAD WG's charter, RTP payload formats + that are going to be published as Standards Track RFCs need to + become WG documents. Becoming a WG document means that the WG + Chairs or an appointed document shepherd are responsible for + administrative handling, for example, issuing publication + requests. However, be aware that making a document into a WG + document changes the formal ownership and responsibility from the + individual authors to the WG. The initial authors normally + continue being the document editors, unless unusual circumstances + occur. The PAYLOAD WG accepts new RTP payload formats based on + their suitability and document maturity. The document maturity is + a requirement to ensure that there are dedicated document editors + and that there exists a good solution. + + Iterative improvements: The updates and review cycles continue until + the draft has reached the level of maturity suitable for + publication. The authors are responsible for judging when the + document is ready for the next step, most likely WG Last Call, but + they can ask the WG chairs or Shepherd. + + WG Last Call: A WG Last Call of at least two weeks is always + performed for payload formats in the PAYLOAD WG (see Section 7.4 + of [RFC2418]). The authors request WG Last Call for a draft when + they think it is mature enough for publication. The WG Chairs or + shepherd perform a review to check if they agree with the authors' + assessment. If the WG Chairs or shepherd agree on the maturity, + the WG Last Call is announced on the WG mailing list. If there + are issues raised, these need to be addressed with an updated + draft version. For any more substantial changes to the draft, a + new WG Last Call is announced for the updated version. Minor + changes, like editorial fixes, can be progressed without an + additional WG Last Call. + + + + + +Westerlund Informational [Page 26] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + Publication requested: For WG documents, the WG Chairs or shepherd + request publication of the draft after it has passed WG Last Call. + After this, the approval and publication process described in BCP + 9 [BCP9] is performed. The status after the publication has been + requested can be tracked using the IETF Datatracker [TRACKER]. + Documents do not expire as they normally do after publication has + been requested, so authors do not have to issue keep-alive + updates. In addition, any submission of document updates requires + the approval of WG Chair(s). The authors are commonly asked to + address comments or issues raised by the IESG. The authors also + do one last review of the document immediately prior to its + publication as an RFC to ensure that no errors or formatting + problems have been introduced during the publication process. + +4.1.2. WG Meetings + + WG meetings are for discussing issues, not presentations. This means + that most RTP payload formats should never need to be discussed in a + WG meeting. RTP payload formats that would be discussed are either + those with controversial issues that failed to be resolved on the + mailing list or those including new design concepts worth a general + discussion. + + There exists no requirement to present or discuss a draft at a WG + meeting before it becomes published as an RFC. Thus, even authors + who lack the possibility to go to WG meetings should be able to + successfully specify an RTP payload format in the IETF. WG meetings + may become necessary only if the draft gets stuck in a serious debate + that cannot easily be resolved. + +4.1.3. Draft Naming + + To simplify the work of the PAYLOAD WG Chairs and WG members, a + specific Internet-Draft file-naming convention shall be used for RTP + payload formats. Individual submissions shall be named using the + template: draft-<lead author family name>-payload-rtp-<descriptive + name>-<version>. The WG documents shall be named according to this + template: draft-ietf-payload-rtp-<descriptive name>-<version>. The + inclusion of "payload" in the draft file name ensures that the search + for "payload-" will find all PAYLOAD-related drafts. Inclusion of + "rtp" tells us that it is an RTP payload format draft. The + descriptive name should be as short as possible while still + describing what the payload format is for. It is recommended to use + the media format or codec abbreviation. Please note that the version + must start at 00 and is increased by one for each submission to the + IETF secretary of the draft. No version numbers may be skipped. For + more details on draft naming, please see Section 7 of [ID-GUIDE]. + + + + +Westerlund Informational [Page 27] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +4.1.4. Writing Style + + When writing an Internet-Draft for an RTP payload format, one should + observe some few considerations (that may be somewhat divergent from + the style of other IETF documents and/or the media coding spec's + author group may use): + + Include Motivations: In the IETF, it is common to include the + motivation for why a particular design or technical path was + chosen. These are not long statements: a sentence here and there + explaining why suffice. + + Use the Defined Terminology: There exists defined terminology both + in RTP and in the media codec specification for which the RTP + payload format is designed. A payload format specification needs + to use both to make clear the relation of features and their + functions. It is unwise to introduce or, worse, use without + introduction, terminology that appears to be more accessible to + average readers but may miss certain nuances that the defined + terms imply. An RTP payload format author can assume the reader + to be reasonably familiar with the terminology in the media coding + specification. + + Keeping It Simple: The IETF has a history of specifications that are + focused on their main usage. Historically, some RTP payload + formats have a lot of modes and features, while the actual + deployments have only included the most basic features that had + very clear requirements. Time and effort can be saved by focusing + on only the most important use cases and keeping the solution + simple. An extension mechanism should be provided to enable + backward-compatible extensions, if that is an organic fit. + + Normative Requirements: When writing specifications, there is + commonly a need to make it clear when something is normative and + at what level. In the IETF, the most common method is to use "Key + words for use in RFCs to Indicate Requirement Levels" [RFC2119], + which defines the meaning of "MUST", "MUST NOT", "REQUIRED", + "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT + RECOMMENDED", "MAY", and "OPTIONAL". + + + + + + + + + + + + +Westerlund Informational [Page 28] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +4.1.5. How to Speed Up the Process + + There a number of ways to lose a lot of time in the above process. + This section discusses what to do and what to avoid. + + o Do not update the draft only for the meeting deadline. An update + to each meeting automatically limits the draft to three updates + per year. Instead, ignore the meeting schedule and publish new + versions as soon as possible. + + o Try to avoid requesting reviews when people are busy, like the few + weeks before a meeting. It is actually more likely that people + have time for them directly after a meeting. + + o Perform draft updates quickly. A common mistake is that the + authors let the draft slip. By performing updates to the draft + text directly after getting resolution on an issue, things speed + up. This minimizes the delay that the author has direct control + over. The time taken for reviews, responses from Area Directors + and WG Chairs, etc., can be much harder to speed up. + + o Do not fail to take human nature into account. It happens that + people forget or need to be reminded about tasks. Send a kind + reminder to the people you are waiting for if things take longer + than expected. Ask people to estimate when they expect to fulfill + the requested task. + + o Ensure there is enough review. It is common that documents take a + long time and many iterations because not enough review is + performed in each iteration. To improve the amount of review you + get on your own document, trade review time with other document + authors. Make a deal with some other document author that you + will review their draft if they review yours. Even inexperienced + reviewers can help with language, editorial, or clarity issues. + Also, try approaching the more experienced people in the WG and + getting them to commit to a review. The WG Chairs cannot, even if + desirable, be expected to review all versions. Due to workload, + the Chairs may need to concentrate on key points in a draft + evolution like checking on initial submissions, a draft's + readiness to become a WG document, or its readiness for WG Last + Call. + +4.2. Other Standards Bodies + + Other standards bodies may define RTP payloads in their own + specifications. When they do this, they are strongly recommended to + contact the PAYLOAD WG Chairs and request review of the work. It is + recommended that at least two review steps are performed. The first + + + +Westerlund Informational [Page 29] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + should be early in the process when more fundamental issues can be + easily resolved without abandoning a lot of effort. Then, when + nearing completion, but while it is still possible to update the + specification, a second review should be scheduled. In that pass, + the quality can be assessed; hopefully, no updates will be needed. + Using this procedure can avoid both conflicting definitions and + serious mistakes, like breaking certain aspects of the RTP model. + + RTP payload media types may be registered in the standards tree by + other standards bodies. The requirements on the organization are + outlined in the media types registration documents [RFC4855] and + [RFC6838]). This registration requires a request to the IESG, which + ensures that the filled-in registration template is acceptable. To + avoid last-minute problems with these registrations the registration + template must be sent for review both to the PAYLOAD WG and the media + types list (ietf-types@iana.org) and is something that should be + included in the IETF reviews of the payload format specification. + +4.3. Proprietary and Vendor Specific + + Proprietary RTP payload formats are commonly specified when the real- + time media format is proprietary and not intended to be part of any + standardized system. However, there are reasons why also proprietary + formats should be correctly documented and registered: + + o Usage in a standardized signaling environment, such as SIP/SDP. + RTP needs to be configured with the RTP profiles, payload formats, + and their payload types being used. To accomplish this, it is + desirable to have registered media type names to ensure that the + names do not collide with those of other formats. + + o Sharing with business partners. As RTP payload formats are used + for communication, situations often arise where business partners + would like to support a proprietary format. Having a well-written + specification of the format will save time and money for both + parties, as interoperability will be much easier to accomplish. + + o To ensure interoperability between different implementations on + different platforms. + + To avoid name collisions, there is a central registry keeping track + of the registered media type names used by different RTP payload + formats. When it comes to proprietary formats, they should be + registered in the vendor's own tree. All vendor-specific + registrations use sub-type names that start with "vnd.<vendor-name>". + Names in the vendor's own tree are not required to be registered with + IANA. However, registration [RFC6838] is recommended if the media + type is used at all in public environments. + + + +Westerlund Informational [Page 30] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + If interoperability at the RTP level is desired, a payload type + specification should be standardized in the IETF following the + process described above. The IETF does not require full disclosure + of the codec when defining an RTP payload format to carry that codec, + but a description must be provided that is sufficient to allow the + IETF to judge whether the payload format is well designed. The media + type identifier assigned to a standardized payload format of this + sort will lie in the standards tree rather than the vendor tree. + +4.4. Joint Development of Media Coding Specification and RTP Payload + Format + + In the last decade, there have been a few cases where the media codec + and the associated RTP payload format have been developed + concurrently and jointly. Developing the two specs not only + concurrently but also jointly, in close cooperation with the group + developing the media codec, allows one to leverage the benefits joint + source/channel coding can provide. Doing so has historically + resulted in well-performing payload formats and in success of both + the media coding specification and associated RTP payload format. + Insofar, whenever the opportunity presents it, it may be useful to + closely keep the media coding group in the loop (through appropriate + liaison means whatever those may be) and influence the media coding + specification to be RTP friendly. One example for such a media + coding specification is H.264, where the RTP payload header co-serves + as the H.264 NAL unit header and vice versa, and is documented in + both specifications. + +5. Designing Payload Formats + + The best summary of payload format design is KISS (Keep It Simple, + Stupid). A simple payload format is easier to review for + correctness, easier to implement, and has low complexity. + Unfortunately, contradictory requirements sometimes make it hard to + do things simply. Complexity issues and problems that occur for RTP + payload formats are: + + Too many configurations: Contradictory requirements lead to the + result that one configuration is created for each conceivable + case. Such contradictory requirements are often between + functionality and bandwidth. This outcome has two big + disadvantages; First all configurations need to be implemented. + Second, the user application must select the most suitable + configuration. Selecting the best configuration can be very + difficult and, in negotiating applications, this can create + interoperability problems. The recommendation is to try to select + + + + + +Westerlund Informational [Page 31] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + a very limited set of configurations (preferably one) that perform + well for the most common cases and are capable of handling the + other cases, but maybe not that well. + + Hard to implement: Certain payload formats may become difficult to + implement both correctly and efficiently. This needs to be + considered in the design. + + Interaction with general mechanisms: Special solutions may create + issues with deployed tools for RTP, such as tools for more robust + transport of RTP. For example, a requirement for an unbroken + sequence number space creates issues for mechanisms relying on + payload type switching interleaving media-independent resilience + within a stream. + +5.1. Features of RTP Payload Formats + + There are a number of common features in RTP payload formats. There + is no general requirement to support these features; instead, their + applicability must be considered for each payload format. In fact, + it may be that certain features are not even applicable. + +5.1.1. Aggregation + + Aggregation allows for the inclusion of multiple Application Data + Units (ADUs) within the same RTP payload. This is commonly supported + for codecs that produce ADUs of sizes smaller than the IP MTU. One + reason for the use of aggregation is the reduction of header overhead + (IP/UDP/RTP headers). When setting into relation the ADU size and + the MTU size, do remember that the MTU may be significantly larger + than 1500 bytes. An MTU of 9000 bytes is available today and an MTU + of 64k may be available in the future. Many speech codecs have the + property of ADUs of a few fixed sizes. Video encoders may generally + produce ADUs of quite flexible sizes. Thus, the need for aggregation + may be less. But some codecs produce small ADUs mixed with large + ones, for example, H.264 Supplemental Enhancement Information (SEI) + messages. Sending individual SEI message in separate packets are not + efficient compared to combing the with other ADUs. Also, some small + ADUs are, within the media domain, semantically coupled to the larger + ADUs (for example, in-band parameter sets in H.264 [RFC6184]). In + such cases, aggregation is sensible, even if not required from a + payload/header overhead viewpoint. There also exist cases when the + ADUs are pre-produced and can't be adopted to a specific networks + MTU. Instead, their packetization needs to be adopted to the + network. All above factors should be taken into account when + deciding on the inclusion of aggregation, and weighting its benefits + + + + + +Westerlund Informational [Page 32] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + against the complexity of defining them (which can be significant + especially when aggregation is performed over ADUs with different + playback times). + + The main disadvantage of aggregation, beyond implementation + complexity, is the extra delay introduced (due to buffering until a + sufficient number of ADUs have been collected at the sender) and + reduced robustness against packet loss. Aggregation also introduces + buffering requirements at the receiver. + +5.1.2. Fragmentation + + If the real-time media format has the property that it may produce + ADUs that are larger than common MTU sizes, then fragmentation + support should be considered. An RTP payload format may always fall + back on IP fragmentation; however, as discussed in RFC 2736, this has + some drawbacks. Perhaps the most important reason to avoid IP + fragmentation is that IP fragmented packets commonly are discarded in + the network, especially by NATs or firewalls. The usage of + fragmentation at the RTP payload format level allows for more + efficient usage of RTP packet loss recovery mechanisms. It may also + in some cases also allow better usage of partial ADUs by doing media + specific fragmentation at media-specific boundaries. In use cases + where the ADUs are pre-produced and can't be adopted to the network's + MTU size, support for fragmentation can be crucial. + +5.1.3. Interleaving and Transmission Rescheduling + + Interleaving has been implemented in a number of payload formats to + allow for less quality reduction when packet loss occurs. When + losses are bursty and several consecutive packets are lost, the + impact on quality can be quite severe. Interleaving is used to + convert that burst loss to several spread-out individual packet + losses. It can also be used when several ADUs are aggregated in the + same packets. A loss of an RTP packet with several ADUs in the + payload has the same effect as a burst loss if the ADUs would have + been transmitted in individual packets. To reduce the burstiness of + the loss, the data present in an aggregated payload may be + interleaved, thus, spreading the loss over a longer time period. + + A requirement for doing interleaving within an RTP payload format is + the aggregation of multiple ADUs. For formats that do not use + aggregation, there is still a possibility of implementing a + transmission order rescheduling mechanism. That has the effect that + the packets transmitted consecutively originate from different points + in the RTP stream. This can be used to mitigate burst losses, which + may be useful if one transmits packets at frequent intervals. + However, it may also be used to transmit more significant data + + + +Westerlund Informational [Page 33] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + earlier in combination with RTP retransmission to allow for more + graceful degradation and increased possibility to receive the most + important data, e.g., intra frames of video. + + The drawback of interleaving is the significantly increased + transmission buffering delay, making it less useful for low-delay + applications. It may also create significant buffering requirements + on the receiver. That buffering is also problematic, as it is + usually difficult to indicate when a receiver may start consume data + and still avoid buffer under run caused by the interleaving mechanism + itself. Transmission rescheduling is only useful in a few specific + cases, as in streaming with retransmissions. The potential gains + must be weighed against the complexity of these schemes. + +5.1.4. Media Back Channels + + A few RTP payload formats have implemented back channels within the + media format. Those have been for specific features, like the AMR + [RFC4867] codec mode request (CMR) field. The CMR field is used in + the operation of gateways to circuit-switched voice to allow an IP + terminal to react to the circuit-switched network's need for a + specific encoder mode. A common motivation for media back channels + is the need to have signaling in direct relation to the media or the + media path. + + If back channels are considered for an RTP payload format they should + be for a specific requirements which cannot be easily satisfied by + more generic mechanisms within RTP or RTCP. + +5.1.5. Media Scalability + + Some codecs support various types of media scalability, i.e. some + data of a RTP stream may be removed to adapt the media's properties, + such as bitrate and quality. The adaptation may be applied in the + following dimensions of the media: + + Temporal: For most video codecs it is possible to adapt the frame + rate without any specific definition of a temporal scalability + mode, e.g., for H.264 [RFC6184]. In these cases, the sender + changes which frames it delivers and the RTP timestamp makes it + clear the frame interval and each frames relative capture time. + H.264 Scalable Video Coding (SVC) [RFC6190] has more explicit + support for temporal scalability. + + Spatial: Video codecs supporting scalability may adapt the + resolution, e.g., in SVC [RFC6190]. + + + + + +Westerlund Informational [Page 34] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + Quality: The quality of the encoded stream may be scaled by adapting + the accuracy of the coding process, as, e.g. possible with Signal + to Noise Ratio (SNR) fidelity scalability of SVC [RFC6190]. + + At the time of writing this document, codecs that support scalability + have a bit of a revival. It has been realized that getting the + required functionality for supporting the features of the media + stream into the RTP framework is quite challenging. One of the + recent examples for layered and scalable codecs is SVC [RFC6190]. + + SVC is a good example for a payload format supporting media + scalability features, which have been in its basic form already + included in RTP. A layered codec supports the dropping of data parts + of a RTP stream, i.e., RTP packets may not be transmitted or + forwarded to a client in order to adapt the RTP streams bitrate as + well as the received encoded stream's quality, while still providing + a decodable subset of the encoded stream to a client. One example + for using the scalability feature may be an RTP Mixer (Multipoint + Control Unit) [RFC7667], which controls the rate and quality sent out + to participants in a communication based on dropping RTP packets or + removing part of the payload. Another example may be a transport + channel, which allows for differentiation in Quality of Service (QoS) + parameters based on RTP sessions in a multicast session. In such a + case, the more important packets of the scalable encoded stream (base + layer) may get better QoS parameters than the less important packets + (enhancement layer) in order to provide some kind of graceful + degradation. The scalability features required for allowing an + adaptive transport, as described in the two examples above, are based + on RTP multiplexing in order to identify the packets to be dropped or + transmitted/forwarded. The multiplexing features defined for + Scalable Video Coding [RFC6190] are: + + Single Session Transmission (SST), where all media layers of the + media are transported as a single synchronization source (SSRC) in + a single RTP session; as well as + + Multi-Session Transmission (MST), which should more accurately be + called multi-stream transmission, where different media layers or + a set of media layers are transported in different RTP streams, + i.e., using multiple sources (SSRCs). + + In the first case (SST), additional in-band as well as out-of-band + signaling is required in order to allow identification of packets + belonging to a specific media layer. Furthermore, an adaptation of + the encoded stream requires dropping of specific packets in order to + provide the client with a compliant encoded stream. In case of using + encryption, it is typically required for an adapting network device + + + + +Westerlund Informational [Page 35] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + to be in the security context to allow packet dropping and providing + an intact RTP session to the client. This typically requires the + network device to be an RTP mixer. + + In general, having a media-unaware network device dropping excessive + packets will be more problematic than having a Media-Aware Network + Entity (MANE). First is the need to understand the media format and + know which ADUs or payloads belong to the layers, that no other layer + will be dependent on after the dropping. Second, if the MANE can + work as an RTP mixer or translator, it can rewrite the RTP and RTCP + in such a way that the receiver will not suspect unintentional RTP + packet losses needing repair actions. This as the receiver can't + determine if a lost packet was an important base layer packet or one + of the less important extension layers. + + In the second case (MST), the RTP packet streams can be sent using a + single or multiple RTP session, and thus transport flows, e.g., on + different multicast groups. Transmitting the streams in different + RTP sessions, then the out-of-band signaling typically provides + enough information to identify the media layers and its properties. + The decision on dropping packets is based on the Network Address that + identifies the RTP session to be dropped. In order to allow correct + data provisioning to a decoder after reception from different + sessions, data realignment mechanisms are required. In some cases, + existing generic tools, as described below, can be employed to enable + such realignment; when those generic mechanisms are sufficient, they + should be used. For example, "Rapid Synchronisation for RTP Flows" + [RFC6051], uses existing RTP mechanisms, i.e. the NTP timestamp, to + ensure timely inter-session synchronization. Another is the + signaling feature for indicating dependencies of RTP sessions in SDP, + as defined in the Media Decoding Dependency Grouping in SDP + [RFC5583]. + + Using MST within a single RTP session is also possible and allows + stream level handling instead of looking deeper into the packets by a + MANE. However, transport flow-level properties will be the same + unless packet based mechanisms like Diffserv is used. + + When QoS settings, e.g., Diffserv markings, are used to ensure that + the extension layers are dropped prior the base layer the receiving + endpoint has the benefit in MST to know which layer or set of layers + the missing packets belong to as it will be bound to different RTP + sessions or RTP packet streams (SSRCs), thus, explicitly indicating + the importance of the loss. + + + + + + + +Westerlund Informational [Page 36] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +5.1.6. High Packet Rates + + Some media codecs require high packet rates; in these cases, the RTP + sequence number wraps too quickly. As a rule of thumb, it must not + be possible to wrap the sequence number space within at least three + RTCP reporting intervals. As the reporting interval can vary widely + due to configuration and session properties, and also must take into + account the randomization of the interval, one can use the TCP + maximum segment lifetime (MSL), i.e., 2 minutes, in ones + consideration. If earlier wrapping may occur, then the payload + format should specify an extended sequence number field to allow the + receiver to determine where a specific payload belongs in the + sequence, even in the face of extensive reordering. The RTP payload + format for uncompressed video [RFC4175] can be used as an example for + such a field. + + RTCP is also affected by high packet rates. For RTCP mechanisms that + do not use extended counters, there is significant risk that they + wrap multiple times between RTCP reporting or feedback; thus, + producing uncertainty about which packet(s) are referenced. The + payload designer can't effect the RTCP packet formats used and their + design, but can note this considerations when configuring RTCP + bandwidth and reporting intervals to avoid to wrapping issues. + +5.2. Selecting Timestamp Definition + + The RTP timestamp is an important part and has two design choices + associated with it. The first is the definition that determines what + the timestamp value in a particular RTP packet will be, the second is + which timestamp rate should be used. + + The timestamp definition needs to explicitly define what the + timestamp value in the RTP packet represent for a particular payload + format. Two common definitions are used; for discretely sampled + media, like video frames, the sampling time of the earliest included + video frame which the data represent (fully or partially) is used; + for continuous media like audio, the sampling time of the earliest + sample which the payload data represent. There exist cases where + more elaborate or other definitions are used. + + RTP payload formats with a timestamp definition that results in no or + little correlation between the media time instance and its + transmission time cause the RTCP jitter calculation to become + unusable due to the errors introduced on the sender side. A common + example is a payload format for a video codec where the RTP timestamp + represents the capture time of the video frame, but frames are large + + + + + +Westerlund Informational [Page 37] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + enough that multiple RTP packets need to be sent for each frame + spread across the framing interval. It should be noted whether or + not the payload format has this property. + + An RTP payload format also needs to define what timestamp rates, or + clock rates (as it is also called), may be used. Depending on the + RTP payload format, this may be a single rate or multiple ones or + theoretically any rate. So what needs to be considered when + selecting a rate? + + The rate needs be selected so that one can determine where in the + time line of the media a particular sample (e.g., individual audio + sample, or video frame) or set of samples (e.g., audio frames) + belong. To enable correct synchronization of this data with previous + frames, including over periods of discontinuous transmission or + irregularities. + + For audio, it is common to require audio sample accuracy. Thus, one + commonly selects the input sampling rate as the timestamp rate. This + can, however, be challenging for audio codecs that support multiple + different sampling frequencies, either as codec input or being used + internally but effecting output, for example, frame duration. + Depending on how one expects to use these different sampling rates + one can allow multiple timestamp rates, each matching a particular + codec input or sampling rate. However, due to the issues with using + multiple different RTP timestamp rates for the same source (SSRC) + [RFC7160], this should be avoided if one expects to need to switch + between modes. + + Then, an alternative is to find a common denominator frequency + between the different modes, e.g., OPUS [RFC7587] that uses 48 kHz. + If the different modes uses or can use a common input/output + frequency, then selecting this also needs to be considered. However, + it is important to consider all aspects as the case of AMR-WB+ + [RFC4352] illustrates. AMR-WB+'s RTP timestamp rate has the very + unusual value of 72 kHz, despite the fact that output normally is at + a sample rate of 48kHz. The design is motivated by the media codec's + production of a large range of different frame lengths in time + perspective. The 72 kHz timestamp rate is the smallest found value + that would make all of the frames the codec could produce result in + an integer frame length in RTP timestamp ticks. This way, a receiver + can always correctly place the frames in relation to any other frame, + even when the frame length changes. The downside is that the decoder + outputs for certain frame lengths are, in fact, partial samples. The + result is that the output in samples from the codec will vary from + frame to frame, potentially making implementation more difficult. + + + + + +Westerlund Informational [Page 38] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + Video codecs have commonly been using 90 kHz; the reason is this is a + common denominator between the usually used frame rates such as 24, + 25, 30, 50 and 60, and NTSC's odd 29.97 Hz. There does, however, + exist at least one exception in the payload format for SMPTE 292M + video [RFC3497] that uses a clock rate of 148.5 MHz. The reason here + is that the timestamp then identify the exact start sample within a + video frame. + + Timestamp rates below 1000 Hz are not appropriate, because this will + cause a resolution too low in the RTCP measurements that are + expressed in RTP timestamps. This is the main reason that the text + RTP payload formats, like T.140 [RFC4103], use 1000 Hz. + +6. Noteworthy Aspects in Payload Format Design + + This section provides a few examples of payload formats that are + worth noting for good or bad design in general or in specific + details. + +6.1. Audio Payloads + + The AMR [RFC4867], AMR-WB [RFC4867], EVRC [RFC3558], SMV [RFC3558] + payload formats are all quite similar. They are all for frame-based + audio codecs and use a table of contents structure. Each frame has a + table of contents entry that indicates the type of the frame and if + additional frames are present. This is quite flexible, but produces + unnecessary overhead if the ADU is of fixed size and if, when + aggregating multiple ADUs, they are commonly of the same type. In + that case, a solution like the one in AMR-WB+ [RFC4352] may be more + suitable. + + The RTP payload format for MIDI [RFC6295] contains some interesting + features. MIDI is an audio format sensitive to packet losses, as the + loss of a "note off" command will result in a note being stuck in an + "on" state. To counter this, a recovery journal is defined that + provides a summarized state that allows the receiver to recover from + packet losses quickly. It also uses RTCP and the reported highest + sequence number to be able to prune the state the recovery journal + needs to contain. These features appear limited in applicability to + media formats that are highly stateful and primarily use symbolic + media representations. + + There exists a security concern with variable bitrate audio and + speech codecs that changes their payload length based on the input + data. This can leak information, especially in structured + communication like a speech recognition prompt service that asks + people to enter information verbally. This issue also exists to some + degree for discontinuous transmission as that allows the length of + + + +Westerlund Informational [Page 39] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + phrases to be determined. The issue is further discussed in + "Guidelines for the Use of Variable Bit Rate Audio with Secure RTP" + [RFC6562], which needs to be read by anyone writing an RTP payload + format for an audio or speech codec with these properties. + +6.2. Video + + The definition of RTP payload formats for video has seen an evolution + from the early ones such as H.261 [RFC4587] towards the latest for + VP8 [RFC7741] and H.265/HEVC [RFC7798]. + + The H.264 RTP payload format [RFC3984] can be seen as a smorgasbord + of functionality: some of it, such as the interleaving, being pretty + advanced. The reason for this was to ensure that the majority of + applications considered by the ITU-T and MPEG that can be supported + by RTP are indeed supported. This has created a payload format that + rarely is fully implemented. Despite that, no major issues with + interoperability has been reported with one exception namely the + Offer/Answer and parameter signaling, which resulted in a revised + specification [RFC6184]. However, complaints about its complexity + are common. + + The RTP payload format for uncompressed video [RFC4175] must be + mentioned in this context as it contains a special feature not + commonly seen in RTP payload formats. Due to the high bitrate and + thus packet rate of uncompressed video (gigabits rather than megabits + per second) the payload format includes a field to extend the RTP + sequence number since the normal 16-bit one can wrap in less than a + second. [RFC4175] also specifies a registry of different color sub- + samplings that can be reused in other video RTP payload formats. + + Both the H.264 and the uncompressed video format enable the + implementer to fulfill the goals of application-level framing, i.e., + each individual RTP Packet's payload can be independently decoded and + its content used to create a video frame (or part of) and that + irrespective of whether preceding packets has been lost (see + Section 4) [RFC2736]. For uncompressed, this is straightforward as + each pixel is independently represented from others and its location + in the video frame known. H.264 is more dependent on the actual + implementation, configuration of the video encoder and usage of the + RTP payload format. + + The common challenge with video is that, in most cases, a single + compressed video frame doesn't fit into a single IP packet. Thus, + the compressed representation of a video frame needs to be split over + multiple packets. This can be done unintelligently with a basic + payload level fragmentation method or more integrated by interfacing + with the encoder's possibilities to create ADUs that are independent + + + +Westerlund Informational [Page 40] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + and fit the MTU for the RTP packet. The latter is more robust and + commonly recommended unless strong packet loss mechanisms are used + and sufficient delay budget for the repair exist. Commonly, both + payload-level fragmentation as well as explaining how tailored ADUs + can be created are needed in a video payload format. Also, the + handling of crucial metadata, like H.264 Parameter Sets, needs to be + considered as decoding is not possible without receiving the used + parameter sets. + +6.3. Text + + Only a single format text format has been standardized in the IETF, + namely T.140 [RFC4103]. The 3GPP Timed Text format [RFC4396] should + be considered to be text, even though in the end was registered as a + video format. It was registered in that part of the tree because it + deals with decorated text, usable for subtitles and other + embellishments of video. However, it has many of the properties that + text formats generally have. + + The RTP payload format for T.140 was designed with high reliability + in mind as real-time text commonly is an extremely low bitrate + application. Thus, it recommends the use of RFC 2198 with many + generations of redundancy. However, the format failed to provide a + text-block-specific sequence number and instead relies on the RTP one + to detect loss. This makes detection of missing text blocks + unnecessarily difficult and hinders deployment with other robustness + mechanisms that would involve switching the payload type, as that may + result in erroneous error marking in the T.140 text stream. + +6.4. Application + + At the time of writing, the application content type contains two + media types that aren't RTP transport robustness tools such as FEC + [RFC3009] [RFC5109] [RFC6015] [RFC6682] and RTP retransmission + [RFC4588]. + + The first one is H.224 [RFC4573], which enables far-end camera + control over RTP. This is not an IETF-defined RTP format, only an + IETF-performed registration. + + The second one is "RTP Payload Format for Society of Motion Picture + and Television Engineers (SMPTE) ST 336 Encoded Data" [RFC6597], + which carries generic key length value (KLV) triplets. These pairs + may contain arbitrary binary metadata associated with video + transmissions. It has a very basic fragmentation mechanism requiring + reception without packet loss, not only of the triplet itself but + also one packet before and after the sequence of fragmented KLV + triplet, to ensure correct reception. Specific KLV triplets + + + +Westerlund Informational [Page 41] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + themselves may have recommendations on how to handle incomplete ones + allowing the use and repair of them. In general, the application + using such a mechanism must be robust to errors and also use some + combination of application-level repetition, RTP-level transport + robustness tools, and network-level requirements to achieve low + levels of packet loss rates and repair of KLV triplets. + + An author should consider applying for a media subtype under the + application media type (application/<foo>) when the payload format is + of a generic nature or does not clearly match any of the media types + described above (audio, video, or text). However, existing + limitations in, for example, SDP, have resulted in generic mechanisms + normally registered in all media types possibly having been + associated with any existing media types in an RTP session. + +7. Important Specification Sections + + A number of sections in the payload format draft need special + consideration. These include the Security Considerations and IANA + Considerations sections that are required in all drafts. Payload + formats are also strongly recommended to have the media format + description and congestion control considerations. The included RTP + payload format template (Appendix A) contains sample text for some of + these sections. + +7.1. Media Format Description + + The intention of this section is to enable reviewers and other + readers to get an overview of the capabilities and major properties + of the media format. It should be kept short and concise and is not + a complete replacement for reading the media format specification. + + The actual specification of the RTP payload format generally uses + normative references to the codec format specification to define how + codec data elements are included in the payload format. This + normative reference can be to anything that have sufficient stability + for a normative reference. There exist no formal requirement on the + codec format specification being publicly available or free to + access. However, it significantly helps in the review process if + that specification is made available to any reviewer. There exist + RTP payload format RFCs for open-source project specifications as + well as an individual company's proprietary format, and a large + variety of standards development organizations or industrial forums. + + + + + + + + +Westerlund Informational [Page 42] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +7.2. Security Considerations + + All Internet-Drafts require a Security Considerations section. The + Security Considerations section in an RTP payload format needs to + concentrate on the security properties this particular format has. + Some payload formats have very few specific issues or properties and + can fully fall back on the security considerations for RTP in general + and those of the profile being used. Because those documents are + always applicable, a reference to these is normally placed first in + the Security Considerations section. There is suggested text in the + template below. + + The security issues of confidentiality, integrity protection, replay + protection and source authentication are common issue for all payload + formats. These should be solved by mechanisms external to the + payload and do not need any special consideration in the payload + format except for a reminder on these issues. There exist + exceptions, such as payload formats that includes security + functionality, like ISMAcrypt [ISMACrypt2]. Reasons for this + division is further documented in "Securing the RTP Protocol + Framework: Why RTP Does Not Mandate a Single Media Security Solution" + [RFC7202]. For a survey of available mechanisms to meet these goals, + review "Options for Securing RTP Sessions" [RFC7201]. This also + includes key-exchange mechanisms for the security mechanisms, which + can be both integrated or separate. The choice of key-management can + have significant impact on the security properties of the RTP-based + application. Suitable stock text to inform people about this is + included in the template. + + Potential security issues with an RTP payload format and the media + encoding that need to be considered if they are applicable: + + 1. The decoding of the payload format or its media results in + substantial non-uniformity, either in output or in complexity to + perform the decoding operation. For example, a generic non- + destructive compression algorithm may provide an output of almost + an infinite size for a very limited input, thus consuming memory + or storage space out of proportion with what the receiving + application expected. Such inputs can cause some sort of + disruption, i.e., a denial-of-service attack on the receiver side + by preventing that host from performing usable work. Certain + decoding operations may also vary in the amount of processing + needed to perform those operations depending on the input. This + may also be a security risk if it is possible to raise processing + load significantly above nominal simply by designing a malicious + input sequence. If such potential attacks exist, this must be + + + + + +Westerlund Informational [Page 43] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + made clear in the Security Considerations section to make + implementers aware of the need to take precautions against such + behavior. + + 2. The inclusion of active content in the media format or its + transport. "Active content" means scripts, etc., that allow an + attacker to perform potentially arbitrary operations on the + receiver. Most active contents has limited possibility to access + the system or perform operations outside a protected sandbox. + RFC 4855 [RFC4855] has a requirement that it be noted in the + media types registration whether or not the payload format + contains active content. If the payload format has active + content, it is strongly recommended that references to any + security model applicable for such content are provided. A + boilerplate text for "no active content" is included in the + template. This must be changed if the format actually carries + active content. + + 3. Some media formats allow for the carrying of "user data", or + types of data which are not known at the time of the + specification of the payload format. Such data may be a security + risk and should be mentioned. + + 4. Audio or Speech codecs supporting variable bitrate based on + 'audio/speech' input or having discontinuous transmission support + must consider the issues discussed in "Guidelines for the Use of + Variable Bit Rate Audio with Secure RTP" [RFC6562]. + + Suitable stock text for the Security Considerations section is + provided in the template in Appendix A. However, authors do need to + actively consider any security issues from the start. Failure to + address these issues may block approval and publication. + +7.3. Congestion Control + + RTP and its profiles do discuss congestion control. There is ongoing + work in the IETF with both a basic circuit-breaker mechanism + [RFC8083] using basic RTCP messages intended to prevent persistent + congestion and also work on more capable congestion avoidance / + bitrate adaptation mechanism in the RMCAT WG. + + Congestion control is an important issue in any usage in networks + that are not dedicated. For that reason, it is recommended that all + RTP payload format documents discuss the possibilities that exist to + regulate the bitrate of the transmissions using the described RTP + payload format. Some formats may have limited or step-wise + regulation of bitrate. Such limiting factors should be discussed. + + + + +Westerlund Informational [Page 44] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +7.4. IANA Considerations + + Since all RTP payload formats contain a media type specification, + they also need an IANA Considerations section. The media type name + must be registered, and this is done by requesting that IANA register + that media name. When that registration request is written, it shall + also be requested that the media type is included under the "RTP + Payload Format media types" subregistry of the RTP registry + (http://www.iana.org/assignments/rtp-parameters). + + Parameters for the payload format need to be included in this + registration and can be specified as required or optional ones. The + format of these parameters should be such that they can be included + in the SDP attribute "a=fmtp" string (see Section 6 [RFC4566]), which + is the common mapping. Some parameters, such as "Channel" are + normally mapped to the rtpmap attribute instead; see Section 3 of + [RFC4855]. + + In addition to the above request for media type registration, some + payload formats may have parameters where, in the future, new + parameter values need to be added. In these cases, a registry for + that parameter must be created. This is done by defining the + registry in the IANA Considerations section. BCP 26 [BCP26] provides + guidelines to specifying such registries. Care should be taken when + defining the policy for new registrations. + + Before specifying a new registry, it is worth checking the existing + ones in the IANA "MIME Media Type Sub-Parameter Registries". For + example, video formats that need a media parameter expressing color + sub-sampling may be able to reuse those defined for 'video/raw' + [RFC4175]. + +8. Authoring Tools + + This section provides information about some tools that may be used. + Don't feel pressured to follow these recommendations. There exist a + number of alternatives, including the ones listed at + <http://tools.ietf.org>. But these suggestions are worth checking + out before deciding that the grass is greener somewhere else. + + Note that these options are related to the old text only RFC format, + and do not cover tools for at the time of publication recently + approved new RFC format, see [RFC7990]. + + + + + + + + +Westerlund Informational [Page 45] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +8.1. Editing Tools + + There are many choices when it comes to tools to choose for authoring + Internet-Drafts. However, in the end, they need to be able to + produce a draft that conforms to the Internet-Draft requirements. If + you don't have any previous experience with authoring Internet- + Drafts, xml2rfc does have some advantages. It helps by creating a + lot of the necessary boilerplate in accordance with the latest rules, + thus reducing the effort. It also speeds up publication after + approval as the RFC Editor can use the source XML document to produce + the RFC more quickly. + + Another common choice is to use Microsoft Word and a suitable + template (see [RFC5385]) to produce the draft and print that to file + using the generic text printer. It has some advantages when it comes + to spell checking and change bars. However, Word may also produce + some problems, like changing formatting, and inconsistent results + between what one sees in the editor and in the generated text + document, at least according to the author's personal experience. + +8.2. Verification Tools + + There are a few tools that are very good to know about when writing a + draft. These help check and verify parts of one's work. These tools + can be found at <http://tools.ietf.org>. + + o I-D Nits checker (https://tools.ietf.org/tools/idnits/). It + checks that the boilerplate and some other things that are easily + verifiable by machine are okay in your draft. Always use it + before submitting a draft to avoid direct refusal in the + submission step. + + o ABNF Parser and verification (https://tools.ietf.org/tools/bap/ + abnf.cgi). Checks that your ABNF parses correctly and warns about + loose ends, like undefined symbols. However, the actual content + can only be verified by humans knowing what it intends to + describe. + + o RFC diff (https://tools.ietf.org/rfcdiff). A diff tool that is + optimized for drafts and RFCs. For example, it does not point out + that the footer and header have moved in relation to the text on + every page. + + + + + + + + + +Westerlund Informational [Page 46] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +9. Security Considerations + + As this is an Informational RFC about writing drafts that are + intended to become RFCs, there are no direct security considerations. + However, the document does discuss the writing of Security + Considerations sections and what should be particularly considered + when specifying RTP payload formats. + +10. Informative References + + + [BCP9] Bradner, S., "The Internet Standards Process -- Revision + 3", BCP 9, RFC 2026, October 1996. + + Kolkman, O., Bradner, S., and S. Turner, "Characterization + of Proposed Standards", BCP 9, RFC 7127, January 2014. + + Dusseault, L. and R. Sparks, "Guidance on Interoperation + and Implementation Reports for Advancement to Draft + Standard", BCP 9, RFC 5657, September 2009. + + Housley, R., Crocker, D., and E. Burger, "Reducing the + Standards Track to Two Maturity Levels", BCP 9, RFC 6410, + October 2011. + + Resnick, P., "Retirement of the "Internet Official + Protocol Standards" Summary Document", BCP 9, RFC 7100, + December 2013. + + Dawkins, S., "Increasing the Number of Area Directors in + an IETF Area", BCP 9, RFC 7475, March 2015. + + <http://www.rfc-editor.org/info/bcp9> + + [BCP25] Wasserman, M., "Updates to RFC 2418 Regarding the + Management of IETF Mailing Lists", BCP 25, RFC 3934, + October 2004. + + Bradner, S., "IETF Working Group Guidelines and + Procedures", BCP 25, RFC 2418, September 1998. + + Resnick, P. and A. Farrel, "IETF Anti-Harassment + Procedures", BCP 25, RFC 7776, March 2016. + + <http://www.rfc-editor.org/info/bcp25> + + + + + + +Westerlund Informational [Page 47] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [BCP26] Narten, T. and H. Alvestrand, "Guidelines for Writing an + IANA Considerations Section in RFCs", BCP 26, RFC 5226, + May 2008, <http://www.rfc-editor.org/info/bcp26>. + + [BCP78] Bradner, S., Ed. and J. Contreras, Ed., "Rights + Contributors Provide to the IETF Trust", BCP 78, RFC 5378, + November 2008, <http://www.rfc-editor.org/info/bcp78>. + + [BCP79] Bradner, S., Ed., "Intellectual Property Rights in IETF + Technology", BCP 79, RFC 3979, March 2005. + + Narten, T., "Clarification of the Third Party Disclosure + Procedure in RFC 3979", BCP 79, RFC 4879, April 2007. + + <http://www.rfc-editor.org/info/bcp79> + + [BLOAT] Nichols, K. and V. Jacobson, "Controlling Queue Delay", + ACM Networks, Vol. 10, No. 5, DOI 10.1145/2208917.2209336, + May 2012, <http://queue.acm.org/detail.cfm?id=2209336>. + + [CSP-RTP] Perkins, C., "RTP: Audio and Video for the Internet", + Addison-Wesley Professional, ISBN 0-672-32249-8, June + 2003. + + [ID-GUIDE] Housley, R., "Guidelines to Authors of Internet-Drafts", + December 2010, + <http://www.ietf.org/id-info/guidelines.html>. + + [ISMACrypt2] + Internet Streaming Media Alliance (ISMA), "ISMA Encryption + and Authentication, Version 2.0 release version", November + 2007, <http://www.oipf.tv/docs/mpegif/isma_easpec2.0.pdf>. + + [RED] Floyd, S. and V. Jacobson, "Random Early Detection (RED) + gateways for Congestion Avoidance", IEEE/ACM Transactions + on Networking 1(4) 397--413, August 1993, + <http://www.aciri.org/floyd/papers/early.pdf>. + + [RFC1633] Braden, R., Clark, D., and S. Shenker, "Integrated + Services in the Internet Architecture: an Overview", + RFC 1633, DOI 10.17487/RFC1633, June 1994, + <http://www.rfc-editor.org/info/rfc1633>. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <http://www.rfc-editor.org/info/rfc2119>. + + + + +Westerlund Informational [Page 48] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., + Handley, M., Bolot, J., Vega-Garcia, A., and S. Fosse- + Parisis, "RTP Payload for Redundant Audio Data", RFC 2198, + DOI 10.17487/RFC2198, September 1997, + <http://www.rfc-editor.org/info/rfc2198>. + + [RFC2360] Scott, G., "Guide for Internet Standards Writers", BCP 22, + RFC 2360, DOI 10.17487/RFC2360, June 1998, + <http://www.rfc-editor.org/info/rfc2360>. + + [RFC2418] Bradner, S., "IETF Working Group Guidelines and + Procedures", BCP 25, RFC 2418, DOI 10.17487/RFC2418, + September 1998, <http://www.rfc-editor.org/info/rfc2418>. + + [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., + and W. Weiss, "An Architecture for Differentiated + Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, + <http://www.rfc-editor.org/info/rfc2475>. + + [RFC2508] Casner, S. and V. Jacobson, "Compressing IP/UDP/RTP + Headers for Low-Speed Serial Links", RFC 2508, + DOI 10.17487/RFC2508, February 1999, + <http://www.rfc-editor.org/info/rfc2508>. + + [RFC2733] Rosenberg, J. and H. Schulzrinne, "An RTP Payload Format + for Generic Forward Error Correction", RFC 2733, + DOI 10.17487/RFC2733, December 1999, + <http://www.rfc-editor.org/info/rfc2733>. + + [RFC2736] Handley, M. and C. Perkins, "Guidelines for Writers of RTP + Payload Format Specifications", BCP 36, RFC 2736, + DOI 10.17487/RFC2736, December 1999, + <http://www.rfc-editor.org/info/rfc2736>. + + [RFC2959] Baugher, M., Strahm, B., and I. Suconick, "Real-Time + Transport Protocol Management Information Base", RFC 2959, + DOI 10.17487/RFC2959, October 2000, + <http://www.rfc-editor.org/info/rfc2959>. + + [RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session + Announcement Protocol", RFC 2974, DOI 10.17487/RFC2974, + October 2000, <http://www.rfc-editor.org/info/rfc2974>. + + [RFC3009] Rosenberg, J. and H. Schulzrinne, "Registration of + parityfec MIME types", RFC 3009, DOI 10.17487/RFC3009, + November 2000, <http://www.rfc-editor.org/info/rfc3009>. + + + + + +Westerlund Informational [Page 49] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC3095] Bormann, C., Burmeister, C., Degermark, M., Fukushima, H., + Hannu, H., Jonsson, L-E., Hakenberg, R., Koren, T., Le, + K., Liu, Z., Martensson, A., Miyazaki, A., Svanbro, K., + Wiebke, T., Yoshimura, T., and H. Zheng, "RObust Header + Compression (ROHC): Framework and four profiles: RTP, UDP, + ESP, and uncompressed", RFC 3095, DOI 10.17487/RFC3095, + July 2001, <http://www.rfc-editor.org/info/rfc3095>. + + [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, + A., Peterson, J., Sparks, R., Handley, M., and E. + Schooler, "SIP: Session Initiation Protocol", RFC 3261, + DOI 10.17487/RFC3261, June 2002, + <http://www.rfc-editor.org/info/rfc3261>. + + [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model + with Session Description Protocol (SDP)", RFC 3264, + DOI 10.17487/RFC3264, June 2002, + <http://www.rfc-editor.org/info/rfc3264>. + + [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, + "Introduction and Applicability Statements for Internet- + Standard Management Framework", RFC 3410, + DOI 10.17487/RFC3410, December 2002, + <http://www.rfc-editor.org/info/rfc3410>. + + [RFC3497] Gharai, L., Perkins, C., Goncher, G., and A. Mankin, "RTP + Payload Format for Society of Motion Picture and + Television Engineers (SMPTE) 292M Video", RFC 3497, + DOI 10.17487/RFC3497, March 2003, + <http://www.rfc-editor.org/info/rfc3497>. + + [RFC3545] Koren, T., Casner, S., Geevarghese, J., Thompson, B., and + P. Ruddy, "Enhanced Compressed RTP (CRTP) for Links with + High Delay, Packet Loss and Reordering", RFC 3545, + DOI 10.17487/RFC3545, July 2003, + <http://www.rfc-editor.org/info/rfc3545>. + + [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. + Jacobson, "RTP: A Transport Protocol for Real-Time + Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, + July 2003, <http://www.rfc-editor.org/info/rfc3550>. + + [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and + Video Conferences with Minimal Control", STD 65, RFC 3551, + DOI 10.17487/RFC3551, July 2003, + <http://www.rfc-editor.org/info/rfc3551>. + + + + + +Westerlund Informational [Page 50] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC3558] Li, A., "RTP Payload Format for Enhanced Variable Rate + Codecs (EVRC) and Selectable Mode Vocoders (SMV)", + RFC 3558, DOI 10.17487/RFC3558, July 2003, + <http://www.rfc-editor.org/info/rfc3558>. + + [RFC3569] Bhattacharyya, S., Ed., "An Overview of Source-Specific + Multicast (SSM)", RFC 3569, DOI 10.17487/RFC3569, July + 2003, <http://www.rfc-editor.org/info/rfc3569>. + + [RFC3577] Waldbusser, S., Cole, R., Kalbfleisch, C., and D. + Romascanu, "Introduction to the Remote Monitoring (RMON) + Family of MIB Modules", RFC 3577, DOI 10.17487/RFC3577, + August 2003, <http://www.rfc-editor.org/info/rfc3577>. + + [RFC3611] Friedman, T., Ed., Caceres, R., Ed., and A. Clark, Ed., + "RTP Control Protocol Extended Reports (RTCP XR)", + RFC 3611, DOI 10.17487/RFC3611, November 2003, + <http://www.rfc-editor.org/info/rfc3611>. + + [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. + Norrman, "The Secure Real-time Transport Protocol (SRTP)", + RFC 3711, DOI 10.17487/RFC3711, March 2004, + <http://www.rfc-editor.org/info/rfc3711>. + + [RFC3828] Larzon, L-A., Degermark, M., Pink, S., Jonsson, L-E., Ed., + and G. Fairhurst, Ed., "The Lightweight User Datagram + Protocol (UDP-Lite)", RFC 3828, DOI 10.17487/RFC3828, July + 2004, <http://www.rfc-editor.org/info/rfc3828>. + + [RFC3984] Wenger, S., Hannuksela, M., Stockhammer, T., Westerlund, + M., and D. Singer, "RTP Payload Format for H.264 Video", + RFC 3984, DOI 10.17487/RFC3984, February 2005, + <http://www.rfc-editor.org/info/rfc3984>. + + [RFC4103] Hellstrom, G. and P. Jones, "RTP Payload for Text + Conversation", RFC 4103, DOI 10.17487/RFC4103, June 2005, + <http://www.rfc-editor.org/info/rfc4103>. + + [RFC4170] Thompson, B., Koren, T., and D. Wing, "Tunneling + Multiplexed Compressed RTP (TCRTP)", BCP 110, RFC 4170, + DOI 10.17487/RFC4170, November 2005, + <http://www.rfc-editor.org/info/rfc4170>. + + [RFC4175] Gharai, L. and C. Perkins, "RTP Payload Format for + Uncompressed Video", RFC 4175, DOI 10.17487/RFC4175, + September 2005, <http://www.rfc-editor.org/info/rfc4175>. + + + + + +Westerlund Informational [Page 51] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC4352] Sjoberg, J., Westerlund, M., Lakaniemi, A., and S. Wenger, + "RTP Payload Format for the Extended Adaptive Multi-Rate + Wideband (AMR-WB+) Audio Codec", RFC 4352, + DOI 10.17487/RFC4352, January 2006, + <http://www.rfc-editor.org/info/rfc4352>. + + [RFC4396] Rey, J. and Y. Matsui, "RTP Payload Format for 3rd + Generation Partnership Project (3GPP) Timed Text", + RFC 4396, DOI 10.17487/RFC4396, February 2006, + <http://www.rfc-editor.org/info/rfc4396>. + + [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session + Description Protocol", RFC 4566, DOI 10.17487/RFC4566, + July 2006, <http://www.rfc-editor.org/info/rfc4566>. + + [RFC4571] Lazzaro, J., "Framing Real-time Transport Protocol (RTP) + and RTP Control Protocol (RTCP) Packets over Connection- + Oriented Transport", RFC 4571, DOI 10.17487/RFC4571, July + 2006, <http://www.rfc-editor.org/info/rfc4571>. + + [RFC4573] Even, R. and A. Lochbaum, "MIME Type Registration for RTP + Payload Format for H.224", RFC 4573, DOI 10.17487/RFC4573, + July 2006, <http://www.rfc-editor.org/info/rfc4573>. + + [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, + "Extended RTP Profile for Real-time Transport Control + Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, + DOI 10.17487/RFC4585, July 2006, + <http://www.rfc-editor.org/info/rfc4585>. + + [RFC4587] Even, R., "RTP Payload Format for H.261 Video Streams", + RFC 4587, DOI 10.17487/RFC4587, August 2006, + <http://www.rfc-editor.org/info/rfc4587>. + + [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. + Hakenberg, "RTP Retransmission Payload Format", RFC 4588, + DOI 10.17487/RFC4588, July 2006, + <http://www.rfc-editor.org/info/rfc4588>. + + [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data + Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, + <http://www.rfc-editor.org/info/rfc4648>. + + [RFC4844] Daigle, L., Ed. and Internet Architecture Board, "The RFC + Series and RFC Editor", RFC 4844, DOI 10.17487/RFC4844, + July 2007, <http://www.rfc-editor.org/info/rfc4844>. + + + + + +Westerlund Informational [Page 52] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC4855] Casner, S., "Media Type Registration of RTP Payload + Formats", RFC 4855, DOI 10.17487/RFC4855, February 2007, + <http://www.rfc-editor.org/info/rfc4855>. + + [RFC4867] Sjoberg, J., Westerlund, M., Lakaniemi, A., and Q. Xie, + "RTP Payload Format and File Storage Format for the + Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband + (AMR-WB) Audio Codecs", RFC 4867, DOI 10.17487/RFC4867, + April 2007, <http://www.rfc-editor.org/info/rfc4867>. + + [RFC4975] Campbell, B., Ed., Mahy, R., Ed., and C. Jennings, Ed., + "The Message Session Relay Protocol (MSRP)", RFC 4975, + DOI 10.17487/RFC4975, September 2007, + <http://www.rfc-editor.org/info/rfc4975>. + + [RFC5109] Li, A., Ed., "RTP Payload Format for Generic Forward Error + Correction", RFC 5109, DOI 10.17487/RFC5109, December + 2007, <http://www.rfc-editor.org/info/rfc5109>. + + [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for + Real-time Transport Control Protocol (RTCP)-Based Feedback + (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February + 2008, <http://www.rfc-editor.org/info/rfc5124>. + + [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, + DOI 10.17487/RFC5234, January 2008, + <http://www.rfc-editor.org/info/rfc5234>. + + [RFC5285] Singer, D. and H. Desineni, "A General Mechanism for RTP + Header Extensions", RFC 5285, DOI 10.17487/RFC5285, July + 2008, <http://www.rfc-editor.org/info/rfc5285>. + + [RFC5385] Touch, J., "Version 2.0 Microsoft Word Template for + Creating Internet Drafts and RFCs", RFC 5385, + DOI 10.17487/RFC5385, February 2010, + <http://www.rfc-editor.org/info/rfc5385>. + + [RFC5484] Singer, D., "Associating Time-Codes with RTP Streams", + RFC 5484, DOI 10.17487/RFC5484, March 2009, + <http://www.rfc-editor.org/info/rfc5484>. + + [RFC5583] Schierl, T. and S. Wenger, "Signaling Media Decoding + Dependency in the Session Description Protocol (SDP)", + RFC 5583, DOI 10.17487/RFC5583, July 2009, + <http://www.rfc-editor.org/info/rfc5583>. + + + + + +Westerlund Informational [Page 53] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC5795] Sandlund, K., Pelletier, G., and L-E. Jonsson, "The RObust + Header Compression (ROHC) Framework", RFC 5795, + DOI 10.17487/RFC5795, March 2010, + <http://www.rfc-editor.org/info/rfc5795>. + + [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, + "Network Time Protocol Version 4: Protocol and Algorithms + Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, + <http://www.rfc-editor.org/info/rfc5905>. + + [RFC6015] Begen, A., "RTP Payload Format for 1-D Interleaved Parity + Forward Error Correction (FEC)", RFC 6015, + DOI 10.17487/RFC6015, October 2010, + <http://www.rfc-editor.org/info/rfc6015>. + + [RFC6051] Perkins, C. and T. Schierl, "Rapid Synchronisation of RTP + Flows", RFC 6051, DOI 10.17487/RFC6051, November 2010, + <http://www.rfc-editor.org/info/rfc6051>. + + [RFC6184] Wang, Y., Even, R., Kristensen, T., and R. Jesup, "RTP + Payload Format for H.264 Video", RFC 6184, + DOI 10.17487/RFC6184, May 2011, + <http://www.rfc-editor.org/info/rfc6184>. + + [RFC6190] Wenger, S., Wang, Y., Schierl, T., and A. Eleftheriadis, + "RTP Payload Format for Scalable Video Coding", RFC 6190, + DOI 10.17487/RFC6190, May 2011, + <http://www.rfc-editor.org/info/rfc6190>. + + [RFC6295] Lazzaro, J. and J. Wawrzynek, "RTP Payload Format for + MIDI", RFC 6295, DOI 10.17487/RFC6295, June 2011, + <http://www.rfc-editor.org/info/rfc6295>. + + [RFC6354] Xie, Q., "Forward-Shifted RTP Redundancy Payload Support", + RFC 6354, DOI 10.17487/RFC6354, August 2011, + <http://www.rfc-editor.org/info/rfc6354>. + + [RFC6363] Watson, M., Begen, A., and V. Roca, "Forward Error + Correction (FEC) Framework", RFC 6363, + DOI 10.17487/RFC6363, October 2011, + <http://www.rfc-editor.org/info/rfc6363>. + + [RFC6410] Housley, R., Crocker, D., and E. Burger, "Reducing the + Standards Track to Two Maturity Levels", BCP 9, RFC 6410, + DOI 10.17487/RFC6410, October 2011, + <http://www.rfc-editor.org/info/rfc6410>. + + + + + +Westerlund Informational [Page 54] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC6562] Perkins, C. and JM. Valin, "Guidelines for the Use of + Variable Bit Rate Audio with Secure RTP", RFC 6562, + DOI 10.17487/RFC6562, March 2012, + <http://www.rfc-editor.org/info/rfc6562>. + + [RFC6597] Downs, J., Ed. and J. Arbeiter, Ed., "RTP Payload Format + for Society of Motion Picture and Television Engineers + (SMPTE) ST 336 Encoded Data", RFC 6597, + DOI 10.17487/RFC6597, April 2012, + <http://www.rfc-editor.org/info/rfc6597>. + + [RFC6679] Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P., + and K. Carlberg, "Explicit Congestion Notification (ECN) + for RTP over UDP", RFC 6679, DOI 10.17487/RFC6679, August + 2012, <http://www.rfc-editor.org/info/rfc6679>. + + [RFC6682] Watson, M., Stockhammer, T., and M. Luby, "RTP Payload + Format for Raptor Forward Error Correction (FEC)", + RFC 6682, DOI 10.17487/RFC6682, August 2012, + <http://www.rfc-editor.org/info/rfc6682>. + + [RFC6701] Farrel, A. and P. Resnick, "Sanctions Available for + Application to Violators of IETF IPR Policy", RFC 6701, + DOI 10.17487/RFC6701, August 2012, + <http://www.rfc-editor.org/info/rfc6701>. + + [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type + Specifications and Registration Procedures", BCP 13, + RFC 6838, DOI 10.17487/RFC6838, January 2013, + <http://www.rfc-editor.org/info/rfc6838>. + + [RFC7160] Petit-Huguenin, M. and G. Zorn, Ed., "Support for Multiple + Clock Rates in an RTP Session", RFC 7160, + DOI 10.17487/RFC7160, April 2014, + <http://www.rfc-editor.org/info/rfc7160>. + + [RFC7164] Gross, K. and R. Brandenburg, "RTP and Leap Seconds", + RFC 7164, DOI 10.17487/RFC7164, March 2014, + <http://www.rfc-editor.org/info/rfc7164>. + + [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP + Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014, + <http://www.rfc-editor.org/info/rfc7201>. + + [RFC7202] Perkins, C. and M. Westerlund, "Securing the RTP + Framework: Why RTP Does Not Mandate a Single Media + Security Solution", RFC 7202, DOI 10.17487/RFC7202, April + 2014, <http://www.rfc-editor.org/info/rfc7202>. + + + +Westerlund Informational [Page 55] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer + Protocol (HTTP/1.1): Semantics and Content", RFC 7231, + DOI 10.17487/RFC7231, June 2014, + <http://www.rfc-editor.org/info/rfc7231>. + + [RFC7273] Williams, A., Gross, K., van Brandenburg, R., and H. + Stokking, "RTP Clock Source Signalling", RFC 7273, + DOI 10.17487/RFC7273, June 2014, + <http://www.rfc-editor.org/info/rfc7273>. + + [RFC7322] Flanagan, H. and S. Ginoza, "RFC Style Guide", RFC 7322, + DOI 10.17487/RFC7322, September 2014, + <http://www.rfc-editor.org/info/rfc7322>. + + [RFC7587] Spittka, J., Vos, K., and JM. Valin, "RTP Payload Format + for the Opus Speech and Audio Codec", RFC 7587, + DOI 10.17487/RFC7587, June 2015, + <http://www.rfc-editor.org/info/rfc7587>. + + [RFC7656] Lennox, J., Gross, K., Nandakumar, S., Salgueiro, G., and + B. Burman, Ed., "A Taxonomy of Semantics and Mechanisms + for Real-Time Transport Protocol (RTP) Sources", RFC 7656, + DOI 10.17487/RFC7656, November 2015, + <http://www.rfc-editor.org/info/rfc7656>. + + [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, + DOI 10.17487/RFC7667, November 2015, + <http://www.rfc-editor.org/info/rfc7667>. + + [RFC7741] Westin, P., Lundin, H., Glover, M., Uberti, J., and F. + Galligan, "RTP Payload Format for VP8 Video", RFC 7741, + DOI 10.17487/RFC7741, March 2016, + <http://www.rfc-editor.org/info/rfc7741>. + + [RFC7798] Wang, Y., Sanchez, Y., Schierl, T., Wenger, S., and M. + Hannuksela, "RTP Payload Format for High Efficiency Video + Coding (HEVC)", RFC 7798, DOI 10.17487/RFC7798, March + 2016, <http://www.rfc-editor.org/info/rfc7798>. + + [RFC7826] Schulzrinne, H., Rao, A., Lanphier, R., Westerlund, M., + and M. Stiemerling, Ed., "Real-Time Streaming Protocol + Version 2.0", RFC 7826, DOI 10.17487/RFC7826, December + 2016, <http://www.rfc-editor.org/info/rfc7826>. + + [RFC7990] Flanagan, H., "RFC Format Framework", RFC 7990, + DOI 10.17487/RFC7990, December 2016, + <http://www.rfc-editor.org/info/rfc7990>. + + + + +Westerlund Informational [Page 56] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + [RFC8083] Perkins, C. and V. Singh, "Multimedia Congestion Control: + Circuit Breakers for Unicast RTP Sessions", RFC 8083, + DOI 10.17487/RFC8083, March 2017, + <http://www.rfc-editor.org/info/rfc8083>. + + [TAO] Hoffman, P., Ed., "The Tao of IETF: A Novice's Guide to + the Internet Engineering Task Force", November 2012, + <http://www.ietf.org/tao.html>. + + [TRACKER] "IETF Datatracker", <https://datatracker.ietf.org/>. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Westerlund Informational [Page 57] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +Appendix A. RTP Payload Format Template + + This section contains a template for writing an RTP payload format in + the form of an Internet-Draft. Text within [...] are instructions + and must be removed from the draft itself. Some text proposals that + are included are conditional. "..." is used to indicate where further + text should be written. + +A.1. Title + + [The title shall be descriptive but as compact as possible. RTP is + allowed and recommended abbreviation in the title] + + RTP payload format for ... + +A.2. Front-Page Boilerplate + + Status of this Memo + + [Insert the IPR notice and copyright boilerplate from BCP 78 and 79 + that applies to this draft.] + + [Insert the current Internet-Draft document explanation. At the time + of publishing it was:] + + Internet-Drafts are working documents of the Internet Engineering + Task Force (IETF). Note that other groups may also distribute + working documents as Internet-Drafts. The list of current Internet- + Drafts is at http://datatracker.ietf.org/drafts/current/. + + Internet-Drafts are draft documents valid for a maximum of six months + and may be updated, replaced, or obsoleted by other documents at any + time. It is inappropriate to use Internet-Drafts as reference + material or to cite them other than as "work in progress." + +A.3. Abstract + + [A payload format abstract should mention the capabilities of the + format, for which media format is used, and a little about that codec + formats capabilities. Any abbreviation used in the payload format + must be spelled out here except the very well known like RTP. No + citations are allowed, and no use of language from RFC 2119 either.] + +A.4. Table of Contents + + [If your draft is approved for publication as an RFC, a Table of + Contents is required, per [RFC7322].] + + + + +Westerlund Informational [Page 58] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +A.5. Introduction + + [The Introduction should provide a background and overview of the + payload format's capabilities. No normative language in this + section, i.e., no MUST, SHOULDs etc.] + +A.6. Conventions, Definitions, and Abbreviations + + [Define conventions, definitions, and abbreviations used in the + document in this section. The most common definition used in RTP + payload formats are the RFC 2119 definitions of the uppercase + normative words, e.g., MUST and SHOULD.] + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119. + +A.7. Media Format Description + + [The intention of this section is to enable reviewers and persons to + get an overview of the capabilities and major properties of the media + format. It should be kept short and concise and is not a complete + replacement for reading the media format specification.] + +A.8. Payload Format + + [Overview of payload structure] + +A.8.1. RTP Header Usage + + [RTP header usage needs to be defined. The fields that absolutely + need to be defined are timestamp and marker bit. Further fields may + be specified if used. All the rest should be left to their RTP + specification definition.] + + The remaining RTP header fields are used as specified in RTP + [RFC3550]. + +A.8.2. Payload Header + + [Define how the payload header, if it exists, is structured and + used.] + + + + + + + + + +Westerlund Informational [Page 59] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +A.8.3. Payload Data + + [The payload data, i.e., what the media codec has produced. Commonly + done through reference to the media codec specification, which + defines how the data is structured. Rules for padding may need to be + defined to bring data to octet alignment.] + +A.9. Payload Examples + + [One or more examples are good to help ease the understanding of the + RTP payload format.] + +A.10. Congestion Control Considerations + + [This section is to describe the possibility to vary the bitrate as a + response to congestion. Below is also a proposal for an initial text + that reference RTP and profiles definition of congestion control.] + + Congestion control for RTP SHALL be used in accordance with RFC 3550 + [RFC3550], and with any applicable RTP profile: e.g., RFC 3551 + [RFC3551]. An additional requirement if best-effort service is being + used is users of this payload format MUST monitor packet loss to + ensure that the packet loss rate is within acceptable parameters. + Circuit Breakers [RFC8083] is an update to RTP [RFC3550] that defines + criteria for when one is required to stop sending RTP Packet Streams. + The circuit breakers is to be implemented and followed. + +A.11. Payload Format Parameters + + This RTP payload format is identified using the ... media type, which + is registered in accordance with RFC 4855 [RFC4855] and using the + template of RFC 6838 [RFC6838]. + +A.11.1. Media Type Definition + + [Here the media type registration template from RFC 6838 is placed + and filled out. This template is provided with some common RTP + boilerplate.] + + Type name: + + Subtype name: + + Required parameters: + + Optional parameters: + + + + + +Westerlund Informational [Page 60] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + Encoding considerations: + + This media type is framed and binary; see Section 4.8 in RFC 6838 + [RFC6838]. + + Security considerations: + + Please see the Security Considerations section in RFC XXXX + + Interoperability considerations: + + Published specification: + + Applications that use this media type: + + Additional information: + + Deprecated alias names for this type: + + [Only applicable if there exists widely deployed alias for this + media type; see Section 4.2.9 of [RFC6838]. Remove or use N/A + otherwise.] + + Magic number(s): + + [Only applicable for media types that has file format + specification. Remove or use N/A otherwise.] + + File extension(s): + + [Only applicable for media types that has file format + specification. Remove or use N/A otherwise.] + + Macintosh file type code(s): + + [Only applicable for media types that has file format + specification. Even for file formats they can be skipped as + they are not relied on after Mac OS 9.X. Remove or use N/A + otherwise.] + + Person & email address to contact for further information: + + Intended usage: + + [One of COMMON, LIMITED USE, or OBSOLETE.] + + + + + + +Westerlund Informational [Page 61] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + + Restrictions on usage: + + [The below text is for media types that is only defined for RTP + payload formats. There exist certain media types that are defined + both as RTP payload formats and file transfer. The rules for such + types are documented in RFC 4855 [RFC4855].] + + This media type depends on RTP framing and, hence, is only defined + for transfer via RTP [RFC3550]. Transport within other framing + protocols is not defined at this time. + + Author: + + Change controller: + + IETF Payload working group delegated from the IESG. + + Provisional registration? (standards tree only): + + No + + (Any other information that the author deems interesting may be added + below this line.) + + [From RFC 6838: + + "N/A", written exactly that way, can be used in any field if + desired to emphasize the fact that it does not apply or that the + question was not omitted by accident. Do not use 'none' or other + words that could be mistaken for a response. + + Limited-use media types should also note in the applications list + whether or not that list is exhaustive.] + +A.11.2. Mapping to SDP + + The mapping of the above defined payload format media type and its + parameters SHALL be done according to Section 3 of RFC 4855 + [RFC4855]. + + [More specific rules only need to be included if some parameter does + not match these rules.] + +A.11.2.1. Offer/Answer Considerations + + [Here write your Offer/Answer considerations section; please see + Section 3.4.2.1 for help.] + + + + +Westerlund Informational [Page 62] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +A.11.2.2. Declarative SDP Considerations + + [Here write your considerations for declarative SDP, please see + Section 3.4.2.2 for help.] + +A.12. IANA Considerations + + This memo requests that IANA registers [insert media type name here] + as specified in Appendix A.11.1. The media type is also requested to + be added to the IANA registry for "RTP Payload Format MIME types" + <http://www.iana.org/assignments/rtp-parameters>. + + [See Section 7.4 and consider if any of the parameter needs a + registered name space.] + +A.13. Security Considerations + + [See Section 7.2.] + + RTP packets using the payload format defined in this specification + are subject to the security considerations discussed in the RTP + specification [RFC3550] , and in any applicable RTP profile such as + RTP/AVP [RFC3551], RTP/AVPF [RFC4585], RTP/SAVP [RFC3711], or RTP/ + SAVPF [RFC5124]. However, as "Securing the RTP Protocol Framework: + Why RTP Does Not Mandate a Single Media Security Solution" [RFC7202] + discusses, it is not an RTP payload format's responsibility to + discuss or mandate what solutions are used to meet the basic security + goals like confidentiality, integrity, and source authenticity for + RTP in general. This responsibility lays on anyone using RTP in an + application. They can find guidance on available security mechanisms + and important considerations in "Options for Securing RTP Sessions" + [RFC7201]. Applications SHOULD use one or more appropriate strong + security mechanisms. The rest of this Security Considerations + section discusses the security impacting properties of the payload + format itself. + + This RTP payload format and its media decoder do not exhibit any + significant non-uniformity in the receiver-side computational + complexity for packet processing, and thus are unlikely to pose a + denial-of-service threat due to the receipt of pathological data. + Nor does the RTP payload format contain any active content. + + [The previous paragraph may need editing due to the format breaking + either of the statements. Fill in here any further potential + security threats created by the payload format itself.] + + + + + + +Westerlund Informational [Page 63] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +A.14. RFC Editor Considerations + + Note to RFC Editor: This section may be removed after carrying out + all the instructions of this section. + + RFC XXXX is to be replaced by the RFC number this specification + receives when published. + +A.15. References + + [References must be classified as either normative or informative and + added to the relevant section. References should use descriptive + reference tags.] + +A.15.1. Normative References + + [Normative references are those that are required to be used to + correctly implement the payload format. Also, when requirements + language is used, as in the sample text for "Congestion Control + Considerations" above, there should be a normative reference to + [RFC2119].] + +A.15.2. Informative References + + [All other references.] + +A.16. Authors' Addresses + + [All authors need to include their name and email address as a + minimum: postal mail and possibly phone numbers are included + commonly.] + + [The Template Ends Here!] + +Acknowledgements + + The author would like to thank the individuals who have provided + input to this document. These individuals include Richard Barnes, + Ali C. Begen, Bo Burman, Ross Finlayson, Russ Housley, John Lazzaro, + Jonathan Lennox, Colin Perkins, Tom Taylor, Stephan Wenger, and Qin + Wu. + + + + + + + + + + +Westerlund Informational [Page 64] + +RFC 8088 HOWTO: RTP Payload Formats May 2017 + + +Contributors + + The author would like to thank Tom Taylor for the editing pass of the + whole document and contributing text regarding proprietary RTP + payload formats. Thanks also goes to Thomas Schierl who contributed + text regarding Media Scalability features in payload formats + (Section 5.1.5). Stephan Wenger has contributed text on the need to + understand the media coding (Section 3.1) as well as joint + development of payload format with the media coding (Section 4.4). + +Author's Address + + Magnus Westerlund + Ericsson + Farogatan 2 + SE-164 80 Kista + Sweden + + Phone: +46 10 714 82 87 + Email: magnus.westerlund@ericsson.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Westerlund Informational [Page 65] + |