RFC 7243
RTP Control Protocol (RTCP) Extended Report (XR) Block for the Bytes Discarded Metric
RFC 7243: RTP Control Protocol (RTCP) Extended Report (XR) Block for the Bytes Discarded Metric β¨
okay bestie, this one is RFC 7243 ππ. It's a Standards Track doc from the IETF stream, dated May 2014, with ISSN 2070-1721. The authors are V. Singh, Ed., J. Ott (Aalto University) and I. Curcio (Nokia Research Center). The title block doesn't list anything it obsoletes or updates, so there's no drama there π .
Abstract π¦
RTCP works alongside RTP to give you all kinds of reception stats, both short-term and long-term π. The reports can cover longer stretches of time or single packets. This doc defines a report that counts the bytes thrown out of the de-jitter buffer after they were successfully received π.
Status of This Memo πΈ
This is an Internet Standards Track document π₯.
It's a product of the Internet Engineering Task Force (IETF), so it reflects IETF community consensus. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG) β¨. For more on Internet Standards, check Section 2 of RFC 5741.
Want the current status, errata, or a way to send feedback? Head to http://www.rfc-editor.org/info/rfc7243 π§.
Copyright Notice π
Copyright (c) 2014 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 were on the publication date. Read those carefully, because they spell out your rights and restrictions π«Ά. Code Components pulled out of 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 .....................................................4
3. Bytes Discarded Report Block ....................................4
4. Protocol Operation ..............................................6
4.1. Reporting Node (Receiver) ..................................6
4.2. Media Sender ...............................................6
5. SDP Signaling ...................................................7
6. Security Considerations .........................................7
7. IANA Considerations .............................................8
7.1. XR Report Block Registration ...............................8
7.2. SDP Parameter Registration .................................8
7.3. Contact Information for IANA Registrations .................8
8. Acknowledgments .................................................8
9. References ......................................................9
9.1. Normative References .......................................9
9.2. Informative References .....................................9
Appendix A. Metrics Represented Using the Template from RFC 6390 ..11
1. Introduction β¨
okay so [RFC3550] gives RTP its transport for real-time media like audio and video π§. Tucked alongside it is RTCP, which sends periodic feedback about the media streams in a given time window. RTCP can also send timely feedback about individual events, like packet loss [RFC4585] π. Both the long-term and short-term feedback let a media sender tweak its transmission and/or encoding on the fly so it fits the path it's actually using π¦.
[RFC3611] introduced RTCP Extended Reports, a detailed reporting framework that does way more than the coarse Receiver Report (RR) stats π . The extra detail can help a media sender respond better to network conditions, because those conditions get described more accurately. The tradeoff is extra overhead, though π.
Besides lost packets, [RFC3611] also defines "discarded" packets. These are packets that arrived but got dropped from the de-jitter buffer, either because they were too early (for buffering) or too late (for playout) π. The "discard rate" metric lives in the VoIP metrics report block, even though it isn't only for audio. It's defined as the fraction of discarded packets since the start of the session. See Section 4.7.1 of [RFC3611]. The discard metric is believed to apply to a big class of RTP applications that use a de-jitter buffer [RFC5481] π.
A few extensions to XR reporting have been proposed to beef up the discard metric π₯:
- Reporting the number of discarded packets in a measurement interval, either the last reporting interval or since the beginning of the session. A flag in the suggested XR report indicates which one [RFC7002]. If an endpoint needs to report packet discard for reasons other than early and late arrival (like duplication, redundancy, and so on), then it should consider using the Discarded Packets Report Block [RFC7002].
- Reporting gaps and bursts of discarded packets during a measurement interval, meaning the last reporting interval or the length of the session [RFC7003] π.
- Reporting a run-length encoding of discarded packets during a measurement interval, meaning between a set of sequence numbers [RFC7097] π§.
But none of these let a receiver report exactly how many RTP payload bytes were discarded π. You could in theory work it out from high-frequency reporting on discarded packet counts [RFC7002], or from the Discard RLE (Run Length Encoding) report [RFC7097]. But neither looks feasible. The first would need an unreasonably high amount of reporting, and it still might not be enough because RTCP packet scheduling isn't deterministic. The second adds a lot of complexity (it has to store a map of sequence numbers and packet sizes) plus reporting overhead π.
So this doc defines an XR block that reports the number of RTP payload bytes discarded, either per interval or for the whole session, just like the other XR blocks do π.
2. Terminology π«§
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 BCP 14, [RFC2119] π.
The terminology defined in RTP [RFC3550] and in the extensions for XR reporting [RFC3611] applies here too π.
3. Bytes Discarded Report Block π
The Bytes Discarded Report Block uses the format below. It follows the model of the framework for performance metric development [RFC6390] π§.
0 1 2 3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=26 | I |E|Reserved | Block length=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of RTP payload bytes discarded |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: XR Bytes Discarded Report Block πΌοΈ
Block Type (BT): 8 bits. A Bytes Discarded Packets Report Block is identified by the constant 26 π’.
Interval Metric flag (I): 2 bits. This tells you whether the discard metric is an Interval or a Cumulative metric. I=10 means the reported value covers the most recent measurement interval between successive reports (the Interval Duration). I=11 means it covers the accumulation period that cumulative measurements use (the Cumulative Duration) ποΈ. Bytes discarded aren't measured at one moment in time. They build up over one or several reporting intervals, so the metric MUST NOT be reported as a Sampled Metric (I=01) π«. The value I=00 is reserved, so it MUST NOT be sent. If it shows up when received, it MUST be discarded β.
Early bit (E): This bit tells apart packets discarded for arriving early from packets discarded for arriving late π. The E bit is set to '1' when the block reports bytes discarded due to early arrival, and set to '0' when it reports bytes discarded due to late arrival. Duplicate packets that get received and discarded are ignored and not reported π. If both early and late discarded packets shall be reported, two Bytes Discarded report blocks MUST be included π―.
Reserved: 5 bits. This field is reserved for future definition. Until something gets defined, the bits in this field MUST be set to zero, and the receiver MUST ignore them π§.
Block length: 16 bits. This MUST be set to 2, matching how [RFC3611] defines this field. If the block length has any other value, the block MUST be discarded ποΈ.
Number of RTP payload bytes discarded: This is a 32-bit unsigned integer with the total number of bytes discarded π―. The 'bytes discarded' count matches the RTP payload size of every RTP packet that gets discarded (due to early or late arrival). So it leaves out the size of any RTP header extensions and any padding bits βοΈ. Also, a discarded packet gets tied to the interval it was discarded in, not the interval when it was expected β±οΈ.
If the Interval Metric flag is I=11, the field holds the number of RTP payload bytes discarded since the start of the session. If the flag is I=10, it holds the number of bytes discarded in the most recent reporting interval π.
If the XR block follows a Measurement Information Block [RFC6776] in the same RTCP compound packet, then the cumulative (I=11) or interval (I=10) for this report block lines up with the "measurement duration" values in that Measurement Information Block π§©.
If the receiver sends the Bytes Discarded Report Block without a Measurement Information Block, then the Bytes Discarded Report Block MUST be sent together with an RTCP Receiver Report (RR) as a compound RTCP packet π¦.
4. Protocol Operation π
This section describes how the reporting node (aka the media receiver) and the media sender behave π .
Stay tuned, because Section 4 keeps going in the next part π§β¨
4.1. Reporting Node (Receiver) π
Okay bestie, the media receiver MAY send the Bytes Discarded Reports as part of the regularly scheduled RTCP packets, as per RFC 3550 π¦. It MAY also pop Bytes Discarded Reports into immediate or early feedback packets, as per [RFC4585] β‘.
Sending the RTCP XR Bytes Discarded Report is totally up to the media receiver's discretion, and so is the reporting granularity π . Still, it is RECOMMENDED that the media receiver signals the bytes discarded packets using the method defined in this document π«Ά. When several metrics go in one RTCP packet, their report intervals are synchronized, so the media receiver may choose to additionally send the Discarded Packets [RFC7002] or Discard RLE [RFC7097] Report Block π§. That helps the media sender match the bytes discarded to the packets discarded in that particular interval β¨.
If every packet in a reporting period was discarded, the media receiver MAY use the Discarded Packets Report Block [RFC7002] instead π.
4.2. Media Sender π¦
Bestie, the media sender MUST be prepared to operate without receiving any Bytes Discarded reports π. If the media receiver generates Bytes Discarded reports, the media sender cannot rely on all of them arriving, and it also cannot count on a regular generation pattern from the media receiver π.
BUT if the media sender gets any RTCP reports with no Bytes Discarded report blocks, and it knows the media receiver supports Bytes Discarded report blocks, it MAY assume that no packets were discarded by the media receiver πΈ.
The media sender SHOULD accept the Bytes Discarded Report Block only if it arrives in a compound RTCP receiver report, or if it is preceded by a Measurement Information Block [RFC6776] π. In every other situation, it MUST ignore the block π«.
5. SDP Signaling π
A participant in a media session MAY use SDP to signal its support for the report block specified in this document. Or it can just use them without any prior signaling (see Section 5 of [RFC3611]) π¦.
For signaling in SDP, the RTCP XR attribute as defined in [RFC3611] MUST be used π . The SDP [RFC4566] attribute 'xr-format' defined in RFC 3611 gets augmented to indicate the Bytes Discarded metric. Here's the ABNF [RFC5234] for it π§:
rtcp-xr-attrib = "a=" "rtcp-xr" ":" [xr-format *(SP xr-format)]
CRLF ; defined in [RFC3611]
xr-format =/ xr-discard-bytes
xr-discard-bytes = "discard-bytes"
The parameter 'discard-bytes' that indicates support for the Bytes Discarded Report Block is defined in Section 3 β¨.
When SDP is used in the offer/answer context, the mechanism defined in [RFC3611] for unilateral "rtcp-xr" attribute parameters applies (see Section 5.2 of [RFC3611]) π.
6. Security Considerations ππ
Okay, this section is serious, so let's get into it. The Bytes Discarded block does not provide per-packet statistics, so the risk to confidentiality documented in Section 7, paragraph 3 of [RFC3611] does not apply π. BUT returning very detailed error information (for example, over-range measurement or measurement unavailable) using this report block can give an attacker insight into the security processing π.
Here's the scary example π±. Say the attacker sends a packet with a stale timestamp (meaning a time in the past) to the receiver. If the receiver then sends a discard report with the same number of bytes as the payload of the injected packet, the attacker can infer that no security processing was performed. On the flip side, if the attacker doesn't receive a discard report, it can equivalently assume that the security procedures were performed on the packet. Yikes π.
So implementers should consider the guidance in [RFC7202] for using appropriate security mechanisms. In other words, where security is a concern, the implementation should apply encryption and authentication to the report block π. For example, this can be achieved by using the AVPF profile together with the Secure RTP profile as defined in [RFC3711]. An appropriate combination of the two profiles (an "SAVPF") is specified in [RFC5124] π«Ά. Other mechanisms also exist (documented in [RFC7201]) and might be more suitable π .
The Bytes Discarded report is used by the sender for congestion control, typically to calculate goodput (throughput that is useful) π. In these cases, an attacker MAY drive the endpoint to lower its sending rate and under-utilize the link. So media senders should choose appropriate security measures to mitigate such attacks π‘οΈ.
Lastly, the security considerations of [RFC3550], [RFC3611], and [RFC4585] apply too πΈ.
7. IANA Considerations π§Ύ
New block types for RTCP XR are subject to IANA registration. For general guidelines on IANA considerations for RTCP XR, refer to [RFC3611] π.
7.1. XR Block Registration
This document registers a new value in the IANA "RTP Control Protocol Extended Reports (RTCP XR) Block Type Registry": 26 for BDR (Bytes Discarded Report) π’.
7.2. SDP Parameter Registration
This document registers a new parameter for the Session Description Protocol (SDP), "discard-bytes", in the "RTP Control Protocol Extended Reports (RTCP XR) Session Description Protocol (SDP) Parameters Registry" π.
7.3. Contact Information for IANA Registrations
Reach out to the RAI Area Directors at rai-ads@tools.ietf.org π.
8. Acknowledgments π«Ά
The authors want to thank Benoit Claise, Alan Clark, Roni Even, Vijay Gurbani, Sam Hartman, Vinayak Hegde, Jeffrey Hutzelman, Barry Leiba, Colin Perkins, Dan Romascanu, Dan Wing, and Qin Wu for giving valuable feedback on this document during its development π. Iconic squad π.
9. References π
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[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.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[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.
[RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for
Syntax Specifications: ABNF", STD 68, RFC 5234, January
2008.
[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.
[RFC7002] Clark, A., Zorn, G., and Q. Wu, "RTP Control Protocol
(RTCP) Extended Report (XR) Block for Discard Count Metric
Reporting", RFC 7002, September 2013.
9.2. Informative References
[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
Norrman, "The Secure Real-time Transport Protocol (SRTP)",
RFC 3711, March 2004.
[RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for
Real-time Transport Control Protocol (RTCP)-Based Feedback
(RTP/SAVPF)", RFC 5124, February 2008.
[RFC5481] Morton, A. and B. Claise, "Packet Delay Variation
Applicability Statement", RFC 5481, March 2009.
[RFC7003] Clark, A., Huang, R., and Q. Wu, "RTP Control Protocol
(RTCP) Extended Report (XR) Block for Burst/Gap Discard
Metric Reporting", RFC 7003, September 2013.
[RFC7097] Ott, J., Singh, V., and I. Curcio, "RTP Control Protocol
(RTCP) Extended Report (XR) for RLE of Discarded Packets",
RFC 7097, January 2014.
[RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP
Sessions", RFC 7201, April 2014.
[RFC7202] Perkins, C. and M. Westerlund, "Securing the RTP
Framework: Why RTP Does Not Mandate a Single Media
Security Solution", RFC 7202, April 2014.
Appendix A. Metrics Represented Using the Template from RFC 6390 π
- a. RTP Payload Bytes Discarded Metric π
- Metric Name: RTP Payload Bytes Discarded Metric
- Metric Description: Total number of RTP payload bytes discarded over the period covered by this report.
- Method of Measurement or Calculation: See the definition of "Number of RTP payload bytes discarded" in Section 3.
- Units of Measurement: See the definition of "Number of RTP payload bytes discarded" in Section 3.
- Measurement Point(s) with Potential Measurement Domain: See the first paragraph of Section 3.
- Measurement Timing: See the last three paragraphs of Section 3 for measurement timing and for the Interval Metric flag.
- Use and applications: See the third paragraph of Section 1.
- Reporting model: See RFC 3611.
Authors' Addresses β¨
Varun Singh (editor)
Aalto University
School of Electrical Engineering
Otakaari 5 A
Espoo, FIN 02150
Finland
EMail: varun@comnet.tkk.fi
URI: http://www.netlab.tkk.fi/~varun/
Joerg Ott
Aalto University
School of Electrical Engineering
Otakaari 5 A
Espoo, FIN 02150
Finland
EMail: jo@comnet.tkk.fi
Igor D.D. Curcio
Nokia Research Center
P.O. Box 1000 (Visiokatu 3)
Tampere, FIN 33721
Finland
EMail: igor.curcio@nokia.com
That's the whole spec, bestie! ππ¦π Every single detail is in there, slay.
π¦ where this page comes from
- ietf: rfc7243 2014-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms