Internet Engineering Task Force (IETF) Q. Wu, Ed. Request for Comments: 6792 Huawei Category: Informational G. Hunt ISSN: 2070-1721 Unaffiliated P. Arden BT November 2012 Guidelines for Use of the RTP Monitoring Framework
AbstractThis memo proposes an extensible Real-time Transport Protocol (RTP) monitoring framework for extending the RTP Control Protocol (RTCP) with a new RTCP Extended Reports (XR) block type to report new metrics regarding media transmission or reception quality. In this framework, a new XR block should contain a single metric or a small number of metrics relevant to a single parameter of interest or concern, rather than containing a number of metrics that attempt to provide full coverage of all those parameters of concern to a specific application. Applications may then "mix and match" to create a set of blocks that cover their set of concerns. Where possible, a specific block should be designed to be reusable across more than one application, for example, for all of voice, streaming audio, and video. 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 5741. 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/rfc6792.
Copyright Notice Copyright (c) 2012 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. 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
RFC3611] as well as other RTCP extensions to sender reports (SRs) and receiver reports (RRs) [RFC3550] are being developed for the purpose of collecting and reporting performance metrics from endpoint devices that can be used to correlate the metrics, provide end-to-end service visibility, and measure and monitor Quality of Experience (QoE) [RFC6390]. However, the proliferation of RTP-/RTCP-specific metrics for transport and application quality monitoring has been identified as a potential problem for interoperability when using RTP/RTCP to communicate all the parameters of concern to a specific application. Given that different applications layered on RTP may have some monitoring requirements in common, these metrics should be satisfied by a common design. The objective of this document is to describe an extensible RTP monitoring framework to provide a small number of reusable Quality of Service (QoS) / QoE metrics that facilitate reduced implementation costs and help maximize interoperability. "Guidelines for Extending the RTP Control Protocol (RTCP)" [RFC5968] has stated that where RTCP is to be extended with a new metric, the preferred mechanism is by the addition of 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]. New RTCP XR report block definitions should not define new performance metrics but should rather refer to metrics defined elsewhere.
Application-level metrics Metrics relating to application-specific parameters or QoE-related parameters. Application-specific parameters are measured at the application level and focus on 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 of such metrics is the QoE metric as specified in the QoE Metrics Report Block; see [QOE_BLOCK]. End-system metrics Metrics relating to the way a terminal deals with transport impairments affecting the incident RTP stream. These may include de-jitter buffering, packet loss concealment, and the use of redundant streams (if any) for correction of error or loss. Direct metrics Metrics that can be directly measured or calculated and are not dependent on other metrics. Interval metrics Metrics measured over the course of 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 the number of RTP packets lost over the course of the last RTCP reporting interval. Cumulative metrics Metrics measured over several reporting intervals for accumulating statistics. The time period over which measurements are accumulated 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 time instant and sampled from the values of a continuously measured or calculated metric within a reporting interval (generally, the value of some measurement as taken at the end of the reporting interval). An example is the inter-arrival jitter reported in RTCP SR and RR packets, which is
continually updated as each RTP data packet arrives but is only reported based on a snapshot of the value that is sampled at the instant the reporting interval ends. RFC2959]; or the Session Initiation Protocol (SIP) event package for RTCP summary reports [RFC6035]; or non-RTP mechanisms such as generic MIBs, NetFlow [RFC3954], IP Flow Information Export (IPFIX) [RFC5101] [RFC5102], and so on. Together, these provide useful mechanisms for exporting data on the performance of an RTP session to non-RTP network management systems. It is desirable to also perform in-session monitoring of RTP performance. RTCP provides the means to do this. In the following, we review the RTP Monitoring Framework, and give guidance for using and extending RTCP for monitoring RTP sessions. One major benefit of such a framework is ease of integration with other RTP/RTCP mechanisms. RFC3550]. It acts as a repository of information gathered for monitoring purposes. According to the definition of "monitor" in [RFC3550], the end system that runs an application program that sends or receives RTP data packets, an intermediate system that forwards RTP packets to end devices, or a third party that observes the RTP and RTCP traffic but does not make itself visible to the RTP Session participants can play the role of the monitor within the RTP monitoring framework. As shown in Figure 1, the third-party monitor can be a passive monitor that sees the RTP/RTCP stream pass it, or a system that gets sent RTCP reports but not RTP and uses that to collect information. 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) conveys real-time application QoS/QoE metric information and is used by the monitor to exchange information with other monitors in the appropriate report block format. The
information contained in the RTP MBs is collected by monitors and can be formulated as various types of metrics, e.g., direct metrics/ composed performance metrics [RFC6390] or interval metrics/cumulative metrics/sampled metrics, etc. Both the RTCP and RTCP XR can be extended to transport these metrics, e.g., the basic RTCP reception report [RFC3550] that conveys reception statistics (i.e., transport- level statistics) for multiple RTP media streams, the RTCP XRs [RFC3611] that supplement the existing RTCP packets and provide more detailed feedback on reception quality, and an RTCP NACK [RFC4585] that provides feedback on the RTP sequence numbers for a subset of the lost packets or all the currently lost packets. Ultimately, the metric information collected by monitors within the RTP monitoring framework may go to the network management tools beyond the RTP monitoring framework; e.g., as shown in Figure 1, the monitors may export the metric information derived from the RTP monitoring framework 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 may 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 is a unicast feedback target that receives RTCP feedback from receivers and distributes it 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
receive all feedback from the receivers (this may also be an intermediate system). In both ASM and SSM scenarios, receivers can send RTCP reports to enhance reception-quality reporting. Figure 1, there are several possible locations from which 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 those sessions that are monitored will not all include each type of monitor. The performance metrics collected by monitors can be divided into end-system metrics, application-level metrics, and transport-level metrics. Some of these metrics may be specific to the measurement point of the monitor or may depend on where the monitors are located in the network, while others are more general and can be collected in any monitoring location. End-system monitoring is monitoring that is deployed on devices that terminate RTP flows. Flows can be terminated in user equipment, such as phones, videoconferencing systems, or IPTV set-top boxes. Alternatively, 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 intermediate systems 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 the purposes of monitoring. 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 that passively monitor RTP sessions for network management purposes. Third-party monitors often do not send reports into the RTP session being monitored but instead collect transport-level metrics, end-system metrics, and application- level metrics. In some cases, however, 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 that passively monitor the session and send reception- quality reports to the media source but not to the receivers. 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. However, 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. RFC3550], is an example of an existing tool that allows binding an SSRC that may change to a name that is fixed within one RTP session. The CNAME may also be fixed across multiple RTP sessions from the same source. However, there may be situations where RTCP reports are sent 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 contained in RTCP XR VoIP metrics reports [RFC3611] is forwarded to a central collection server system using SIP. In such a case, there is a large portfolio of quality parameters that can be associated with real-time applications, e.g., VOIP applications, but only a minimal number of parameters are included in the RTCP XRs. With this minimal number of RTCP statistical parameters mapped to non-RTCP measurements, it is hard to provide accurate measurements of real-time application quality, conduct detailed data analysis, and create timely alerts for users. Therefore, a correlation between RTCP XRs and non-RTP data should be provided.
RFC3611]. RFC3550] (together with source identification provided in RTCP Source Description (SDES) packets) are sufficient. For other applications, additional metrics may be required or at least may be sufficiently useful to justify the overhead, in terms of both processing in endpoints and of increased session bandwidth. For example, an IPTV application using Forward Error Correction (FEC) might use either a metric of post-repair loss or a metric giving detailed information about pre-repair loss bursts to optimize payload bandwidth and the strength of FEC required for changing network conditions. However, there are many metrics available. It is likely that different applications or classes of applications will wish to use different metrics. Any one application is likely to require metrics for more than one parameter, but if this is the case, different applications will almost certainly require different combinations of metrics. If
larger blocks are defined containing multiple metrics to address the needs of each application, it becomes likely that many such different larger blocks are defined, which poses a danger to interoperability. To avoid this pitfall, this memo recommends the definition of metrics blocks containing a very small number of individual metrics characterizing only one parameter of interest to an application running over RTP. For example, at the RTP transport layer, 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 as an example a metrics block to report packet delay variation. Further, it is appropriate to not only define report blocks separately but also to do so in separate documents where possible. This makes it easier to evolve the reports (i.e., to update each type of report block separately) and also makes it easier to require compliance with a particular report block.
stream. In such a 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 5-tuple to the network management system. The network management system can then correlate this report using SSRC with other diagnostic information, such as call detail records. RFC6776]. [RFC6776] enables an RTCP sender to convey the common time period and the number of packets sent during this 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 this Measurement Information Block. 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, it is expected that the correct response is to discard the received metric. In order 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. Section 5. The example [RFC6798] is a block to convey information about packet delay variation (PDV) only, 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]. The use of 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 provide a tutorial on PDV in general. Given the availability of at least three metrics for PDV, there are design options for the allocation of metrics to RTCP XR blocks: o Provide an RTCP XR block per metric. o Provide a single RTCP XR block that contains all three metrics. o 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 require inclusion in this framework. The first option is extensible but only by the use of 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 require the transport of more than one metric for PDV. Hence, the third option was chosen. This implies the creation of a subsidiary namespace to enumerate the PDV metrics that may be transported by this block, as discussed further in [RFC6798]. RFC5117] fall into two categories. The first category relates to the RTP system model utilizing 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 MCU are two typical intermediate systems in these two categories mentioned above, this document will take them as two typical examples to explain how RTCP XR works in different [RFC5117] topologies. Section 7.2 of the RTP specification [RFC3550] describes the processing of RTCP by translators. RTCP XR is within the scope of the recommendations of [RFC3550]. Some RTCP XR metrics blocks may usefully be measured at, and reported by, translators. As described in [RFC3550], this creates a requirement for the translator to allocate an SSRC for the monitor co-located with itself so that the monitor may populate the SSRC in the RTCP XR packet header as the packet sender SSRC and send it out (although the translator is not a synchronization source in the sense of originating RTP media packets). It must also supply this SSRC and the corresponding CNAME in RTCP SDES packets. In RTP sessions where one or more translators generate any RTCP traffic towards their next-neighbor RTP system, other translators in the session have a choice as to whether they forward a translator's RTCP packets. Forwarding may provide additional information to other RTP systems in the connection but increases RTCP bandwidth and may in some cases present a security risk. RTP translators may have forwarding behavior based on local policy, which might differ between different interfaces of the same translator. RFC5117]. These difficulties apply to systems sending, and expecting to receive, RTCP XR blocks as much as to systems using other RTCP packet types. For example, a participant
RTP end system may send media to a video switch MCU. If the media stream is not selected for forwarding by the switch, neither RTCP RR packets nor RTCP XR blocks referring to the end system's generated stream will be received at the RTP end system. Strictly speaking, the RTP end system can only conclude that its RTP has been lost in the network, though an RTP end system complying with the robustness principle of [RFC1122] should survive with essential functions (i.e., media distribution) unimpaired. RFC3611]. However, it also describes the architectural framework to be used for monitoring at the RTP layer. The security issues with monitoring need to be considered. In RTP sessions, an RTP system may use its own SSRC to send its monitoring reports towards 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. Therefore, 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.
[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.