RFC 6792

Guidelines for Use of the RTP Monitoring Framework

๐Ÿ“… published November 2012, from ietf

RFC 6792: Guidelines for Use of the RTP Monitoring Framework ๐ŸŽ€

Okay bestie, here's the tea on the title block ๐Ÿ’– This is RFC 6792, Guidelines for Use of the RTP Monitoring Framework, published November 2012. The editor is Q. Wu (Ed.) from Huawei, and the other authors are G. Hunt (unaffiliated) and P. Arden from BT ๐Ÿ‘‘. It's Informational โœจ, so it's published for information and isn't a Standards Track spec. The ISSN is 2070-1721. The title block doesn't list anything it obsoletes or updates, so there's nothing to report there ๐Ÿฆ‹.

Abstract โœจ

Okay so the big idea is an extensible RTP monitoring framework that extends RTCP with a new RTCP Extended Reports (XR) block type to report new metrics about media transmission or reception quality ๐ŸŽง. Each new XR block should hold a single metric, or just a small handful, tied to one parameter of interest or concern. It should not be one giant block that tries to cover every concern an app has ๐Ÿ™…โ€โ™€๏ธ. Apps can then "mix and match" blocks to build a set that covers their own concerns ๐Ÿงฉ. And where possible, a block should be reusable across more than one app, like voice, streaming audio, and video ๐Ÿ’….

Status of This Memo ๐Ÿ“š

So this doc is not an Internet Standards Track spec. It's published for informational purposes ๐Ÿค. It's a product of the Internet Engineering Task Force (IETF), it represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication ๐Ÿซถ. Not every IESG-approved document is a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 if you want the details ๐Ÿง.

Info about the current status, any errata, and how to send feedback lives at http://www.rfc-editor.org/info/rfc6792 ๐Ÿ”—.

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved ๐Ÿ’œ.

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the publication date. Please read them carefully, because they explain your rights and restrictions for this doc ๐Ÿ“œ. Code Components pulled from this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License โš–๏ธ.

Table of Contents ๐Ÿ—‚๏ธ

   1. Introduction ....................................................3
   2. Terminology .....................................................3
   3. RTP Monitoring Framework ........................................5
      3.1. Overview of the RTP Monitoring Framework ...................5
      3.2. Location of Monitors .......................................7
   4. Issues with Reporting Metrics Blocks Using RTCP XR Extensions ...8
      4.1. Using a Compound Metrics Block .............................8
      4.2. Correlating RTCP XR with Non-RTP Data ......................8
      4.3. Measurement Information Duplication ........................9
      4.4. Consumption of XR Block Code Points ........................9
   5. Guidelines for Reporting Metrics Blocks Using RTCP XR ...........9
      5.1. Use a Single Metric in the Metrics Block ...................9
      5.2. Include the Payload Type in the Metrics Block .............10
      5.3. Use RTCP SDES to Correlate XRs with Non-RTP Data ..........10
      5.4. Reduce Measurement Information Repetition across
           Metrics Blocks ............................................11
   6. An Example of a Metrics Block ..................................11
   7. Application to RFC 5117 Topologies .............................12
      7.1. Applicability to Translators ..............................13
      7.2. Applicability to MCUs .....................................13
   8. Security Considerations ........................................14
   9. Acknowledgements ...............................................14
   10. Informative References ........................................15

1. Introduction ๐ŸŒธ

Multimedia services that use the Real-time Transport Protocol (RTP) are getting more and more popular ๐Ÿ“ˆ. We need standard ways to gather RTP performance metrics from these apps so we can manage the uncertainty in how their services behave and whether they're available ๐Ÿซ . Standards like "RTP Control Protocol Extended Reports (RTCP XR)" [RFC3611] are in development, along with other RTCP extensions to sender reports (SRs) and receiver reports (RRs) [RFC3550]. These collect and report performance metrics from endpoint devices so you can correlate them, get end-to-end service visibility, and measure and monitor Quality of Experience (QoE) [RFC6390] โœจ.

Here's the catch ๐Ÿ‘€: having a ton of RTP-/RTCP-specific metrics for transport and application quality monitoring has been flagged as a potential interoperability problem, especially when you try to use RTP/RTCP to communicate every parameter of concern for one app ๐Ÿ˜ฌ. Since different apps built on RTP often share some monitoring needs, those metrics should be covered by one common design ๐Ÿ’….

The goal here is to describe an extensible RTP monitoring framework with a small set of reusable Quality of Service (QoS) / QoE metrics ๐ŸŽฏ. That keeps implementation costs down and helps maximize interoperability ๐Ÿค. "Guidelines for Extending the RTP Control Protocol (RTCP)" [RFC5968] already says that when RTCP needs a new metric, the preferred mechanism is adding a new RTCP XR [RFC3611] block ๐Ÿงฉ. This memo assumes that all the guidelines from RFC 5968 must apply on top of the guidelines in this document ๐Ÿ“‹. Guidelines for developing new performance metrics are specified in [RFC6390] ๐Ÿ“. And new RTCP XR report block definitions should not define new performance metrics. They should instead refer to metrics defined elsewhere ๐Ÿ”.

2. Terminology ๐Ÿ“–

This memo is informative and as such contains no normative requirements ๐Ÿค“.

In addition, the following terms are defined ๐Ÿ‘‡:

  • Transport-level metrics

A set of metrics that characterize the three transport impairments of packet loss, packet delay, and jitter (also known as delay variation). These metrics should be usable by any application that uses RTP transport ๐Ÿšš.

  • Application-level metrics

Metrics about application-specific parameters or QoE-related parameters. Application-specific parameters are measured at the application level and focus on the quality of content rather than network performance ๐ŸŽฌ. QoE-related parameters reflect the end-to-end performance at the services level and are usually measured at the user endpoint ๐Ÿ“ฑ. One example is the QoE metric specified in the QoE Metrics Report Block; see [QOE_BLOCK] ๐Ÿ’ซ.

  • End-system metrics

Metrics about how a terminal deals with transport impairments that affect the incoming RTP stream ๐Ÿ–ฅ๏ธ. These may include de-jitter buffering, packet loss concealment, and the use of redundant streams (if any) to correct errors or loss ๐Ÿ›Ÿ.

  • Direct metrics

Metrics that can be measured or calculated directly and don't depend on other metrics ๐ŸŽฏ.

  • Interval metrics

Metrics measured over a single reporting interval between two successive report blocks โฑ๏ธ. This may be the most recent RTCP reporting interval ([RFC3550], Section 6.2), or some other interval signaled using an RTCP Measurement Information XR Block [RFC6776]. An example interval metric is the count of RTP packets lost over the last RTCP reporting interval ๐Ÿงฎ.

  • Cumulative metrics

Metrics measured over several reporting intervals to build up statistics ๐Ÿ“Š. The measurement period can be the complete RTP session, or some other interval signaled using an RTCP Measurement Information XR Block [RFC6776]. An example cumulative metric is the total number of RTP packets lost since the start of the RTP session ๐Ÿ—“๏ธ.

  • Sampled metrics

Metrics measured at a particular instant and sampled from the values of a continuously measured or calculated metric within a reporting interval. Usually that's the value of some measurement taken at the end of the reporting interval ๐Ÿ“ธ. For example, the inter-arrival jitter reported in RTCP SR and RR packets is constantly updated as each RTP data packet arrives, but it's only reported as a snapshot of the value sampled when the reporting interval ends ๐Ÿซง.

3. RTP Monitoring Framework ๐Ÿฆ‹

There are lots of ways to monitor how an RTP session is performing ๐Ÿ”. Some are RTP-based, like the RTP MIB module [RFC2959], or the Session Initiation Protocol (SIP) event package for RTCP summary reports [RFC6035]. Others are non-RTP, like generic MIBs, NetFlow [RFC3954], IP Flow Information Export (IPFIX) [RFC5101] [RFC5102], and so on ๐Ÿ› ๏ธ. Together, these give you useful ways to export data about RTP session performance to non-RTP network management systems ๐Ÿ“ค. It's also desirable to monitor RTP performance from inside the session, and RTCP gives you the means to do that ๐Ÿ™Œ. Below, we review the RTP Monitoring Framework and give guidance on using and extending RTCP to monitor RTP sessions ๐Ÿงš. One big benefit of this kind of framework is that it's easy to integrate with other RTP/RTCP mechanisms ๐Ÿ’œ.

3.1. Overview of the RTP Monitoring Framework โœจ

okay so the RTP monitoring framework has two key functional pieces, bestie ๐Ÿ’–

  • Monitor
  • RTP Metrics Block

"Monitor" is the functional component defined in the RTP specification [RFC3550]. It's basically a storage spot ๐Ÿ’พ for info gathered for monitoring purposes.

According to the definition of "monitor" in [RFC3550], the monitor role can be played by an end system that runs an app sending or receiving RTP data packets, an intermediate system that forwards RTP packets to end devices, or a third party that watches the RTP and RTCP traffic without making itself visible to the RTP Session participants ๐Ÿ•ต๏ธ As shown in Figure 1, the third-party monitor can be a passive monitor that sees the RTP/RTCP stream pass by, or a system that gets sent RTCP reports (but not RTP) and uses those to collect info. The third-party monitor should be placed on the RTP/RTCP path between the sender, the intermediate system, and the receiver.

The RTP Metrics Block (MB) carries real-time application QoS/QoE metric info, and monitors use it to swap information with other monitors in the right report block format ๐ŸŽ€ The info in RTP MBs is collected by monitors and can be turned into different kinds of metrics, like direct metrics/composed performance metrics [RFC6390] or interval metrics/cumulative metrics/sampled metrics, etc. Both RTCP and RTCP XR can be extended to carry these metrics. For example, there's the basic RTCP reception report [RFC3550] that shares reception stats (transport-level stats) for multiple RTP media streams, the RTCP XRs [RFC3611] that add on to the existing RTCP packets and give more detailed feedback on reception quality, and an RTCP NACK [RFC4585] that gives feedback on the RTP sequence numbers for a subset of the lost packets or all the currently lost packets. Ultimately, the metric info collected by monitors in this framework may go to network management tools outside of it. Like in Figure 1, the monitors may export the metric info to the management system using non-RTP means ๐Ÿฆ‹

                  +-----------+                  +----------+
                  |Third-Party|                  |Management|
                  |  Monitor  |          >>>>>>>>|  System  |<<<<<
                  +-----------+          ^       +----------+    ^
                      :   ^              ^                       ^
                      :   |              ^                       ^
   +---------------+  :   |       +-------------+        +-------------+
   | +-----------+ |  :   |       |+-----------+|        |+-----------+|
   | |  Monitor  | |..:...|.......||  Monitor  ||........||  Monitor  ||
   | +-----------+ |      |       |+-----------+|        |+-----------+|
   |               |------+------>|             |------->|             |
   | RTP Sender    |              |RTP Mixer or |        |RTP Receiver |
   |               |              |Translator   |        |             |
   +---------------+              +-------------+        +-------------+

   ----> RTP media traffic
   ..... RTCP control channel
   >>>>> Non-RTP/RTCP management flows

                 Figure 1: Example Showing the Components
                      of the RTP Monitoring Framework

RTP can be used with multicast groups, both Any-Source Multicast (ASM) and Source-Specific Multicast (SSM) ๐ŸŒˆ These groups can be monitored using RTCP. In the ASM case, the monitor is a member of the multicast group and listens to RTCP reports from all members of the ASM group. In the SSM case, there's a unicast feedback target that gets RTCP feedback from receivers and passes it on to other members of the SSM group (see Figure 1 of [RFC5760]). The monitor will need to be co-located with the feedback target to get all the feedback from the receivers (this may also be an intermediate system). In both ASM and SSM scenarios, receivers can send RTCP reports to boost reception-quality reporting ๐Ÿ’…

3.2. Location of Monitors ๐Ÿ“

As shown in Figure 1, there are several spots where RTP sessions can be monitored ๐Ÿงš These include end systems that terminate RTP sessions, intermediate systems that are an active part of an RTP session, and third-party devices that passively monitor an RTP session. Not every RTP session will include monitoring, and the sessions that do get monitored won't all include every type of monitor. The performance metrics collected by monitors can be split into end-system metrics, application-level metrics, and transport-level metrics. Some of these metrics may be specific to the monitor's measurement point or may depend on where the monitors sit in the network, while others are more general and can be collected in any monitoring location.

End-system monitoring is monitoring that's deployed on devices that terminate RTP flows. Flows can be terminated in user equipment, like phones, videoconferencing systems, or IPTV set-top boxes ๐Ÿ“บ Or they can be terminated in devices that gateway between RTP and other transport protocols. Transport-level metrics, end-system metrics, and application-level metrics that don't reflect the end-to-end user experience may be collected at all types of end systems. But some application-level metrics (i.e., quality of experience (QoE) metrics) may only be applicable for user-facing end systems.

RTP sessions can include intermediate systems that are an active part of the system. These include RTP mixers and translators, Multipoint Control Units (MCUs), retransmission servers, etc. If the intermediate system establishes separate RTP sessions to the other participants, then it must act as an end system in each of those separate RTP sessions for monitoring purposes. If a single RTP session traverses the intermediate system, then the intermediate system can be assigned a synchronization source (SSRC) in that session, which it can use for its reports. Transport-level metrics may be collected at such an intermediate system ๐Ÿซถ

Third-party monitors may be deployed to passively monitor RTP sessions for network management purposes. Third-party monitors often don't send reports into the RTP session being monitored. Instead, they collect transport-level metrics, end-system metrics, and application-level metrics. In some cases, though, third-party monitors can send reports to some or all participants in the session being monitored ๐Ÿ‘€

For example, in a media streaming scenario, third-party monitors may be deployed to passively monitor the session and send reception-quality reports to the media source but not to the receivers ๐Ÿ“

4. Issues with Reporting Metrics Blocks Using RTCP XR Extensions ๐Ÿ”ฅ

The following sections discuss four issues that have come up in the past with reporting metrics blocks using RTCP XR extensions ๐Ÿ™ˆ

4.1. Using a Compound Metrics Block

A compound metrics block is designed to hold a large number of parameters from different classes for a specific application, all in a single block. For example, "RTP Control Protocol Extended Reports (RTCP XR)" [RFC3611] defines seven report block formats for network management and quality monitoring. Some of these block types defined in the RTCP XRs [RFC3611] are only specifically designed for conveying multicast inference of network characteristics (MINC) or voice over IP (VoIP) monitoring. But different applications layered on RTP may have different monitoring requirements. Designing a compound metrics block only for specific applications may increase implementation costs and minimize interoperability ๐Ÿ’€

4.2. Correlating RTCP XR with Non-RTP Data

The Canonical End-Point Identifier SDES Item (CNAME), as defined in RTP [RFC3550], is an example of an existing tool that lets you bind an SSRC that may change to a name that's fixed within one RTP session. The CNAME may also stay fixed across multiple RTP sessions from the same source. But there may be situations where RTCP reports go to other participating endpoints using a non-RTP protocol in a session. For example, as described in [RFC6035] in relation to summary reports, the data in RTCP XR VoIP metrics reports [RFC3611] gets forwarded to a central collection server system using SIP ๐Ÿ“ž In that case, there's a huge portfolio of quality parameters that can be associated with real-time applications, e.g., VOIP applications, but only a minimal number of parameters make it into the RTCP XRs. With this minimal set of RTCP statistical parameters mapped to non-RTCP measurements, it's hard to provide accurate measurements of real-time application quality, do detailed data analysis, and create timely alerts for users ๐Ÿ˜ญ So a correlation between RTCP XRs and non-RTP data should be provided โœจ

4.3. Measurement Information Duplication

We may set a measurement interval for the session and monitor RTP packets within one or several consecutive report intervals ๐Ÿงฎ In that case, extra measurement info (e.g., extended sequence number of the first packet, measurement period) may be expected. However, if we put that extra info into each metrics block, there may be situations where an RTCP XR packet that holds multiple metrics blocks reports on the same streams from the same source. In other words, duplicated data for the measurement gets provided multiple times, once in every metrics block. Though this design ensures immunity to packet loss, it may result in more packetization complexity, and this processing overhead isn't completely trivial in some cases. So a compromise between processing overhead and reliability should be taken into account ๐Ÿซ 

4.4. Consumption of XR Block Code Points

The RTCP XR block namespace is limited by the 8-bit block type field in the RTCP XR header ๐Ÿ”ข Space exhaustion may be a concern in the future. In anticipation of a potential need to extend the block type space, it's noted that Block Type 255 is reserved for future extensions in [RFC3611] ๐Ÿ‘‘

5. Guidelines for Reporting Metrics Blocks Using RTCP XR ๐ŸŽ€

5.1. Use a Single Metric in the Metrics Block ๐Ÿ’…

okay so different apps using RTP for media have totally different wants when it comes to the metrics RTCP needs to carry ๐ŸŽ€ For a lot of apps, the basic transport impairment stuff in RTCP SR and RR packets [RFC3550] (plus the source identification from RTCP Source Description (SDES) packets) is literally enough โœจ For others, extra metrics might be required, or at least useful enough to be worth the overhead, both in endpoint processing and in the extra session bandwidth. For example, an IPTV app using Forward Error Correction (FEC) might want either a post-repair loss metric or a metric with detailed info about pre-repair loss bursts ๐Ÿ“บ That way it can tune its payload bandwidth and how strong its FEC is when network conditions change.

But there are SO many metrics out there ๐Ÿ˜ญ Different apps (or classes of apps) will probably want different metrics. Any one app is likely to need metrics for more than one parameter, and if that's the case, different apps will almost certainly need different combos of metrics ๐Ÿ™ˆ If you define bigger blocks with multiple metrics to cover each app's needs, you end up with lots of different bigger blocks, and that's a real danger to interoperability ๐Ÿ’€

To dodge that pitfall, this memo recommends defining metrics blocks with a very small number of individual metrics, each one characterizing only one parameter of interest to an app running over RTP ๐Ÿฆ‹ At the RTP transport layer, for example, the parameter of interest might be packet delay variation, and specifically the metric "IP Packet Delay Variation (IPDV)" defined by [Y1540]. See Section 6 for architectural considerations for a metrics block, using a block that reports packet delay variation as the example. It's also appropriate to not only define report blocks separately but to do it in separate documents where possible ๐Ÿ“„ That makes it easier to evolve the reports (update each type of report block on its own) and makes it easier to require compliance with one particular report block ๐Ÿซถ

5.2. Include the Payload Type in the Metrics Block ๐ŸŽง

some classes of metrics can only be interpreted if you know which media codec is being used (audio mean opinion scores (MOSs) were the triggering example, but there may be others) ๐ŸŽถ For those, the RTCP XR has to be correlated with the RTP data. So report blocks that need that correlation need to include the payload type of the reported media ๐Ÿ“ On top of that, the details and parameters of the payload format bound to that payload type need to be signaled using some out-of-band means (e.g., as part of a Session Description Protocol (SDP) offer/answer exchange) ๐Ÿ“จ

5.3. Use RTCP SDES to Correlate XRs with Non-RTP Data ๐Ÿ”—

there may be situations where one application uses more than one media transport protocol to interconnect to the same session at the gateway ๐ŸŒ‰ For example, one RTCP XR packet is sent to the participating endpoints using non-RTP-based media transport (e.g., using SIP) in a VoIP session. One crucial factor is how to handle the different identities that correspond to these different media transport protocols ๐Ÿค”

This memo recommends an approach to make it easier to correlate the RTCP session with other session-related non-RTP data ๐Ÿ’œ So if you need to correlate RTP sessions with non-RTP sessions, the correlation information needed should be conveyed in a new RTCP SDES item, because that correlation information describes the source rather than providing a quality report ๐Ÿงš An example use case: a participant endpoint may convey a call identifier or a global call identifier associated with the SSRC of a measured RTP stream. In that case, the participant endpoint uses the SSRC to bind the call identifier using the SDES item in the SDES RTCP packet, and sends this correlation to the network management system. A flow measurement tool that is configured with the 5-tuple and is not call-aware then forwards the RTCP XRs, along with the SSRC of the measured RTP stream (which is included in the XR Block header) and the 5-tuple, to the network management system ๐Ÿ›ฐ๏ธ The network management system can then correlate this report using the SSRC with other diagnostic information, such as call detail records ๐Ÿ“Š

5.4. Reduce Measurement Information Repetition across Metrics Blocks โ™ป๏ธ

when multiple metrics blocks are carried in one RTCP XR packet, reporting on the same stream from the same source for the same time period, RTCP should use the SSRC to identify and correlate the multiple metrics blocks placed between Measurement Information Blocks. see "Measurement Identity and Information Reporting Using a Source Description (SDES) Item and an RTCP Extended Report (XR) Block" [RFC6776] ๐Ÿ“š [RFC6776] lets an RTCP sender convey the common time period and the number of packets sent during that period โฑ๏ธ If the measurement interval for a metric is different from the RTCP reporting interval, then this measurement duration in the Measurement Information Block should be used to specify the interval. When there may be multiple Measurement Information Blocks with the same SSRC in one RTCP XR compound packet, the Measurement Information Block should be put in order and followed by all the metrics blocks associated with it ๐Ÿ—‚๏ธ New RTCP XR metrics blocks that rely on the Measurement Information Block must specify the response in case the new RTCP XR metrics block is received without an associated Measurement Information Block. In most cases, the correct response is expected to be to discard the received metric ๐Ÿ—‘๏ธ

To reduce measurement information repetition in one RTCP XR compound packet containing multiple metrics blocks, the measurement information shall be sent before the related metrics blocks that are from the same reporting interval โœจ Note that for packet loss robustness, if the report blocks for the same interval span more than one RTCP packet, then each block must have the measurement identity information sent together with itself in the same RTCP compound packet, even though the information will be the same ๐Ÿ›ก๏ธ


6. An Example of a Metrics Block ๐Ÿง

this section uses an existing proposed metrics block as an example to illustrate the principles set out in Section 5 ๐ŸŒท

The example [RFC6798] is a block that conveys information about packet delay variation (PDV) only, which is consistent with the principle that a metrics block should address only one parameter of interest ๐Ÿ’– One simple metric of PDV is available in the RTCP RR packet as the "inter-arrival jitter" field. There are other PDV metrics with a certain similarity in metric structure that may be more useful to certain applications. Two such metrics are the IPDV metric ([Y1540] [RFC3393]) and the mean absolute packet delay variation 2 (MAPDV2) metric [G1020]. Using these metrics is consistent with the principle in Section 5 of the RTCP guidelines document [RFC5968] that metrics should usually be defined elsewhere, so that RTCP standards define only the transport of the metric rather than its nature ๐ŸŒˆ The purpose of this section is to illustrate the architectural considerations, using the example of [RFC6798], rather than to document the design of the PDV metrics block or to give a tutorial on PDV in general. So no, this isn't a PDV crash course, bestie ๐Ÿ™ˆ

Given the availability of at least three metrics for PDV, there are design options for allocating metrics to RTCP XR blocks ๐ŸŽฏ

  • Provide an RTCP XR block per metric.
  • Provide a single RTCP XR block that contains all three metrics.
  • Provide a single RTCP block to convey any one of the three metrics, together with an identifier to inform the receiving RTP system of the specific metric being conveyed.

In choosing between these options, extensibility is important, because additional metrics of PDV may well be standardized and need to be included in this framework ๐Ÿ”ฎ The first option is extensible, but only by using additional RTCP XR blocks, which may consume the limited namespace for RTCP XR blocks at an unacceptable rate ๐Ÿ˜ฌ The second option is not extensible and so could be rejected on that basis. But in any case, a single application is quite unlikely to need the transport of more than one metric for PDV. Hence, the third option was chosen ๐Ÿ‘‘ This implies creating a subsidiary namespace to enumerate the PDV metrics that may be transported by this block, as discussed further in [RFC6798] ๐Ÿฆ‹


7. Application to RFC 5117 Topologies ๐ŸŒ

the topologies specified in [RFC5117] fall into two categories ๐Ÿงฉ The first category relates to the RTP system model using multicast and/or unicast. The topologies in this category are specifically Topo-Point-to-Point, Topo-Multicast, Topo-Translator (both variants, Topo-Trn-Translator and Topo-Media-Translator, as well as combinations of the two), and Topo-Mixer. These topologies use RTP end systems, RTP mixers, and RTP translators as defined in [RFC3550]. For the purposes of reporting connection quality to other RTP systems, RTP mixers and RTP end systems are very similar. Mixers resynchronize packets and do not relay RTCP reports received from one cloud towards other cloud(s). Translators do not resynchronize packets and should forward certain RTCP reports between clouds ๐Ÿ” In this category, the RTP system (end system, mixer, or translator) that originates, terminates, or forwards RTCP XR blocks is expected to handle RTCP, including RTCP XR, according to RTP [RFC3550]. Provided this expectation is met, an RTP system using RTCP XR is architecturally no different from an RTP system of the same class (end system, mixer, or translator) that does not use RTCP XR ๐Ÿ’…

The second category relates to deployed system models used in many H.323 [H323] videoconferences ๐Ÿ“น The topologies in this category are Topo-Video-switch-MCU and Topo-RTCP-terminating-MCU. Such topologies, based on systems (e.g., MCUs), do not behave according to RTP [RFC3550] ๐Ÿ™ƒ

Considering that the translator and the MCU are two typical intermediate systems in these two categories, this document will take them as two typical examples to explain how RTCP XR works in different [RFC5117] topologies ๐ŸŒธ

7.1. Applicability to Translators ๐Ÿฆ‹

Okay bestie, translators! Section 7.2 of the RTP spec [RFC3550] is where it explains how translators handle RTCP, and RTCP XR is totally inside the scope of those recommendations. Some RTCP XR metrics blocks can usefully be measured at, and reported by, translators โœจ

Here's the catch. As [RFC3550] describes, the translator then needs to allocate an SSRC for the monitor that sits right next to it. That way the monitor can fill the SSRC into the RTCP XR packet header as the packet sender SSRC and send it out. The translator isn't a synchronization source here, since it's not originating RTP media packets, but it still must also supply this SSRC and the corresponding CNAME in RTCP SDES packets. ๐ŸŽ€

In RTP sessions where one or more translators send any RTCP traffic toward their next-neighbor RTP system, the other translators get to choose whether they forward that translator's RTCP packets. Forwarding can give extra info to other RTP systems in the connection, but it bumps up RTCP bandwidth and can sometimes be a security risk ๐Ÿ‘€. Translators can also have forwarding behavior based on local policy, and that policy might be different on different interfaces of the same translator. ๐Ÿ’…

7.2. Applicability to MCUs ๐ŸŒธ

Topo-Video-switch-MCU and Topo-RTCP-terminating-MCU deal with the difficulties described in [RFC5117] ๐Ÿ˜ญ. These difficulties hit systems that send, and expect to receive, RTCP XR blocks just as much as systems using other RTCP packet types.

Here's an example. A participant RTP end system sends media to a video switch MCU. If the switch doesn't select that media stream for forwarding, then neither RTCP RR packets nor RTCP XR blocks about the end system's generated stream will reach the RTP end system. Strictly speaking, the RTP end system can only conclude that its RTP got lost in the network. Still, an RTP end system following the robustness principle of [RFC1122] should survive with essential functions (i.e., media distribution) unimpaired. ๐Ÿซถ


8. Security Considerations ๐Ÿšจ

This document focuses on the RTCP reporting extension using RTCP XR and should not give rise to any new security vulnerabilities beyond those described in RTCP XRs [RFC3611]. However, it also describes the architectural framework to be used for monitoring at the RTP layer, and the security issues with monitoring need to be considered. Not me getting a little dramatic about it, but this part is serious! ๐Ÿ˜ณ

In RTP sessions, an RTP system may use its own SSRC to send its monitoring reports toward its next-neighbor RTP system. Other RTP systems in the session may have a choice as to whether they forward this RTP system's RTCP packets. This presents a security issue, since the information in the report may be exposed by the other RTP system to any malicious node. So, if the information is considered sensitive, the monitoring reports should be secured to the same extent as the RTP flows that they measure.

If encryption is used and the encrypted monitoring report is received by the RTP system that deploys the third-party monitor, the RTP system may decrypt the monitor report for the third-party monitor based on local policy (e.g., third-party monitors are allowed access to the metric) and forward it to the third-party monitor. Otherwise, the third-party monitor should discard the received encrypted monitoring report. ๐Ÿ”


9. Acknowledgements ๐Ÿ’œ

The authors would like to thank Colin Perkins, Charles Eckel, Robert Sparks, Salvatore Loreto, Graeme Gibbs, Debbie Greenstreet, Keith Drage, Dan Romascanu, Ali C. Begen, Roni Even, Magnus Westerlund, Meral Shirazipour, Tina Tsou, Barry Leiba, Benoit Claise, Russ Housley, and Stephen Farrell for their valuable comments and suggestions on early versions of this document. Thank you all, you're literally the reason this doc is so good ๐Ÿ™Œ๐ŸŒˆ


10. Informative References โœจ

Here's the full reference list, exactly as it appears in the original. Every single entry gets to stay! ๐Ÿ“š

   [G1020]      ITU-T, "Performance parameter definitions for quality of
                speech and other voiceband applications utilizing IP
                networks", ITU-T Rec. G.1020, July 2006.

   [H323]       ITU-T, "Packet-based multimedia communications systems",
                ITU-T Rec. H.323, December 2009.

   [QOE_BLOCK]  Clark, A., Wu, Q., Schott, R., and G. Zorn, "RTP Control
                Protocol (RTCP) Extended Report (XR) Blocks for QoE
                Metric Reporting", Work in Progress, October 2012.

   [RFC1122]    Braden, R., "Requirements for Internet Hosts -
                Communication Layers", STD 3, RFC 1122, October 1989.

   [RFC2959]    Baugher, M., Strahm, B., and I. Suconick, "Real-Time
                Transport Protocol Management Information Base",
                RFC 2959, October 2000.

   [RFC3393]    Demichelis, C. and P. Chimento, "IP Packet Delay
                Variation Metric for IP Performance Metrics (IPPM)",
                RFC 3393, November 2002.

   [RFC3550]    Schulzrinne, H., Casner, S., Frederick, R., and V.
                Jacobson, "RTP: A Transport Protocol for Real-Time
                Applications", STD 64, RFC 3550, July 2003.

   [RFC3611]    Friedman, T., Caceres, R., and A. Clark, "RTP Control
                Protocol Extended Reports (RTCP XR)", RFC 3611,
                November 2003.

   [RFC3954]    Claise, B., "Cisco Systems NetFlow Services Export
                Version 9", RFC 3954, October 2004.

   [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, July 2006.

   [RFC5101]    Claise, B., "Specification of the IP Flow Information
                Export (IPFIX) Protocol for the Exchange of IP Traffic
                Flow Information", RFC 5101, January 2008.

   [RFC5102]    Quittek, J., Bryant, S., Claise, B., Aitken, P., and J.
                Meyer, "Information Model for IP Flow Information
                Export", RFC 5102, January 2008.

   [RFC5117]    Westerlund, M. and S. Wenger, "RTP Topologies",
                RFC 5117, January 2008.

   [RFC5760]    Ott, J., Chesterfield, J., and E. Schooler, "RTP Control
                Protocol (RTCP) Extensions for Single-Source Multicast
                Sessions with Unicast Feedback", RFC 5760,
                February 2010.

   [RFC5968]    Ott, J. and C. Perkins, "Guidelines for Extending the
                RTP Control Protocol (RTCP)", RFC 5968, September 2010.

   [RFC6035]    Pendleton, A., Clark, A., Johnston, A., and H.
                Sinnreich, "Session Initiation Protocol Event Package
                for Voice Quality Reporting", RFC 6035, November 2010.

   [RFC6390]    Clark, A. and B. Claise, "Guidelines for Considering New
                Performance Metric Development", BCP 170, RFC 6390,
                October 2011.

   [RFC6776]    Clark, A. and Q. Wu, "Measurement Identity and
                Information Reporting Using a Source Description (SDES)
                Item and an RTCP Extended Report (XR) Block", RFC 6776,
                October 2012.

   [RFC6798]    Clark, A. and Q. Wu, "RTP Control Protocol (RTCP)
                Extended Report (XR) Block for Packet Delay Variation
                Metric Reporting", RFC 6798, November 2012.

   [Y1540]      ITU-T, "IP packet transfer and availability performance
                parameters", ITU-T Rec. Y.1540, March 2011.

Authors' Addresses ๐ŸŽ€

Meet the squad who made this happen! ๐Ÿงš

   Qin Wu (editor)
   Huawei
   101 Software Avenue, Yuhua District
   Nanjing, Jiangsu  210012
   China

   EMail: sunseawq@huawei.com


   Geoff Hunt
   Unaffiliated

   EMail: r.geoff.hunt@gmail.com


   Philip Arden
   BT
   Orion 3/7 PP4
   Adastral Park
   Martlesham Heath
   Ipswich, Suffolk  IP5 3RE
   United Kingdom

   Phone: +44 1473 644192
   EMail: philip.arden@bt.com
๐Ÿ“ฆ where this page comes from