summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3611.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3611.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3611.txt')
-rw-r--r--doc/rfc/rfc3611.txt3083
1 files changed, 3083 insertions, 0 deletions
diff --git a/doc/rfc/rfc3611.txt b/doc/rfc/rfc3611.txt
new file mode 100644
index 0000000..d88c4e4
--- /dev/null
+++ b/doc/rfc/rfc3611.txt
@@ -0,0 +1,3083 @@
+
+
+
+
+
+
+Network Working Group T. Friedman, Ed.
+Request for Comments: 3611 Paris 6
+Category: Standards Track R. Caceres, Ed.
+ IBM Research
+ A. Clark, Ed.
+ Telchemy
+ November 2003
+
+
+ RTP Control Protocol Extended Reports (RTCP XR)
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+Abstract
+
+ This document defines the Extended Report (XR) packet type for the
+ RTP Control Protocol (RTCP), and defines how the use of XR packets
+ can be signaled by an application if it employs the Session
+ Description Protocol (SDP). XR packets are composed of report
+ blocks, and seven block types are defined here. The purpose of the
+ extended reporting format is to convey information that supplements
+ the six statistics that are contained in the report blocks used by
+ RTCP's Sender Report (SR) and Receiver Report (RR) packets. Some
+ applications, such as multicast inference of network characteristics
+ (MINC) or voice over IP (VoIP) monitoring, require other and more
+ detailed statistics. In addition to the block types defined here,
+ additional block types may be defined in the future by adhering to
+ the framework that this document provides.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 1]
+
+RFC 3611 RTCP XR November 2003
+
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 1.1. Applicability. . . . . . . . . . . . . . . . . . . . . . 4
+ 1.2. Terminology. . . . . . . . . . . . . . . . . . . . . . . 7
+ 2. XR Packet Format . . . . . . . . . . . . . . . . . . . . . . . 7
+ 3. Extended Report Block Framework. . . . . . . . . . . . . . . . 8
+ 4. Extended Report Blocks . . . . . . . . . . . . . . . . . . . . 9
+ 4.1. Loss RLE Report Block. . . . . . . . . . . . . . . . . . 9
+ 4.1.1. Run Length Chunk . . . . . . . . . . . . . . . . 15
+ 4.1.2. Bit Vector Chunk . . . . . . . . . . . . . . . . 15
+ 4.1.3. Terminating Null Chunk . . . . . . . . . . . . . 16
+ 4.2. Duplicate RLE Report Block . . . . . . . . . . . . . . . 16
+ 4.3. Packet Receipt Times Report Block. . . . . . . . . . . . 18
+ 4.4. Receiver Reference Time Report Block . . . . . . . . . . 20
+ 4.5. DLRR Report Block. . . . . . . . . . . . . . . . . . . . 21
+ 4.6. Statistics Summary Report Block. . . . . . . . . . . . . 22
+ 4.7. VoIP Metrics Report Block. . . . . . . . . . . . . . . . 25
+ 4.7.1. Packet Loss and Discard Metrics. . . . . . . . . 27
+ 4.7.2. Burst Metrics. . . . . . . . . . . . . . . . . . 27
+ 4.7.3. Delay Metrics. . . . . . . . . . . . . . . . . . 30
+ 4.7.4. Signal Related Metrics . . . . . . . . . . . . . 31
+ 4.7.5. Call Quality or Transmission Quality Metrics . . 33
+ 4.7.6. Configuration Parameters . . . . . . . . . . . . 34
+ 4.7.7. Jitter Buffer Parameters . . . . . . . . . . . . 36
+ 5. SDP Signaling. . . . . . . . . . . . . . . . . . . . . . . . . 36
+ 5.1. The SDP Attribute. . . . . . . . . . . . . . . . . . . . 37
+ 5.2. Usage in Offer/Answer. . . . . . . . . . . . . . . . . . 40
+ 5.3. Usage Outside of Offer/Answer. . . . . . . . . . . . . . 42
+ 6. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 42
+ 6.1. XR Packet Type . . . . . . . . . . . . . . . . . . . . . 42
+ 6.2. RTCP XR Block Type Registry. . . . . . . . . . . . . . . 42
+ 6.3. The "rtcp-xr" SDP Attribute. . . . . . . . . . . . . . . 43
+ 7. Security Considerations. . . . . . . . . . . . . . . . . . . . 44
+ A. Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . 46
+ A.1. Sequence Number Interpretation . . . . . . . . . . . . . 46
+ A.2. Example Burst Packet Loss Calculation. . . . . . . . . . 47
+ Intellectual Property Notice . . . . . . . . . . . . . . . . . . . 49
+ Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . 50
+ Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
+ References . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
+ Normative References . . . . . . . . . . . . . . . . . . . . . . . 51
+ Informative References . . . . . . . . . . . . . . . . . . . . . . 51
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 53
+ Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 55
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 2]
+
+RFC 3611 RTCP XR November 2003
+
+
+1. Introduction
+
+ This document defines the Extended Report (XR) packet type for the
+ RTP Control Protocol (RTCP) [9], and defines how the use of XR
+ packets can be signaled by an application if it employs the Session
+ Description Protocol (SDP) [4]. XR packets convey information beyond
+ that already contained in the reception report blocks of RTCP's
+ sender report (SR) or Receiver Report (RR) packets. The information
+ is of use across RTP profiles, and so is not appropriately carried in
+ SR or RR profile-specific extensions. Information used for network
+ management falls into this category, for instance.
+
+ The definition is broken out over the three sections that follow the
+ Introduction. Section 2 defines the XR packet as consisting of an
+ eight octet header followed by a series of components called report
+ blocks. Section 3 defines the common format, or framework,
+ consisting of a type and a length field, required for all report
+ blocks. Section 4 defines several specific report block types.
+ Other block types can be defined in future documents as the need
+ arises.
+
+ The report block types defined in this document fall into three
+ categories. The first category consists of packet-by-packet reports
+ on received or lost RTP packets. Reports in the second category
+ convey reference time information between RTP participants. In the
+ third category, reports convey metrics relating to packet receipts,
+ that are summary in nature but that are more detailed, or of a
+ different type, than that conveyed in existing RTCP packets.
+
+ All told, seven report block formats are defined by this document.
+ Of these, three are packet-by-packet block types:
+
+ - Loss RLE Report Block (Section 4.1): Run length encoding of
+ reports concerning the losses and receipts of RTP packets.
+
+ - Duplicate RLE Report Block (Section 4.2): Run length encoding of
+ reports concerning duplicates of received RTP packets.
+
+ - Packet Receipt Times Report Block (Section 4.3): A list of
+ reception timestamps of RTP packets.
+
+ There are two reference time related block types:
+
+ - Receiver Reference Time Report Block (Section 4.4): Receiver-end
+ wallclock timestamps. Together with the DLRR Report Block
+ mentioned next, these allow non-senders to calculate round-trip
+ times.
+
+
+
+
+Friedman, et al. Standards Track [Page 3]
+
+RFC 3611 RTCP XR November 2003
+
+
+ - DLRR Report Block (Section 4.5): The delay since the last Receiver
+ Reference Time Report Block was received. An RTP data sender that
+ receives a Receiver Reference Time Report Block can respond with a
+ DLRR Report Block, in much the same way as, in the mechanism
+ already defined for RTCP [9, Section 6.3.1], an RTP data receiver
+ that receives a sender's NTP timestamp can respond by filling in
+ the DLSR field of an RTCP reception report block.
+
+ Finally, this document defines two summary metric block types:
+
+ - Statistics Summary Report Block (Section 4.6): Statistics on RTP
+ packet sequence numbers, losses, duplicates, jitter, and TTL or
+ Hop Limit values.
+
+ - VoIP Metrics Report Block (Section 4.7): Metrics for monitoring
+ Voice over IP (VoIP) calls.
+
+ Before proceeding to the XR packet and report block definitions, this
+ document provides an applicability statement (Section 1.1) that
+ describes the contexts in which these report blocks can be used. It
+ also defines (Section 1.2) the normative use of key words, such as
+ MUST and SHOULD, as they are employed in this document.
+
+ Following the definitions of the various report blocks, this document
+ describes how applications that employ SDP can signal their use
+ (Section 5). The document concludes with a discussion (Section 6) of
+ numbering considerations for the Internet Assigned Numbers Authority
+ (IANA), of security considerations (Section 7), and with appendices
+ that provide examples of how to implement algorithms discussed in the
+ text.
+
+1.1. Applicability
+
+ The XR packets are useful across multiple applications, and for that
+ reason are not defined as profile-specific extensions to RTCP sender
+ or Receiver Reports [9, Section 6.4.3]. Nonetheless, they are not of
+ use in all contexts. In particular, the VoIP metrics report block
+ (Section 4.7) is specific to voice applications, though it can be
+ employed over a wide variety of such applications.
+
+ The VoIP metrics report block can be applied to any one-to-one or
+ one-to-many voice application for which the use of RTP and RTCP is
+ specified. The use of conversational metrics (Section 4.7.5),
+ including the R factor (as described by the E Model defined in [3])
+ and the mean opinion score for conversational quality (MOS-CQ), in
+ applications other than simple two party calls is not defined; hence,
+ these metrics should be identified as unavailable in multicast
+ conferencing applications.
+
+
+
+Friedman, et al. Standards Track [Page 4]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The packet-by-packet report block types, Loss RLE (Section 4.1),
+ Duplicate RLE (Section 4.2), and Packet Receipt Times (Section 4.3),
+ have been defined with network tomography applications, such as
+ multicast inference of network characteristics (MINC) [11], in mind.
+ MINC requires detailed packet receipt traces from multicast session
+ receivers in order to infer the gross structure of the multicast
+ distribution tree and the parameters, such as loss rates and delays,
+ that apply to paths between the branching points of that tree.
+
+ Any real time multicast multimedia application can use the packet-
+ by-packet report block types. Such an application could employ a
+ MINC inference subsystem that would provide it with multicast tree
+ topology information. One potential use of such a subsystem would be
+ for the identification of high loss regions in the multicast tree and
+ the identification of multicast session participants well situated to
+ provide retransmissions of lost packets.
+
+ Detailed packet-by-packet reports do not necessarily have to consume
+ disproportionate bandwidth with respect to other RTCP packets. An
+ application can cap the size of these blocks. A mechanism called
+ "thinning" is provided for these report blocks, and can be used to
+ ensure that they adhere to a size limit by restricting the number of
+ packets reported upon within any sequence number interval. The
+ rationale for, and use of this mechanism is described in [13].
+ Furthermore, applications might not require report blocks from all
+ receivers in order to answer such important questions as where in the
+ multicast tree there are paths that exceed a defined loss rate
+ threshold. Intelligent decisions regarding which receivers send
+ these report blocks can further restrict the portion of RTCP
+ bandwidth that they consume.
+
+ The packet-by-packet report blocks can also be used by dedicated
+ network monitoring applications. For such an application, it might
+ be appropriate to allow more than 5% of RTP data bandwidth to be used
+ for RTCP packets, thus allowing proportionately larger and more
+ detailed report blocks.
+
+ Nothing in the packet-by-packet block types restricts their use to
+ multicast applications. In particular, they could be used for
+ network tomography similar to MINC, but using striped unicast packets
+ instead. In addition, if it were found useful, they could be used
+ for applications limited to two participants.
+
+ One use to which the packet-by-packet reports are not immediately
+ suited is for data packet acknowledgments as part of a packet
+ retransmission mechanism. The reason is that the packet accounting
+ technique suggested for these blocks differs from the packet
+ accounting normally employed by RTP. In order to favor measurement
+
+
+
+Friedman, et al. Standards Track [Page 5]
+
+RFC 3611 RTCP XR November 2003
+
+
+ applications, an effort is made to interpret as little as possible at
+ the data receiver, and leave the interpretation as much as possible
+ to participants that receive the report blocks. Thus, for example, a
+ packet with an anomalous SSRC ID or an anomalous sequence number
+ might be excluded by normal RTP accounting, but would be reported
+ upon for network monitoring purposes.
+
+ The Statistics Summary Report Block (Section 4.6) has also been
+ defined with network monitoring in mind. This block type can be used
+ equally well for reporting on unicast and multicast packet reception.
+
+ The reference time related block types were conceived for receiver-
+ based TCP-friendly multicast congestion control [18]. By allowing
+ data receivers to calculate their round trip times to senders, they
+ help the receivers estimate the downstream bandwidth they should
+ request. Note that if every receiver is to send Receiver Reference
+ Time Report Blocks (Section 4.4), a sender might potentially send a
+ number of DLRR Report Blocks (Section 4.5) equal to the number of
+ receivers whose RTCP packets have arrived at the sender within its
+ reporting interval. As the number of participants in a multicast
+ session increases, an application should use discretion regarding
+ which participants send these blocks, and how frequently.
+
+ XR packets supplement the existing RTCP packets, and may be stacked
+ with other RTCP packets to form compound RTCP packets [9, Section 6].
+ The introduction of XR packets into a session in no way changes the
+ rules governing the calculation of the RTCP reporting interval [9,
+ Section 6.2]. As XR packets are RTCP packets, they count as such for
+ bandwidth calculations. As a result, the addition of extended
+ reporting information may tend to increase the average RTCP packet
+ size, and thus the average reporting interval. This increase may be
+ limited by limiting the size of XR packets.
+
+ The SDP signaling defined for XR packets in this document (Section 5)
+ was done so with three use scenarios in mind: a Real Time Streaming
+ Protocol (RTSP) controlled streaming application, a one-to-many
+ multicast multimedia application such as a course lecture with
+ enhanced feedback, and a Session Initiation Protocol (SIP) controlled
+ conversational session involving two parties. Applications that
+ employ SDP are free to use additional SDP signaling for cases not
+ covered here. In addition, applications are free to use signaling
+ mechanisms other than SDP.
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 6]
+
+RFC 3611 RTCP XR November 2003
+
+
+1.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, RFC 2119 [1]
+ and indicate requirement levels for compliance with this
+ specification.
+
+2. XR Packet Format
+
+ An XR packet consists of a header of two 32-bit words, followed by a
+ number, possibly zero, of extended report blocks. This type of
+ packet is laid out in a manner consistent with other RTCP packets, as
+ concerns the essential version, packet type, and length information.
+ XR packets are thus backwards compatible with RTCP receiver
+ implementations that do not recognize them, but that ought to be able
+ to parse past them using the length information. A padding field and
+ an SSRC field are also provided in the same locations that they
+ appear in other RTCP packets, for simplicity. The format is as
+ follows:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |V=2|P|reserved | PT=XR=207 | length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : report blocks :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ version (V): 2 bits
+ Identifies the version of RTP. This specification applies to
+ RTP version two.
+
+ padding (P): 1 bit
+ If the padding bit is set, this XR packet contains some
+ additional padding octets at the end. The semantics of this
+ field are identical to the semantics of the padding field in
+ the SR packet, as defined by the RTP specification.
+
+ reserved: 5 bits
+ This field is reserved for future definition. In the absence
+ of such definition, the bits in this field MUST be set to zero
+ and MUST be ignored by the receiver.
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 7]
+
+RFC 3611 RTCP XR November 2003
+
+
+ packet type (PT): 8 bits
+ Contains the constant 207 to identify this as an RTCP XR
+ packet. This value is registered with the Internet Assigned
+ Numbers Authority (IANA), as described in Section 6.1.
+
+ length: 16 bits
+ As described for the RTCP Sender Report (SR) packet (see
+ Section 6.4.1 of the RTP specification [9]). Briefly, the
+ length of this XR packet in 32-bit words minus one, including
+ the header and any padding.
+
+ SSRC: 32 bits
+ The synchronization source identifier for the originator of
+ this XR packet.
+
+ report blocks: variable length.
+ Zero or more extended report blocks. In keeping with the
+ extended report block framework defined below, each block MUST
+ consist of one or more 32-bit words.
+
+3. Extended Report Block Framework
+
+ Extended report blocks are stacked, one after the other, at the end
+ of an XR packet. An individual block's length is a multiple of 4
+ octets. The XR header's length field describes the total length of
+ the packet, including these extended report blocks.
+
+ Each block has block type and length fields that facilitate parsing.
+ A receiving application can demultiplex the blocks based upon their
+ type, and can use the length information to locate each successive
+ block, even in the presence of block types it does not recognize.
+
+ An extended report block has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT | type-specific | block length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : type-specific block contents :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ block type (BT): 8 bits
+ Identifies the block format. Seven block types are defined in
+ Section 4. Additional block types may be defined in future
+ specifications. This field's name space is managed by the
+ Internet Assigned Numbers Authority (IANA), as described in
+ Section 6.2.
+
+
+
+Friedman, et al. Standards Track [Page 8]
+
+RFC 3611 RTCP XR November 2003
+
+
+ type-specific: 8 bits
+ The use of these bits is determined by the block type
+ definition.
+
+ block length: 16 bits
+ The length of this report block, including the header, in 32-
+ bit words minus one. If the block type definition permits,
+ zero is an acceptable value, signifying a block that consists
+ of only the BT, type-specific, and block length fields, with a
+ null type-specific block contents field.
+
+ type-specific block contents: variable length
+ The use of this field is defined by the particular block type,
+ subject to the constraint that it MUST be a multiple of 32 bits
+ long. If the block type definition permits, It MAY be zero
+ bits long.
+
+4. Extended Report Blocks
+
+ This section defines seven extended report blocks: block types for
+ reporting upon received packet losses and duplicates, packet
+ reception times, receiver reference time information, receiver
+ inter-report delays, detailed reception statistics, and voice over IP
+ (VoIP) metrics. An implementation SHOULD ignore incoming blocks with
+ types not relevant or unknown to it. Additional block types MUST be
+ registered with the Internet Assigned Numbers Authority (IANA) [16],
+ as described in Section 6.2.
+
+4.1. Loss RLE Report Block
+
+ This block type permits detailed reporting upon individual packet
+ receipt and loss events. Such reports can be used, for example, for
+ multicast inference of network characteristics (MINC) [11]. With
+ MINC, one can discover the topology of the multicast tree used for
+ distributing a source's RTP packets, and of the loss rates along
+ links within that tree, or they could be used to provide raw data to
+ a network management application.
+
+ Since a Boolean trace of lost and received RTP packets is potentially
+ lengthy, this block type permits the trace to be compressed through
+ run length encoding. To further reduce block size, loss event
+ reports can be systematically dropped from the trace in a mechanism
+ called thinning that is described below and that is studied in [13].
+
+ A participant that generates a Loss RLE Report Block should favor
+ accuracy in reporting on observed events over interpretation of those
+ events whenever possible. Interpretation should be left to those who
+ observe the report blocks. Following this approach implies that
+
+
+
+Friedman, et al. Standards Track [Page 9]
+
+RFC 3611 RTCP XR November 2003
+
+
+ accounting for Loss RLE Report Blocks will differ from the accounting
+ for the generation of the SR and RR packets described in the RTP
+ specification [9] in the following two areas: per-sender accounting
+ and per-packet accounting.
+
+ In its per-sender accounting, an RTP session participant SHOULD NOT
+ make the receipt of a threshold minimum number of RTP packets a
+ condition for reporting upon the sender of those packets. This
+ accounting technique differs from the technique described in Section
+ 6.2.1 and Appendix A.1 of the RTP specification that allows a
+ threshold to determine whether a sender is considered valid.
+
+ In its per-packet accounting, an RTP session participant SHOULD treat
+ all sequence numbers as valid. This accounting technique differs
+ from the technique described in Appendix A.1 of the RTP specification
+ that suggests ruling a sequence number valid or invalid on the basis
+ of its contiguity with the sequence numbers of previously received
+ packets.
+
+ Sender validity and sequence number validity are interpretations of
+ the raw data. Such interpretations are justified in the interest,
+ for example, of excluding the stray old packet from an unrelated
+ session from having an effect upon the calculation of the RTCP
+ transmission interval. The presence of stray packets might, on the
+ other hand, be of interest to a network monitoring application.
+
+ One accounting interpretation that is still necessary is for a
+ participant to decide whether the 16 bit sequence number has rolled
+ over. Under ordinary circumstances this is not a difficult task.
+ For example, if packet number 65,535 (the highest possible sequence
+ number) is followed shortly by packet number 0, it is reasonable to
+ assume that there has been a rollover. However, it is possible that
+ the packet is an earlier one (from 65,535 packets earlier). It is
+ also possible that the sequence numbers have rolled over multiple
+ times, either forward or backward. The interpretation becomes more
+ difficult when there are large gaps between the sequence numbers,
+ even accounting for rollover, and when there are long intervals
+ between received packets.
+
+ The per-packet accounting technique mandated here is for a
+ participant to keep track of the sequence number of the packet most
+ recently received from a sender. For the next packet that arrives
+ from that sender, the sequence number MUST be judged to fall no more
+ than 32,768 packets ahead or behind the most recent one, whichever
+ choice places it closer. In the event that both choices are equally
+ distant (only possible when the distance is 32,768), the choice MUST
+ be the one that does not require a rollover. Appendix A.1 presents
+ an algorithm that implements this technique.
+
+
+
+Friedman, et al. Standards Track [Page 10]
+
+RFC 3611 RTCP XR November 2003
+
+
+ Each block reports on a single RTP data packet source, identified by
+ its SSRC. The receiver that is supplying the report is identified in
+ the header of the RTCP packet.
+
+ Choice of beginning and ending RTP packet sequence numbers for the
+ trace is left to the application. These values are reported in the
+ block. The last sequence number in the trace MAY differ from the
+ sequence number reported on in any accompanying SR or RR report.
+
+ Note that because of sequence number wraparound, the ending sequence
+ number MAY be less than the beginning sequence number. A Loss RLE
+ Report Block MUST NOT be used to report upon a range of 65,534 or
+ greater in the sequence number space, as there is no means of
+ identifying multiple wraparounds.
+
+ The trace described by a Loss RLE report consists of a sequence of
+ Boolean values, one for each sequence number of the trace. A value
+ of one represents a packet receipt, meaning that one or more packets
+ having that sequence number have been received since the most recent
+ wraparound of sequence numbers (or since the beginning of the RTP
+ session if no wraparound has been judged to have occurred). A value
+ of zero represents a packet loss, meaning that there has been no
+ packet receipt for that sequence number as of the time of the report.
+ If a packet with a given sequence number is received after a report
+ of a loss for that sequence number, a later Loss RLE report MAY
+ report a packet receipt for that sequence number.
+
+ The encoding itself consists of a series of 16 bit units called
+ chunks that describe sequences of packet receipts or losses in the
+ trace. Each chunk either specifies a run length or a bit vector, or
+ is a null chunk. A run length describes between 1 and 16,383 events
+ that are all the same (either all receipts or all losses). A bit
+ vector describes 15 events that may be mixed receipts and losses. A
+ null chunk describes no events, and is used to round out the block to
+ a 32 bit word boundary.
+
+ The mapping from a sequence of lost and received packets into a
+ sequence of chunks is not necessarily unique. For example, the
+ following trace covers 45 packets, of which the 22nd and 24th have
+ been lost and the others received:
+
+ 1111 1111 1111 1111 1111 1010 1111 1111 1111 1111 1111 1
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 11]
+
+RFC 3611 RTCP XR November 2003
+
+
+ One way to encode this would be:
+
+ bit vector 1111 1111 1111 111
+ bit vector 1111 1101 0111 111
+ bit vector 1111 1111 1111 111
+ null chunk
+
+ Another way to encode this would be:
+
+ run of 21 receipts
+ bit vector 0101 1111 1111 111
+ run of 9 receipts
+ null chunk
+
+ The choice of encoding is left to the application. As part of this
+ freedom of choice, applications MAY terminate a series of run length
+ and bit vector chunks with a bit vector chunk that runs beyond the
+ sequence number space described by the report block. For example, if
+ the 44th packet in the same sequence was lost:
+
+ 1111 1111 1111 1111 1111 1010 1111 1111 1111 1111 1110 1
+
+ This could be encoded as:
+
+ run of 21 receipts
+ bit vector 0101 1111 1111 111
+ bit vector 1111 1110 1000 000
+ null chunk
+
+
+ In this example, the last five bits of the second bit vector describe
+ a part of the sequence number space that extends beyond the last
+ sequence number in the trace. These bits have been set to zero.
+
+ All bits in a bit vector chunk that describe a part of the sequence
+ number space that extends beyond the last sequence number in the
+ trace MUST be set to zero, and MUST be ignored by the receiver.
+
+ A null packet MUST appear at the end of a Loss RLE Report Block if
+ the number of run length plus bit vector chunks is odd. The null
+ chunk MUST NOT appear in any other context.
+
+ Caution should be used in sending Loss RLE Report Blocks because,
+ even with the compression provided by run length encoding, they can
+ easily consume bandwidth out of proportion with normal RTCP packets.
+ The block type includes a mechanism, called thinning, that allows an
+ application to limit report sizes.
+
+
+
+
+Friedman, et al. Standards Track [Page 12]
+
+RFC 3611 RTCP XR November 2003
+
+
+ A thinning value, T, selects a subset of packets within the sequence
+ number space: those with sequence numbers that are multiples of 2^T.
+ Packet reception and loss reports apply only to those packets. T can
+ vary between 0 and 15. If T is zero, then every packet in the
+ sequence number space is reported upon. If T is fifteen, then one in
+ every 32,768 packets is reported upon.
+
+ Suppose that the trace just described begins at sequence number
+ 13,821. The last sequence number in the trace is 13,865. If the
+ trace were to be thinned with a thinning value of T=2, then the
+ following sequence numbers would be reported upon: 13,824, 13,828,
+ 13,832, 13,836, 13,840, 13,844, 13,848, 13,852, 13,856, 13,860,
+ 13,864. The thinned trace would be as follows:
+
+ 1 1 1 1 1 0 1 1 1 1 0
+
+ This could be encoded as follows:
+
+ bit vector 1111 1011 1100 000
+ null chunk
+
+ The last four bits in the bit vector, representing sequence numbers
+ 13,868, 13,872, 13,876, and 13,880, extend beyond the trace and are
+ thus set to zero and are ignored by the receiver. With thinning, the
+ loss of the 22nd packet goes unreported because its sequence number,
+ 13,842, is not a multiple of four. Packet receipts for all sequence
+ numbers that are not multiples of four also go unreported. However,
+ in this example thinning has permitted the Loss RLE Report Block to
+ be shortened by one 32 bit word.
+
+ Choice of the thinning value is left to the application.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 13]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The Loss RLE Report Block has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=1 | rsvd. | T | block length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC of source |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | begin_seq | end_seq |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | chunk 1 | chunk 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : ... :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | chunk n-1 | chunk n |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ block type (BT): 8 bits
+ A Loss RLE Report Block is identified by the constant 1.
+
+ rsvd.: 4 bits
+ This field is reserved for future definition. In the absence
+ of such definition, the bits in this field MUST be set to zero
+ and MUST be ignored by the receiver.
+
+ thinning (T): 4 bits
+ The amount of thinning performed on the sequence number space.
+ Only those packets with sequence numbers 0 mod 2^T are reported
+ on by this block. A value of 0 indicates that there is no
+ thinning, and all packets are reported on. The maximum
+ thinning is one packet in every 32,768 (amounting to two
+ packets within each 16-bit sequence space).
+
+ block length: 16 bits
+ Defined in Section 3.
+
+ SSRC of source: 32 bits
+ The SSRC of the RTP data packet source being reported upon by
+ this report block.
+
+ begin_seq: 16 bits
+ The first sequence number that this block reports on.
+
+ end_seq: 16 bits
+ The last sequence number that this block reports on plus one.
+
+
+
+
+
+Friedman, et al. Standards Track [Page 14]
+
+RFC 3611 RTCP XR November 2003
+
+
+ chunk i: 16 bits
+ There are three chunk types: run length, bit vector, and
+ terminating null, defined in the following sections. If the
+ chunk is all zeroes, then it is a terminating null chunk.
+ Otherwise, the left most bit of the chunk determines its type:
+ 0 for run length and 1 for bit vector.
+
+4.1.1. Run Length Chunk
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |C|R| run length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ chunk type (C): 1 bit
+ A zero identifies this as a run length chunk.
+
+ run type (R): 1 bit
+ Zero indicates a run of 0s. One indicates a run of 1s.
+
+ run length: 14 bits
+ A value between 1 and 16,383. The value MUST not be zero for a
+ run length chunk (zeroes in both the run type and run length
+ fields would make the chunk a terminating null chunk). Run
+ lengths of 15 or less MAY be described with a run length chunk
+ despite the fact that they could also be described as part of a
+ bit vector chunk.
+
+4.1.2. Bit Vector Chunk
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |C| bit vector |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ chunk type (C): 1 bit
+ A one identifies this as a bit vector chunk.
+
+ bit vector: 15 bits
+ The vector is read from left to right, in order of increasing
+ sequence number (with the appropriate allowance for
+ wraparound).
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 15]
+
+RFC 3611 RTCP XR November 2003
+
+
+4.1.3. Terminating Null Chunk
+
+ This chunk is all zeroes.
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+4.2. Duplicate RLE Report Block
+
+ This block type permits per-sequence-number reports on duplicates in
+ a source's RTP packet stream. Such information can be used for
+ network diagnosis, and provide an alternative to packet losses as a
+ basis for multicast tree topology inference.
+
+ The Duplicate RLE Report Block format is identical to the Loss RLE
+ Report Block format. Only the interpretation is different, in that
+ the information concerns packet duplicates rather than packet losses.
+ The trace to be encoded in this case also consists of zeros and ones,
+ but a zero here indicates the presence of duplicate packets for a
+ given sequence number, whereas a one indicates that no duplicates
+ were received.
+
+ The existence of a duplicate for a given sequence number is
+ determined over the entire reporting period. For example, if packet
+ number 12,593 arrives, followed by other packets with other sequence
+ numbers, the arrival later in the reporting period of another packet
+ numbered 12,593 counts as a duplicate for that sequence number. The
+ duplicate does not need to follow immediately upon the first packet
+ of that number. Care must be taken that a report does not cover a
+ range of 65,534 or greater in the sequence number space.
+
+ No distinction is made between the existence of a single duplicate
+ packet and multiple duplicate packets for a given sequence number.
+ Note also that since there is no duplicate for a lost packet, a loss
+ is encoded as a one in a Duplicate RLE Report Block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 16]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The Duplicate RLE Report Block has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=2 | rsvd. | T | block length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC of source |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | begin_seq | end_seq |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | chunk 1 | chunk 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : ... :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | chunk n-1 | chunk n |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ block type (BT): 8 bits
+ A Duplicate RLE Report Block is identified by the constant 2.
+
+ rsvd.: 4 bits
+ This field is reserved for future definition. In the absence
+ of such a definition, the bits in this field MUST be set to
+ zero and MUST be ignored by the receiver.
+
+ thinning (T): 4 bits
+ As defined in Section 4.1.
+
+ block length: 16 bits
+ Defined in Section 3.
+
+ SSRC of source: 32 bits
+ As defined in Section 4.1.
+
+ begin_seq: 16 bits
+ As defined in Section 4.1.
+
+ end_seq: 16 bits
+ As defined in Section 4.1.
+
+ chunk i: 16 bits
+ As defined in Section 4.1.
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 17]
+
+RFC 3611 RTCP XR November 2003
+
+
+4.3. Packet Receipt Times Report Block
+
+ This block type permits per-sequence-number reports on packet receipt
+ times for a given source's RTP packet stream. Such information can
+ be used for MINC inference of the topology of the multicast tree used
+ to distribute the source's RTP packets, and of the delays along the
+ links within that tree. It can also be used to measure partial path
+ characteristics and to model distributions for packet jitter.
+
+ Packet receipt times are expressed in the same units as in the RTP
+ timestamps of data packets. This is so that, for each packet, one
+ can establish both the send time and the receipt time in comparable
+ terms. Note, however, that as an RTP sender ordinarily initializes
+ its time to a value chosen at random, there can be no expectation
+ that reported send and receipt times will differ by an amount equal
+ to the one-way delay between sender and receiver. The reported times
+ can nonetheless be useful for the purposes mentioned above.
+
+ At least one packet MUST have been received for each sequence number
+ reported upon in this block. If this block type is used to report
+ receipt times for a series of sequence numbers that includes lost
+ packets, several blocks are required. If duplicate packets have been
+ received for a given sequence number, and those packets differ in
+ their receipt times, any time other than the earliest MUST NOT be
+ reported. This is to ensure consistency among reports.
+
+ Times reported in RTP timestamp format consume more bits than loss or
+ duplicate information, and do not lend themselves to run length
+ encoding. The use of thinning is encouraged to limit the size of
+ Packet Receipt Times Report Blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 18]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The Packet Receipt Times Report Block has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=3 | rsvd. | T | block length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC of source |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | begin_seq | end_seq |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Receipt time of packet begin_seq |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Receipt time of packet (begin_seq + 1) mod 65536 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : ... :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Receipt time of packet (end_seq - 1) mod 65536 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ block type (BT): 8 bits
+ A Packet Receipt Times Report Block is identified by the
+ constant 3.
+
+ rsvd.: 4 bits
+ This field is reserved for future definition. In the absence
+ of such a definition, the bits in this field MUST be set to
+ zero and MUST be ignored by the receiver.
+
+ thinning (T): 4 bits
+ As defined in Section 4.1.
+
+ block length: 16 bits
+ Defined in Section 3.
+
+ SSRC of source: 32 bits
+ As defined in Section 4.1.
+
+ begin_seq: 16 bits
+ As defined in Section 4.1.
+
+ end_seq: 16 bits
+ As defined in Section 4.1.
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 19]
+
+RFC 3611 RTCP XR November 2003
+
+
+ Packet i receipt time: 32 bits
+ The receipt time of the packet with sequence number i at the
+ receiver. The modular arithmetic shown in the packet format
+ diagram is to allow for sequence number rollover. It is
+ preferable for the time value to be established at the link
+ layer interface, or in any case as close as possible to the
+ wire arrival time. Units and format are the same as for the
+ timestamp in RTP data packets. As opposed to RTP data packet
+ timestamps, in which nominal values may be used instead of
+ system clock values in order to convey information useful for
+ periodic playout, the receipt times should reflect the actual
+ time as closely as possible. For a session, if the RTP
+ timestamp is chosen at random, the first receipt time value
+ SHOULD also be chosen at random, and subsequent timestamps
+ offset from this value. On the other hand, if the RTP
+ timestamp is meant to reflect the reference time at the sender,
+ then the receipt time SHOULD be as close as possible to the
+ reference time at the receiver.
+
+4.4. Receiver Reference Time Report Block
+
+ This block extends RTCP's timestamp reporting so that non-senders may
+ also send timestamps. It recapitulates the NTP timestamp fields from
+ the RTCP Sender Report [9, Sec. 6.3.1]. A non-sender may estimate
+ its round trip time (RTT) to other participants, as proposed in [18],
+ by sending this report block and receiving DLRR Report Blocks (see
+ next section) in reply.
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=4 | reserved | block length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | NTP timestamp, most significant word |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | NTP timestamp, least significant word |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ block type (BT): 8 bits
+ A Receiver Reference Time Report Block is identified by the
+ constant 4.
+
+ reserved: 8 bits
+ This field is reserved for future definition. In the absence
+ of such definition, the bits in this field MUST be set to zero
+ and MUST be ignored by the receiver.
+
+
+
+
+
+Friedman, et al. Standards Track [Page 20]
+
+RFC 3611 RTCP XR November 2003
+
+
+ block length: 16 bits
+ The constant 2, in accordance with the definition of this field
+ in Section 3.
+
+ NTP timestamp: 64 bits
+ Indicates the wallclock time when this block was sent so that
+ it may be used in combination with timestamps returned in DLRR
+ Report Blocks (see next section) from other receivers to
+ measure round-trip propagation to those receivers. Receivers
+ should expect that the measurement accuracy of the timestamp
+ may be limited to far less than the resolution of the NTP
+ timestamp. The measurement uncertainty of the timestamp is not
+ indicated as it may not be known. A report block sender that
+ can keep track of elapsed time but has no notion of wallclock
+ time may use the elapsed time since joining the session
+ instead. This is assumed to be less than 68 years, so the high
+ bit will be zero. It is permissible to use the sampling clock
+ to estimate elapsed wallclock time. A report sender that has
+ no notion of wallclock or elapsed time may set the NTP
+ timestamp to zero.
+
+4.5. DLRR Report Block
+
+ This block extends RTCP's delay since the last Sender Report (DLSR)
+ mechanism [9, Sec. 6.3.1] so that non-senders may also calculate
+ round trip times, as proposed in [18]. It is termed DLRR for delay
+ since the last Receiver Report, and may be sent in response to a
+ Receiver Timestamp Report Block (see previous section) from a
+ receiver to allow that receiver to calculate its round trip time to
+ the respondent. The report consists of one or more 3 word sub-
+ blocks: one sub-block per Receiver Report.
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=5 | reserved | block length |
+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+ | SSRC_1 (SSRC of first receiver) | sub-
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
+ | last RR (LRR) | 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | delay since last RR (DLRR) |
+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+ | SSRC_2 (SSRC of second receiver) | sub-
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
+ : ... : 2
+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+
+
+
+
+Friedman, et al. Standards Track [Page 21]
+
+RFC 3611 RTCP XR November 2003
+
+
+ block type (BT): 8 bits
+ A DLRR Report Block is identified by the constant 5.
+
+ reserved: 8 bits
+ This field is reserved for future definition. In the absence
+ of such definition, the bits in this field MUST be set to zero
+ and MUST be ignored by the receiver.
+
+ block length: 16 bits
+ Defined in Section 3.
+
+ last RR timestamp (LRR): 32 bits
+ The middle 32 bits out of 64 in the NTP timestamp (as explained
+ in the previous section), received as part of a Receiver
+ Reference Time Report Block from participant SSRC_n. If no
+ such block has been received, the field is set to zero.
+
+ delay since last RR (DLRR): 32 bits
+ The delay, expressed in units of 1/65536 seconds, between
+ receiving the last Receiver Reference Time Report Block from
+ participant SSRC_n and sending this DLRR Report Block. If a
+ Receiver Reference Time Report Block has yet to be received
+ from SSRC_n, the DLRR field is set to zero (or the DLRR is
+ omitted entirely). Let SSRC_r denote the receiver issuing this
+ DLRR Report Block. Participant SSRC_n can compute the round-
+ trip propagation delay to SSRC_r by recording the time A when
+ this Receiver Timestamp Report Block is received. It
+ calculates the total round-trip time A-LRR using the last RR
+ timestamp (LRR) field, and then subtracting this field to leave
+ the round-trip propagation delay as A-LRR-DLRR. This is
+ illustrated in [9, Fig. 2].
+
+4.6. Statistics Summary Report Block
+
+ This block reports statistics beyond the information carried in the
+ standard RTCP packet format, but is not as finely grained as that
+ carried in the report blocks previously described. Information is
+ recorded about lost packets, duplicate packets, jitter measurements,
+ and TTL or Hop Limit values. Such information can be useful for
+ network management.
+
+ The report block contents are dependent upon a series of flag bits
+ carried in the first part of the header. Not all parameters need to
+ be reported in each block. Flags indicate which are and which are
+ not reported. The fields corresponding to unreported parameters MUST
+ be present, but are set to zero. The receiver MUST ignore any
+ Statistics Summary Report Block with a non-zero value in any field
+ flagged as unreported.
+
+
+
+Friedman, et al. Standards Track [Page 22]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The Statistics Summary Report Block has the following format:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=6 |L|D|J|ToH|rsvd.| block length = 9 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC of source |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | begin_seq | end_seq |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | lost_packets |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | dup_packets |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | min_jitter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | max_jitter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mean_jitter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | dev_jitter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | min_ttl_or_hl | max_ttl_or_hl |mean_ttl_or_hl | dev_ttl_or_hl |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ block type (BT): 8 bits
+ A Statistics Summary Report Block is identified by the constant
+ 6.
+
+ loss report flag (L): 1 bit
+ Bit set to 1 if the lost_packets field contains a report, 0
+ otherwise.
+
+ duplicate report flag (D): 1 bit
+ Bit set to 1 if the dup_packets field contains a report, 0
+ otherwise.
+
+ jitter flag (J): 1 bit
+ Bit set to 1 if the min_jitter, max_jitter, mean_jitter, and
+ dev_jitter fields all contain reports, 0 if none of them do.
+
+ TTL or Hop Limit flag (ToH): 2 bits
+ This field is set to 0 if none of the fields min_ttl_or_hl,
+ max_ttl_or_hl, mean_ttl_or_hl, or dev_ttl_or_hl contain
+ reports. If the field is non-zero, then all of these fields
+ contain reports. The value 1 signifies that they report on
+ IPv4 TTL values. The value 2 signifies that they report on
+
+
+
+Friedman, et al. Standards Track [Page 23]
+
+RFC 3611 RTCP XR November 2003
+
+
+ IPv6 Hop Limit values. The value 3 is undefined and MUST NOT
+ be used.
+
+ rsvd.: 3 bits
+ This field is reserved for future definition. In the absence
+ of such a definition, the bits in this field MUST be set to
+ zero and MUST be ignored by the receiver.
+
+ block length: 16 bits
+ The constant 9, in accordance with the definition of this field
+ in Section 3.
+
+ SSRC of source: 32 bits
+ As defined in Section 4.1.
+
+ begin_seq: 16 bits
+ As defined in Section 4.1.
+
+ end_seq: 16 bits
+ As defined in Section 4.1.
+
+ lost_packets: 32 bits
+ Number of lost packets in the above sequence number interval.
+
+ dup_packets: 32 bits
+ Number of duplicate packets in the above sequence number
+ interval.
+
+ min_jitter: 32 bits
+ The minimum relative transit time between two packets in the
+ above sequence number interval. All jitter values are measured
+ as the difference between a packet's RTP timestamp and the
+ reporter's clock at the time of arrival, measured in the same
+ units.
+
+ max_jitter: 32 bits
+ The maximum relative transit time between two packets in the
+ above sequence number interval.
+
+ mean_jitter: 32 bits
+ The mean relative transit time between each two packet series
+ in the above sequence number interval, rounded to the nearest
+ value expressible as an RTP timestamp.
+
+ dev_jitter: 32 bits
+ The standard deviation of the relative transit time between
+ each two packet series in the above sequence number interval.
+
+
+
+
+Friedman, et al. Standards Track [Page 24]
+
+RFC 3611 RTCP XR November 2003
+
+
+ min_ttl_or_hl: 8 bits
+ The minimum TTL or Hop Limit value of data packets in the
+ sequence number range.
+
+ max_ttl_or_hl: 8 bits
+ The maximum TTL or Hop Limit value of data packets in the
+ sequence number range.
+
+ mean_ttl_or_hl: 8 bits
+ The mean TTL or Hop Limit value of data packets in the sequence
+ number range, rounded to the nearest integer.
+
+ dev_ttl_or_hl: 8 bits
+ The standard deviation of TTL or Hop Limit values of data
+ packets in the sequence number range.
+
+4.7. VoIP Metrics Report Block
+
+ The VoIP Metrics Report Block provides metrics for monitoring voice
+ over IP (VoIP) calls. These metrics include packet loss and discard
+ metrics, delay metrics, analog metrics, and voice quality metrics.
+ The block reports separately on packets lost on the IP channel, and
+ those that have been received but then discarded by the receiving
+ jitter buffer. It also reports on the combined effect of losses and
+ discards, as both have equal effect on call quality.
+
+ In order to properly assess the quality of a Voice over IP call, it
+ is desirable to consider the degree of burstiness of packet loss
+ [14]. Following a Gilbert-Elliott model [3], a period of time,
+ bounded by lost and/or discarded packets with a high rate of losses
+ and/or discards, is a "burst", and a period of time between two
+ bursts is a "gap". Bursts correspond to periods of time during which
+ the packet loss rate is high enough to produce noticeable degradation
+ in audio quality. Gaps correspond to periods of time during which
+ only isolated lost packets may occur, and in general these can be
+ masked by packet loss concealment. Delay reports include the transit
+ delay between RTP end points and the VoIP end system processing
+ delays, both of which contribute to the user perceived delay.
+ Additional metrics include signal, echo, noise, and distortion
+ levels. Call quality metrics include R factors (as described by the
+ E Model defined in [6,3]) and mean opinion scores (MOS scores).
+
+ Implementations MUST provide values for all the fields defined here.
+ For certain metrics, if the value is undefined or unknown, then the
+ specified default or unknown field value MUST be provided.
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 25]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The block is encoded as seven 32-bit words:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=7 | reserved | block length = 8 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC of source |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | loss rate | discard rate | burst density | gap density |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | burst duration | gap duration |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | round trip delay | end system delay |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | signal level | noise level | RERL | Gmin |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | R factor | ext. R factor | MOS-LQ | MOS-CQ |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | RX config | reserved | JB nominal |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | JB maximum | JB abs max |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ block type (BT): 8 bits
+ A VoIP Metrics Report Block is identified by the constant 7.
+
+ reserved: 8 bits
+ This field is reserved for future definition. In the absence
+ of such a definition, the bits in this field MUST be set to
+ zero and MUST be ignored by the receiver.
+
+ block length: 16 bits
+ The constant 8, in accordance with the definition of this field
+ in Section 3.
+
+ SSRC of source: 32 bits
+ As defined in Section 4.1.
+
+ The remaining fields are described in the following six sections:
+ Packet Loss and Discard Metrics, Delay Metrics, Signal Related
+ Metrics, Call Quality or Transmission Quality Metrics, Configuration
+ Metrics, and Jitter Buffer Parameters.
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 26]
+
+RFC 3611 RTCP XR November 2003
+
+
+4.7.1. Packet Loss and Discard Metrics
+
+ It is very useful to distinguish between packets lost by the network
+ and those discarded due to jitter. Both have equal effect on the
+ quality of the voice stream, however, having separate counts helps
+ identify the source of quality degradation. These fields MUST be
+ populated, and MUST be set to zero if no packets have been received.
+
+ loss rate: 8 bits
+ The fraction of RTP data packets from the source lost since the
+ beginning of reception, expressed as a fixed point number with
+ the binary point at the left edge of the field. This value is
+ calculated by dividing the total number of packets lost (after
+ the effects of applying any error protection such as FEC) by
+ the total number of packets expected, multiplying the result of
+ the division by 256, limiting the maximum value to 255 (to
+ avoid overflow), and taking the integer part. The numbers of
+ duplicated packets and discarded packets do not enter into this
+ calculation. Since receivers cannot be required to maintain
+ unlimited buffers, a receiver MAY categorize late-arriving
+ packets as lost. The degree of lateness that triggers a loss
+ SHOULD be significantly greater than that which triggers a
+ discard.
+
+ discard rate: 8 bits
+ The fraction of RTP data packets from the source that have been
+ discarded since the beginning of reception, due to late or
+ early arrival, under-run or overflow at the receiving jitter
+ buffer. This value is expressed as a fixed point number with
+ the binary point at the left edge of the field. It is
+ calculated by dividing the total number of packets discarded
+ (excluding duplicate packet discards) by the total number of
+ packets expected, multiplying the result of the division by
+ 256, limiting the maximum value to 255 (to avoid overflow), and
+ taking the integer part.
+
+4.7.2. Burst Metrics
+
+ A burst is a period during which a high proportion of packets are
+ either lost or discarded due to late arrival. A burst is defined, in
+ terms of a value Gmin, as the longest sequence that (a) starts with a
+ lost or discarded packet, (b) does not contain any occurrences of
+ Gmin or more consecutively received (and not discarded) packets, and
+ (c) ends with a lost or discarded packet.
+
+ A gap, informally, is a period of low packet losses and/or discards.
+ Formally, a gap is defined as any of the following: (a) the period
+ from the start of an RTP session to the receipt time of the last
+
+
+
+Friedman, et al. Standards Track [Page 27]
+
+RFC 3611 RTCP XR November 2003
+
+
+ received packet before the first burst, (b) the period from the end
+ of the last burst to either the time of the report or the end of the
+ RTP session, whichever comes first, or (c) the period of time between
+ two bursts.
+
+ For the purpose of determining if a lost or discarded packet near the
+ start or end of an RTP session is within a gap or a burst, it is
+ assumed that the RTP session is preceded and followed by at least
+ Gmin received packets, and that the time of the report is followed by
+ at least Gmin received packets.
+
+ A gap has the property that any lost or discarded packets within the
+ gap must be preceded and followed by at least Gmin packets that were
+ received and not discarded. This gives a maximum loss/discard rate
+ within a gap of: 1 / (Gmin + 1).
+
+ A Gmin value of 16 is RECOMMENDED, as it results in gap
+ characteristics that correspond to good quality (i.e., low packet
+ loss rate, a minimum distance of 16 received packets between lost
+ packets), and hence differentiates nicely between good and poor
+ quality periods.
+
+ For example, a 1 denotes a received packet, 0 a lost packet, and X a
+ discarded packet in the following pattern covering 64 packets:
+
+ 11110111111111111111111X111X1011110111111111111111111X111111111
+ |---------gap----------|--burst---|------------gap------------|
+
+ The burst consists of the twelve packets indicated above, starting at
+ a discarded packet and ending at a lost packet. The first gap starts
+ at the beginning of the session and the second gap ends at the time
+ of the report.
+
+ If the packet spacing is 10 ms and the Gmin value is the recommended
+ value of 16, the burst duration is 120 ms, the burst density 0.33,
+ the gap duration 230 ms + 290 ms = 520 ms, and the gap density 0.04.
+
+ This would result in reported values as follows (see field
+ descriptions for semantics and details on how these are calculated):
+
+ loss rate 12, which corresponds to 5%
+ discard rate 12, which corresponds to 5%
+ burst density 84, which corresponds to 33%
+ gap density 10, which corresponds to 4%
+ burst duration 120, value in milliseconds
+ gap duration 520, value in milliseconds
+
+
+
+
+
+Friedman, et al. Standards Track [Page 28]
+
+RFC 3611 RTCP XR November 2003
+
+
+ burst density: 8 bits
+ The fraction of RTP data packets within burst periods since the
+ beginning of reception that were either lost or discarded.
+ This value is expressed as a fixed point number with the binary
+ point at the left edge of the field. It is calculated by
+ dividing the total number of packets lost or discarded
+ (excluding duplicate packet discards) within burst periods by
+ the total number of packets expected within the burst periods,
+ multiplying the result of the division by 256, limiting the
+ maximum value to 255 (to avoid overflow), and taking the
+ integer part. This field MUST be populated and MUST be set to
+ zero if no packets have been received.
+
+ gap density: 8 bits
+ The fraction of RTP data packets within inter-burst gaps since
+ the beginning of reception that were either lost or discarded.
+ The value is expressed as a fixed point number with the binary
+ point at the left edge of the field. It is calculated by
+ dividing the total number of packets lost or discarded
+ (excluding duplicate packet discards) within gap periods by the
+ total number of packets expected within the gap periods,
+ multiplying the result of the division by 256, limiting the
+ maximum value to 255 (to avoid overflow), and taking the
+ integer part. This field MUST be populated and MUST be set to
+ zero if no packets have been received.
+
+ burst duration: 16 bits
+ The mean duration, expressed in milliseconds, of the burst
+ periods that have occurred since the beginning of reception.
+ The duration of each period is calculated based upon the
+ packets that mark the beginning and end of that period. It is
+ equal to the timestamp of the end packet, plus the duration of
+ the end packet, minus the timestamp of the beginning packet.
+ If the actual values are not available, estimated values MUST
+ be used. If there have been no burst periods, the burst
+ duration value MUST be zero.
+
+ gap duration: 16 bits
+ The mean duration, expressed in milliseconds, of the gap
+ periods that have occurred since the beginning of reception.
+ The duration of each period is calculated based upon the packet
+ that marks the end of the prior burst and the packet that marks
+ the beginning of the subsequent burst. It is equal to the
+ timestamp of the subsequent burst packet, minus the timestamp
+ of the prior burst packet, plus the duration of the prior burst
+ packet. If the actual values are not available, estimated
+ values MUST be used. In the case of a gap that occurs at the
+ beginning of reception, the sum of the timestamp of the prior
+
+
+
+Friedman, et al. Standards Track [Page 29]
+
+RFC 3611 RTCP XR November 2003
+
+
+ burst packet and the duration of the prior burst packet are
+ replaced by the reception start time. In the case of a gap
+ that occurs at the end of reception, the timestamp of the
+ subsequent burst packet is replaced by the reception end time.
+ If there have been no gap periods, the gap duration value MUST
+ be zero.
+
+4.7.3. Delay Metrics
+
+ For the purpose of the following definitions, the RTP interface is
+ the interface between the RTP instance and the voice application
+ (i.e., FEC, de-interleaving, de-multiplexing, jitter buffer). For
+ example, the time delay due to RTP payload multiplexing would be
+ considered part of the voice application or end-system delay, whereas
+ delay due to multiplexing RTP frames within a UDP frame would be
+ considered part of the RTP reported delay. This distinction is
+ consistent with the use of RTCP for delay measurements.
+
+ round trip delay: 16 bits
+ The most recently calculated round trip time between RTP
+ interfaces, expressed in milliseconds. This value MAY be
+ measured using RTCP, the DLRR method defined in Section 4.5 of
+ this document, where it is necessary to convert the units of
+ measurement from NTP timestamp values to milliseconds, or other
+ approaches. If RTCP is used, then the reported delay value is
+ the time of receipt of the most recent RTCP packet from source
+ SSRC, minus the LSR (last SR) time reported in its SR (Sender
+ Report), minus the DLSR (delay since last SR) reported in its
+ SR. A non-zero LSR value is required in order to calculate
+ round trip delay. A value of 0 is permissible; however, this
+ field MUST be populated as soon as a delay estimate is
+ available.
+
+ end system delay: 16 bits
+ The most recently estimated end system delay, expressed in
+ milliseconds. End system delay is defined as the sum of the
+ total sample accumulation and encoding delay associated with
+ the sending direction and the jitter buffer, decoding, and
+ playout buffer delay associated with the receiving direction.
+ This delay MAY be estimated or measured. This value SHOULD be
+ provided in all VoIP metrics reports. If an implementation is
+ unable to provide the data, the value 0 MUST be used.
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 30]
+
+RFC 3611 RTCP XR November 2003
+
+
+ Note that the one way symmetric VoIP segment delay may be calculated
+ from the round trip and end system delays is as follows; if the round
+ trip delay is denoted, RTD and the end system delays associated with
+ the two endpoints are ESD(A) and ESD(B) then:
+
+ one way symmetric voice path delay = ( RTD + ESD(A) + ESD(B) ) / 2
+
+4.7.4. Signal Related Metrics
+
+ The following metrics are intended to provide real time information
+ related to the non-packet elements of the voice over IP system to
+ assist with the identification of problems affecting call quality.
+ The values identified below must be determined for the received audio
+ signal. The information required to populate these fields may not be
+ available in all systems, although it is strongly recommended that
+ this data SHOULD be provided to support problem diagnosis.
+
+ signal level: 8 bits
+ The voice signal relative level is defined as the ratio of the
+ signal level to a 0 dBm0 reference [10], expressed in decibels
+ as a signed integer in two's complement form. This is measured
+ only for packets containing speech energy. The intent of this
+ metric is not to provide a precise measurement of the signal
+ level but to provide a real time indication that the signal
+ level may be excessively high or low.
+
+ signal level = 10 Log10 ( rms talkspurt power (mW) )
+
+ A value of 127 indicates that this parameter is unavailable.
+ Typical values should generally be in the -15 to -20 dBm range.
+
+ noise level: 8 bits
+ The noise level is defined as the ratio of the silent period
+ background noise level to a 0 dBm0 reference, expressed in
+ decibels as a signed integer in two's complement form.
+
+ noise level = 10 Log10 ( rms silence power (mW) )
+
+ A value of 127 indicates that this parameter is unavailable.
+
+ residual echo return loss (RERL): 8 bits
+ The residual echo return loss value may be measured directly by
+ the VoIP end system's echo canceller or may be estimated by
+ adding the echo return loss (ERL) and echo return loss
+ enhancement (ERLE) values reported by the echo canceller.
+
+ RERL(dB) = ERL (dB) + ERLE (dB)
+
+
+
+
+Friedman, et al. Standards Track [Page 31]
+
+RFC 3611 RTCP XR November 2003
+
+
+ In the case of a VoIP gateway, the source of echo is typically
+ line echo that occurs at 2-4 wire conversion points in the
+ network. This can be in the 8-12 dB range. A line echo
+ canceler can provide an ERLE of 30 dB or more and hence reduce
+ this to 40-50 dB. In the case of an IP phone, this could be
+ acoustic coupling between handset speaker and microphone or
+ residual acoustic echo from speakerphone operation, and may
+ more correctly be termed terminal coupling loss (TCL). A
+ typical handset would result in 40-50 dB of echo loss due to
+ acoustic feedback.
+
+ Examples:
+
+ - IP gateway connected to circuit switched network with 2 wire
+ loop. Without echo cancellation, typical 2-4 wire converter
+ ERL of 12 dB. RERL = ERL + ERLE = 12 + 0 = 12 dB.
+
+ - IP gateway connected to circuit switched network with 2 wire
+ loop. With echo canceler that improves echo by 30 dB.
+ RERL = ERL + ERLE = 12 + 30 = 42 dB.
+
+ - IP phone with conventional handset. Acoustic coupling from
+ handset speaker to microphone (terminal coupling loss) is
+ typically 40 dB. RERL = TCL = 40 dB.
+
+ If we denote the local end of the VoIP path as A and the remote
+ end as B, and if the sender loudness rating (SLR) and receiver
+ loudness rating (RLR) are known for A (default values 8 dB and
+ 2 dB respectively), then the echo loudness level at end A
+ (talker echo loudness rating or TELR) is given by:
+
+ TELR(A) = SRL(A) + ERL(B) + ERLE(B) + RLR(A)
+
+ TELR(B) = SRL(B) + ERL(A) + ERLE(A) + RLR(B)
+
+ Hence, in order to incorporate echo into a voice quality
+ estimate at the A end of a VoIP connection, it is desirable to
+ send the ERL + ERLE value from B to A using a format such as
+ RTCP XR.
+
+ Echo related information may not be available in all VoIP end
+ systems. As echo does have a significant effect on
+ conversational quality, it is recommended that estimated values
+ for echo return loss and terminal coupling loss be provided (if
+ sensible estimates can be reasonably determined).
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 32]
+
+RFC 3611 RTCP XR November 2003
+
+
+ Typical values for end systems are given below to provide
+ guidance:
+
+ - IP Phone with handset: typically 45 dB.
+
+ - PC softphone or speakerphone: extremely variable, consider
+ reporting "undefined" (127).
+
+ - IP gateway with line echo canceller: typically has ERL and
+ ERLE available.
+
+ - IP gateway without line echo canceller: frequently a source
+ of echo related problems, consider reporting either a low
+ value (12 dB) or "undefined" (127).
+
+ Gmin
+ See Configuration Parameters (Section 4.7.6, below).
+
+4.7.5. Call Quality or Transmission Quality Metrics
+
+ The following metrics are direct measures of the call quality or
+ transmission quality, and incorporate the effects of codec type,
+ packet loss, discard, burstiness, delay etc. These metrics may not
+ be available in all systems, however, they SHOULD be provided in
+ order to support problem diagnosis.
+
+ R factor: 8 bits
+ The R factor is a voice quality metric describing the segment
+ of the call that is carried over this RTP session. It is
+ expressed as an integer in the range 0 to 100, with a value of
+ 94 corresponding to "toll quality" and values of 50 or less
+ regarded as unusable. This metric is defined as including the
+ effects of delay, consistent with ITU-T G.107 [6] and ETSI TS
+ 101 329-5 [3].
+
+ A value of 127 indicates that this parameter is unavailable.
+ Values other than 127 and the valid range defined above MUST
+ not be sent and MUST be ignored by the receiving system.
+
+ ext. R factor: 8 bits
+ The external R factor is a voice quality metric describing the
+ segment of the call that is carried over a network segment
+ external to the RTP segment, for example a cellular network.
+ Its values are interpreted in the same manner as for the RTP R
+ factor. This metric is defined as including the effects of
+ delay, consistent with ITU-T G.107 [6] and ETSI TS 101 329-5
+ [3], and relates to the outward voice path from the Voice over
+ IP termination for which this metrics block applies.
+
+
+
+Friedman, et al. Standards Track [Page 33]
+
+RFC 3611 RTCP XR November 2003
+
+
+ A value of 127 indicates that this parameter is unavailable.
+ Values other than 127 and the valid range defined above MUST
+ not be sent and MUST be ignored by the receiving system.
+
+ Note that an overall R factor may be estimated from the RTP segment R
+ factor and the external R factor, as follows:
+
+ R total = RTP R factor + ext. R factor - 94
+
+ MOS-LQ: 8 bits
+ The estimated mean opinion score for listening quality (MOS-LQ)
+ is a voice quality metric on a scale from 1 to 5, in which 5
+ represents excellent and 1 represents unacceptable. This
+ metric is defined as not including the effects of delay and can
+ be compared to MOS scores obtained from listening quality (ACR)
+ tests. It is expressed as an integer in the range 10 to 50,
+ corresponding to MOS x 10. For example, a value of 35 would
+ correspond to an estimated MOS score of 3.5.
+
+ A value of 127 indicates that this parameter is unavailable.
+ Values other than 127 and the valid range defined above MUST
+ not be sent and MUST be ignored by the receiving system.
+
+ MOS-CQ: 8 bits
+ The estimated mean opinion score for conversational quality
+ (MOS-CQ) is defined as including the effects of delay and other
+ effects that would affect conversational quality. The metric
+ may be calculated by converting an R factor determined
+ according to ITU-T G.107 [6] or ETSI TS 101 329-5 [3] into an
+ estimated MOS using the equation specified in G.107. It is
+ expressed as an integer in the range 10 to 50, corresponding to
+ MOS x 10, as for MOS-LQ.
+
+ A value of 127 indicates that this parameter is unavailable.
+ Values other than 127 and the valid range defined above MUST
+ not be sent and MUST be ignored by the receiving system.
+
+4.7.6. Configuration Parameters
+
+ Gmin: 8 bits
+ The gap threshold. This field contains the value used for this
+ report block to determine if a gap exists. The recommended
+ value of 16 corresponds to a burst period having a minimum
+ density of 6.25% of lost or discarded packets, which may cause
+ noticeable degradation in call quality; during gap periods, if
+ packet loss or discard occurs, each lost or discarded packet
+ would be preceded by and followed by a sequence of at least 16
+ received non-discarded packets. Note that lost or discarded
+
+
+
+Friedman, et al. Standards Track [Page 34]
+
+RFC 3611 RTCP XR November 2003
+
+
+ packets that occur within Gmin packets of a report being
+ generated may be reclassified as part of a burst or gap in
+ later reports. ETSI TS 101 329-5 [3] defines a computationally
+ efficient algorithm for measuring burst and gap density using a
+ packet loss/discard event driven approach. This algorithm is
+ reproduced in Appendix A.2 of the present document. Gmin MUST
+ not be zero, MUST be provided, and MUST remain constant across
+ VoIP Metrics report blocks for the duration of the RTP session.
+
+ receiver configuration byte (RX config): 8 bits
+ This byte consists of the following fields:
+
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ |PLC|JBA|JB rate|
+ +-+-+-+-+-+-+-+-+
+
+ packet loss concealment (PLC): 2 bits
+ Standard (11) / enhanced (10) / disabled (01) / unspecified
+ (00). When PLC = 11, then a simple replay or interpolation
+ algorithm is being used to fill-in the missing packet; this
+ approach is typically able to conceal isolated lost packets at
+ low packet loss rates. When PLC = 10, then an enhanced
+ interpolation algorithm is being used; algorithms of this type
+ are able to conceal high packet loss rates effectively. When
+ PLC = 01, then silence is being inserted in place of lost
+ packets. When PLC = 00, then no information is available
+ concerning the use of PLC; however, for some codecs this may be
+ inferred.
+
+ jitter buffer adaptive (JBA): 2 bits
+ Adaptive (11) / non-adaptive (10) / reserved (01)/ unknown
+ (00). When the jitter buffer is adaptive, then its size is
+ being dynamically adjusted to deal with varying levels of
+ jitter. When non-adaptive, the jitter buffer size is
+ maintained at a fixed level. When either adaptive or non-
+ adaptive modes are specified, then the jitter buffer size
+ parameters below MUST be specified.
+
+ jitter buffer rate (JB rate): 4 bits
+ J = adjustment rate (0-15). This represents the implementation
+ specific adjustment rate of a jitter buffer in adaptive mode.
+ This parameter is defined in terms of the approximate time
+ taken to fully adjust to a step change in peak to peak jitter
+ from 30 ms to 100 ms such that:
+
+ adjustment time = 2 * J * frame size (ms)
+
+
+
+
+Friedman, et al. Standards Track [Page 35]
+
+RFC 3611 RTCP XR November 2003
+
+
+ This parameter is intended only to provide a guide to the
+ degree of "aggressiveness" of an adaptive jitter buffer and may
+ be estimated. A value of 0 indicates that the adjustment time
+ is unknown for this implementation.
+
+ reserved: 8 bits
+ This field is reserved for future definition. In the absence
+ of such a definition, the bits in this field MUST be set to
+ zero and MUST be ignored by the receiver.
+
+4.7.7. Jitter Buffer Parameters
+
+ The values reported in these fields SHOULD be the most recently
+ obtained values at the time of reporting.
+
+ jitter buffer nominal delay (JB nominal): 16 bits
+ This is the current nominal jitter buffer delay in
+ milliseconds, which corresponds to the nominal jitter buffer
+ delay for packets that arrive exactly on time. This parameter
+ MUST be provided for both fixed and adaptive jitter buffer
+ implementations.
+
+ jitter buffer maximum delay (JB maximum): 16 bits
+ This is the current maximum jitter buffer delay in milliseconds
+ which corresponds to the earliest arriving packet that would
+ not be discarded. In simple queue implementations this may
+ correspond to the nominal size. In adaptive jitter buffer
+ implementations, this value may dynamically vary up to JB abs
+ max (see below). This parameter MUST be provided for both
+ fixed and adaptive jitter buffer implementations.
+
+ jitter buffer absolute maximum delay (JB abs max): 16 bits
+ This is the absolute maximum delay in milliseconds that the
+ adaptive jitter buffer can reach under worst case conditions.
+ If this value exceeds 65535 milliseconds, then this field SHALL
+ convey the value 65535. This parameter MUST be provided for
+ adaptive jitter buffer implementations and its value MUST be
+ set to JB maximum for fixed jitter buffer implementations.
+
+5. SDP Signaling
+
+ This section defines Session Description Protocol (SDP) [4] signaling
+ for XR blocks that can be employed by applications that utilize SDP.
+ This signaling is defined to be used either by applications that
+ implement the SDP Offer/Answer model [8] or by applications that use
+ SDP to describe media and transport configurations in connection
+
+
+
+
+
+Friedman, et al. Standards Track [Page 36]
+
+RFC 3611 RTCP XR November 2003
+
+
+ with such protocols as the Session Announcement Protocol (SAP) [15]
+ or the Real Time Streaming Protocol (RTSP) [17]. There exist other
+ potential signaling methods that are not defined here.
+
+ The XR blocks MAY be used without prior signaling. This is
+ consistent with the rules governing other RTCP packet types, as
+ described in [9]. An example in which signaling would not be used is
+ an application that always requires the use of one or more XR blocks.
+ However, for applications that are configured at session initiation,
+ the use of some type of signaling is recommended.
+
+ Note that, although the use of SDP signaling for XR blocks may be
+ optional, if used, it MUST be used as defined here. If SDP signaling
+ is used in an environment where XR blocks are only implemented by
+ some fraction of the participants, the ones not implementing the XR
+ blocks will ignore the SDP attribute.
+
+5.1. The SDP Attribute
+
+ This section defines one new SDP attribute "rtcp-xr" that can be used
+ to signal participants in a media session that they should use the
+ specified XR blocks. This attribute can be easily extended in the
+ future with new parameters to cover any new report blocks.
+
+ The RTCP XR blocks SDP attribute is defined below in Augmented
+ Backus-Naur Form (ABNF) [2]. It is both a session and a media level
+ attribute. When specified at session level, it applies to all media
+ level blocks in the session. Any media level specification MUST
+ replace a session level specification, if one is present, for that
+ media block.
+
+ rtcp-xr-attrib = "a=" "rtcp-xr" ":" [xr-format *(SP xr-format)] CRLF
+
+ xr-format = pkt-loss-rle
+ / pkt-dup-rle
+ / pkt-rcpt-times
+ / rcvr-rtt
+ / stat-summary
+ / voip-metrics
+ / format-ext
+
+ pkt-loss-rle = "pkt-loss-rle" ["=" max-size]
+ pkt-dup-rle = "pkt-dup-rle" ["=" max-size]
+ pkt-rcpt-times = "pkt-rcpt-times" ["=" max-size]
+ rcvr-rtt = "rcvr-rtt" "=" rcvr-rtt-mode [":" max-size]
+ rcvr-rtt-mode = "all"
+ / "sender"
+ stat-summary = "stat-summary" ["=" stat-flag *("," stat-flag)]
+
+
+
+Friedman, et al. Standards Track [Page 37]
+
+RFC 3611 RTCP XR November 2003
+
+
+ stat-flag = "loss"
+ / "dup"
+ / "jitt"
+ / "TTL"
+ / "HL"
+ voip-metrics = "voip-metrics"
+ max-size = 1*DIGIT ; maximum block size in octets
+ DIGIT = %x30-39
+ format-ext = non-ws-string
+
+ non-ws-string = 1*(%x21-FF)
+ CRLF = %d13.10
+
+ The "rtcp-xr" attribute contains zero, one, or more XR block related
+ parameters. Each parameter signals functionality for an XR block, or
+ a group of XR blocks. The attribute is extensible so that parameters
+ can be defined for any future XR block (and a parameter should be
+ defined for every future block).
+
+ Each "rtcp-xr" parameter belongs to one of two categories. The first
+ category, the unilateral parameters, are for report blocks that
+ simply report on the RTP stream and related metrics. The second
+ category, collaborative parameters, are for XR blocks that involve
+ actions by more than one party in order to carry out their functions.
+
+ Round trip time (RTT) measurement is an example of collaborative
+ functionality. An RTP data packet receiver sends a Receiver
+ Reference Time Report Block (Section 4.4). A participant that
+ receives this block sends a DLRR Report Block (Section 4.5) in
+ response, allowing the receiver to calculate its RTT to that
+ participant. As this example illustrates, collaborative
+ functionality may be implemented by two or more different XR blocks.
+ The collaborative functionality of several XR blocks may be governed
+ by a single "rtcp-xr" parameter.
+
+ For the unilateral category, this document defines the following
+ parameters. The parameter names and their corresponding XR formats
+ are as follows:
+
+ Parameter name XR block (block type and name)
+ -------------- ------------------------------------
+ pkt-loss-rle 1 Loss RLE Report Block
+ pkt-dup-rle 2 Duplicate RLE Report Block
+ pkt-rcpt-times 3 Packet Receipt Times Report Block
+ stat-summary 6 Statistics Summary Report Block
+ voip-metrics 7 VoIP Metrics Report Block
+
+
+
+
+
+Friedman, et al. Standards Track [Page 38]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The "pkt-loss-rle", "pkt-dup-rle", and "pkt-rcpt-times" parameters
+ MAY specify an integer value. This value indicates the largest size
+ the whole report block SHOULD have in octets. This shall be seen as
+ an indication that thinning shall be applied if necessary to meet the
+ target size.
+
+ The "stat-summary" parameter contains a list indicating which fields
+ SHOULD be included in the Statistics Summary report blocks that are
+ sent. The list is a comma separated list, containing one or more
+ field indicators. The space character (0x20) SHALL NOT be present
+ within the list. Field indicators represent the flags defined in
+ Section 4.6. The field indicators and their respective flags are as
+ follows:
+
+ Indicator Flag
+ --------- ---------------------------
+ loss loss report flag (L)
+ dup duplicate report flag (D)
+ jitt jitter flag (J)
+ TTL TTL or Hop Limit flag (ToH)
+ HL TTL or Hop Limit flag (ToH)
+
+ For "loss", "dup", and "jitt", the presence of the indicator
+ indicates that the corresponding flag should be set to 1 in the
+ Statistics Summary report blocks that are sent. The presence of
+ "TTL" indicates that the corresponding flag should be set to 1. The
+ presence of "HL" indicates that the corresponding flag should be set
+ to 2. The indicators "TTL" and "HL" MUST NOT be signaled together.
+
+ Blocks in the collaborative category are classified as initiator
+ blocks or response blocks. Signaling SHOULD indicate which
+ participants are required to respond to the initiator block. A party
+ that wishes to receive response blocks from those participants can
+ trigger this by sending an initiator block.
+
+ The collaborative category currently consists only of one
+ functionality, namely the RTT measurement mechanism for RTP data
+ receivers. The collective functionality of the Receiver Reference
+ Time Report Block and DLRR Report Block is represented by the "rcvr-
+ rtt" parameter. This parameter takes as its arguments a mode value
+ and, optionally, a maximum size for the DLRR report block. The mode
+ value "all" indicates that both RTP data senders and data receivers
+ MAY send DLRR blocks, while the mode value "sender" indicates that
+ only active RTP senders MAY send DLRR blocks, i.e., non RTP senders
+ SHALL NOT send DLRR blocks. If a maximum size in octets is included,
+ any DLRR Report Blocks that are sent SHALL NOT exceed the specified
+ size. If size limitations mean that a DLRR Report Block sender
+ cannot report in one block upon all participants from which it has
+
+
+
+Friedman, et al. Standards Track [Page 39]
+
+RFC 3611 RTCP XR November 2003
+
+
+ received a Receiver Reference Time Report Block then it SHOULD report
+ on participants in a round robin fashion across several report
+ intervals.
+
+ The "rtcp-xr" attributes parameter list MAY be empty. This is useful
+ in cases in which an application needs to signal that it understands
+ the SDP signaling but does not wish to avail itself of XR
+ functionality. For example, an application in a SIP controlled
+ session could signal that it wishes to stop using all XR blocks by
+ removing all applicable SDP parameters in a re-INVITE message that it
+ sends. If XR blocks are not to be used at all from the beginning of
+ a session, it is RECOMMENDED that the "rtcp-xr" attribute not be
+ supplied at all.
+
+ When the "rtcp-xr" attribute is present, participants SHOULD NOT send
+ XR blocks other than the ones indicated by the parameters. This
+ means that inclusion of a "rtcp-xr" attribute without any parameters
+ tells a participant that it SHOULD NOT send any XR blocks at all.
+ The purpose is to conserve bandwidth. This is especially important
+ when collaborative parameters are applied to a large multicast group:
+ the sending of an initiator block could potentially trigger responses
+ from all participants. There are, however, contexts in which it
+ makes sense to send an XR block in the absence of a parameter
+ signaling its use. For instance, an application might be designed so
+ as to send certain report blocks without negotiation, while using SDP
+ signaling to negotiate the use of other blocks.
+
+5.2. Usage in Offer/Answer
+
+ In the Offer/Answer context [8], the interpretation of SDP signaling
+ for XR packets depends upon the direction attribute that is signaled:
+ "recvonly", "sendrecv", or "sendonly" [4]. If no direction attribute
+ is supplied, then "sendrecv" is assumed. This section applies only
+ to unicast media streams, except where noted. Discussion of
+ unilateral parameters is followed by discussion of collaborative
+ parameters in this section.
+
+ For "sendonly" and "sendrecv" media stream offers that specify
+ unilateral "rtcp-xr" attribute parameters, the answerer SHOULD send
+ the corresponding XR blocks. For "sendrecv" offers, the answerer MAY
+ include the "rtcp-xr" attribute in its response, and specify any
+ unilateral parameters in order to request that the offerer send the
+ corresponding XR blocks. The offerer SHOULD send these blocks.
+
+ For "recvonly" media stream offers, the offerer's use of the "rtcp-
+ xr" attribute in connection with unilateral parameters indicates that
+ the offerer is capable of sending the corresponding XR blocks. If
+
+
+
+
+Friedman, et al. Standards Track [Page 40]
+
+RFC 3611 RTCP XR November 2003
+
+
+ the answerer responds with an "rtcp-xr" attribute, the offerer SHOULD
+ send XR blocks for each specified unilateral parameter that was in
+ its offer.
+
+ For multicast media streams, the inclusion of an "rtcp-xr" attribute
+ with unilateral parameters means that every media recipient SHOULD
+ send the corresponding XR blocks.
+
+ An SDP offer with a collaborative parameter declares the offerer
+ capable of receiving the corresponding initiator and replying with
+ the appropriate responses. For example, an offer that specifies the
+ "rcvr-rtt" parameter means that the offerer is prepared to receive
+ Receiver Reference Time Report Blocks and to send DLRR Report Blocks.
+ An offer of a collaborative parameter means that the answerer MAY
+ send the initiator, and, having received the initiator, the offerer
+ SHOULD send the responses.
+
+ There are exceptions to the rule that an offerer of a collaborative
+ parameter should send responses. For instance, the collaborative
+ parameter might specify a mode that excludes the offerer; or
+ congestion control or maximum transmission unit considerations might
+ militate against the offerer's response.
+
+ By including a collaborative parameter in its answer, the answerer
+ declares its ability to receive initiators and to send responses.
+ The offerer MAY then send initiators, to which the answerer SHOULD
+ reply with responses. As for the offer of a collaborative parameter,
+ there are exceptions to the rule that the answerer should reply.
+
+ When making an SDP offer of a collaborative parameter for a multicast
+ media stream, the offerer SHOULD specify which participants are to
+ respond to a received initiator. A participant that is not specified
+ SHOULD NOT send responses. Otherwise, undue bandwidth might be
+ consumed. The offer indicates that each participant that is
+ specified SHOULD respond if it receives an initiator. It also
+ indicates that a specified participant MAY send an initiator block.
+
+ An SDP answer for a multicast media stream SHOULD include all
+ collaborative parameters that are present in the offer and that are
+ supported by the answerer. It SHOULD NOT include any collaborative
+ parameter that is absent from the offer.
+
+ If a participant receives an SDP offer and understands the "rtcp-xr"
+ attribute but does not wish to implement XR functionality offered,
+ its answer SHOULD include an "rtcp-xr" attribute without parameters.
+ By doing so, the party declares that, at a minimum, is capable of
+ understanding the signaling.
+
+
+
+
+Friedman, et al. Standards Track [Page 41]
+
+RFC 3611 RTCP XR November 2003
+
+
+5.3. Usage Outside of Offer/Answer
+
+ SDP can be employed outside of the Offer/Answer context, for instance
+ for multimedia sessions that are announced through the Session
+ Announcement Protocol (SAP) [15], or streamed through the Real Time
+ Streaming Protocol (RTSP) [17]. The signaling model is simpler, as
+ the sender does not negotiate parameters, but the functionality
+ expected from specifying the "rtcp-xr" attribute is the same as in
+ Offer/Answer.
+
+ When a unilateral parameter is specified for the "rtcp-xr" attribute
+ associated with a media stream, the receiver of that stream SHOULD
+ send the corresponding XR block. When a collaborative parameter is
+ specified, only the participants indicated by the mode value in the
+ collaborative parameter are concerned. Each such participant that
+ receives an initiator block SHOULD send the corresponding response
+ block. Each such participant MAY also send initiator blocks.
+
+6. IANA Considerations
+
+ This document defines a new RTCP packet type, the Extended Report
+ (XR) type, within the existing Internet Assigned Numbers Authority
+ (IANA) registry of RTP RTCP Control Packet Types. This document also
+ defines a new IANA registry: the registry of RTCP XR Block Types.
+ Within this new registry, this document defines an initial set of
+ seven block types and describes how the remaining types are to be
+ allocated.
+
+ Further, this document defines a new SDP attribute, "rtcp-xr", within
+ the existing IANA registry of SDP Parameters. It defines a new IANA
+ registry, the registry of RTCP XR SDP Parameters, and an initial set
+ of six parameters, and describes how additional parameters are to be
+ allocated.
+
+6.1. XR Packet Type
+
+ The XR packet type defined by this document is registered with the
+ IANA as packet type 207 in the registry of RTP RTCP Control Packet
+ types (PT).
+
+6.2. RTCP XR Block Type Registry
+
+ This document creates an IANA registry called the RTCP XR Block Type
+ Registry to cover the name space of the Extended Report block type
+ (BT) field specified in Section 3. The BT field contains eight bits,
+ allowing 256 values. The RTCP XR Block Type Registry is to be
+ managed by the IANA according to the Specification Required policy of
+
+
+
+
+Friedman, et al. Standards Track [Page 42]
+
+RFC 3611 RTCP XR November 2003
+
+
+ RFC 2434 [7]. Future specifications SHOULD attribute block type
+ values in strict numeric order following the values attributed in
+ this document:
+
+ BT name
+ -- ----
+ 1 Loss RLE Report Block
+ 2 Duplicate RLE Report Block
+ 3 Packet Receipt Times Report Block
+ 4 Receiver Reference Time Report Block
+ 5 DLRR Report Block
+ 6 Statistics Summary Report Block
+ 7 VoIP Metrics Report Block
+
+ The BT value 255 is reserved for future extensions.
+
+ Furthermore, future specifications SHOULD avoid the value 0. Doing
+ so facilitates packet validity checking, since an all-zeros field
+ might commonly be found in an ill-formed packet.
+
+ Any registration MUST contain the following information:
+
+ - Contact information of the one doing the registration, including
+ at least name, address, and email.
+
+ - The format of the block type being registered, consistent with the
+ extended report block format described in Section 3.
+
+ - A description of what the block type represents and how it shall
+ be interpreted, detailing this information for each of its fields.
+
+6.3. The "rtcp-xr" SDP Attribute
+
+ The SDP attribute "rtcp-xr" defined by this document is registered
+ with the IANA registry of SDP Parameters as follows:
+
+ SDP Attribute ("att-field"):
+
+ Attribute name: rtcp-xr
+ Long form: RTP Control Protocol Extended Report Parameters
+ Type of name: att-field
+ Type of attribute: session and media level
+ Subject to charset: no
+ Purpose: see Section 5 of this document
+ Reference: this document
+ Values: see this document and registrations below
+
+
+
+
+
+Friedman, et al. Standards Track [Page 43]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The attribute has an extensible parameter field and therefore a
+ registry for these parameters is required. This document creates an
+ IANA registry called the RTCP XR SDP Parameters Registry. It
+ contains the six parameters defined in Section 5.1: "pkt-loss-rle",
+ "pkt-dup-rle", "pkt-rcpt-times", "stat-summary", "voip-metrics", and
+ "recv-rtt".
+
+ Additional parameters are to be added to this registry in accordance
+ with the Specification Required policy of RFC 2434 [7]. Any
+ registration MUST contain the following information:
+
+ - Contact information of the one doing the registration, including
+ at least name, address, and email.
+
+ - An Augmented Backus-Naur Form (ABNF) [2] definition of the
+ parameter, in accordance with the "format-ext" definition of
+ Section 5.1.
+
+ - A description of what the parameter represents and how it shall be
+ interpreted, both normally and in Offer/Answer.
+
+7. Security Considerations
+
+ This document extends the RTCP reporting mechanism. The security
+ considerations that apply to RTCP reports [9, Appendix B] also apply
+ to XR reports. This section details the additional security
+ considerations that apply to the extensions.
+
+ The extensions introduce heightened confidentiality concerns.
+ Standard RTCP reports contain a limited number of summary statistics.
+ The information contained in XR reports is both more detailed and
+ more extensive (covering a larger number of parameters). The per-
+ packet report blocks and the VoIP Metrics Report Block provide
+ examples.
+
+ The per-packet information contained in Loss RLE, Duplicate RLE, and
+ Packet Receipt Times Report Blocks facilitates multicast inference of
+ network characteristics (MINC) [11]. Such inference can reveal the
+ gross topology of a multicast distribution tree, as well as
+ parameters, such as the loss rates and delays, along paths between
+ branching points in that tree. Such information might be considered
+ sensitive to autonomous system administrators.
+
+ The VoIP Metrics Report Block provides information on the quality of
+ ongoing voice calls. Though such information might be carried in an
+ application specific format in standard RTP sessions, making it
+ available in a standard format here makes it more available to
+ potential eavesdroppers.
+
+
+
+Friedman, et al. Standards Track [Page 44]
+
+RFC 3611 RTCP XR November 2003
+
+
+ No new mechanisms are introduced in this document to ensure
+ confidentiality. Encryption procedures, such as those being
+ suggested for a Secure RTCP (SRTCP) [12] at the time that this
+ document was written, can be used when confidentiality is a concern
+ to end hosts. Given that RTCP traffic can be encrypted by the end
+ hosts, autonomous systems must be prepared for the fact that certain
+ aspects of their network topology can be revealed.
+
+ Any encryption or filtering of XR report blocks entails a loss of
+ monitoring information to third parties. For example, a network that
+ establishes a tunnel to encrypt VoIP Report Blocks denies that
+ information to the service providers traversed by the tunnel. The
+ service providers cannot then monitor or respond to the quality of
+ the VoIP calls that they carry, potentially creating problems for the
+ network's users. As a default, XR packets should not be encrypted or
+ filtered.
+
+ The extensions also make certain denial of service attacks easier.
+ This is because of the potential to create RTCP packets much larger
+ than average with the per packet reporting capabilities of the Loss
+ RLE, Duplicate RLE, and Timestamp Report Blocks. Because of the
+ automatic bandwidth adjustment mechanisms in RTCP, if some session
+ participants are sending large RTCP packets, all participants will
+ see their RTCP reporting intervals lengthened, meaning they will be
+ able to report less frequently. To limit the effects of large
+ packets, even in the absence of denial of service attacks,
+ applications SHOULD place an upper limit on the size of the XR report
+ blocks they employ. The "thinning" techniques described in Section
+ 4.1 permit the packet-by-packet report blocks to adhere to a
+ predefined size limit.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 45]
+
+RFC 3611 RTCP XR November 2003
+
+
+A. Algorithms
+
+A.1. Sequence Number Interpretation
+
+ This is the algorithm suggested by Section 4.1 for keeping track of
+ the sequence numbers from a given sender. It implements the
+ accounting practice required for the generation of Loss RLE Report
+ Blocks.
+
+ This algorithm keeps track of 16 bit sequence numbers by translating
+ them into a 32 bit sequence number space. The first packet received
+ from a source is considered to have arrived roughly in the middle of
+ that space. Each packet that follows is placed either ahead of or
+ behind the prior one in this 32 bit space, depending upon which
+ choice would place it closer (or, in the event of a tie, which choice
+ would not require a rollover in the 16 bit sequence number).
+
+ // The reference sequence number is an extended sequence number
+ // that serves as the basis for determining whether a new 16 bit
+ // sequence number comes earlier or later in the 32 bit sequence
+ // space.
+ u_int32 _src_ref_seq;
+ bool _uninitialized_src_ref_seq;
+
+ // Place seq into a 32-bit sequence number space based upon a
+ // heuristic for its most likely location.
+ u_int32 extend_seq(const u_int16 seq) {
+
+ u_int32 extended_seq, seq_a, seq_b, diff_a, diff_b;
+ if(_uninitialized_src_ref_seq) {
+
+ // This is the first sequence number received. Place
+ // it in the middle of the extended sequence number
+ // space.
+ _src_ref_seq = seq | 0x80000000u;
+ _uninitialized_src_ref_seq = false;
+ extended_seq = _src_ref_seq;
+ }
+ else {
+
+ // Prior sequence numbers have been received.
+ // Propose two candidates for the extended sequence
+ // number: seq_a is without wraparound, seq_b with
+ // wraparound.
+ seq_a = seq | (_src_ref_seq & 0xFFFF0000u);
+ if(_src_ref_seq < seq_a) {
+ seq_b = seq_a - 0x00010000u;
+ diff_a = seq_a - _src_ref_seq;
+
+
+
+Friedman, et al. Standards Track [Page 46]
+
+RFC 3611 RTCP XR November 2003
+
+
+ diff_b = _src_ref_seq - seq_b;
+ }
+ else {
+ seq_b = seq_a + 0x00010000u;
+ diff_a = _src_ref_seq - seq_a;
+ diff_b = seq_b - _src_ref_seq;
+ }
+
+ // Choose the closer candidate. If they are equally
+ // close, the choice is somewhat arbitrary: we choose
+ // the candidate for which no rollover is necessary.
+ if(diff_a < diff_b) {
+ extended_seq = seq_a;
+ }
+ else {
+ extended_seq = seq_b;
+ }
+
+ // Set the reference sequence number to be this most
+ // recently-received sequence number.
+ _src_ref_seq = extended_seq;
+ }
+
+ // Return our best guess for a 32-bit sequence number that
+ // corresponds to the 16-bit number we were given.
+ return extended_seq;
+ }
+
+A.2. Example Burst Packet Loss Calculation.
+
+ This is an algorithm for measuring the burst characteristics for the
+ VoIP Metrics Report Block (Section 4.7). The algorithm, which has
+ been verified against a working implementation for correctness, is
+ reproduced from ETSI TS 101 329-5 [3]. The algorithm, as described
+ here, takes precedence over any change that might eventually be made
+ to the algorithm in future ETSI documents.
+
+ This algorithm is event driven and hence extremely computationally
+ efficient.
+
+ Given the following definition of states:
+
+ state 1 = received a packet during a gap
+ state 2 = received a packet during a burst
+ state 3 = lost a packet during a burst
+ state 4 = lost an isolated packet during a gap
+
+
+
+
+
+Friedman, et al. Standards Track [Page 47]
+
+RFC 3611 RTCP XR November 2003
+
+
+ The "c" variables below correspond to state transition counts, i.e.,
+ c14 is the transition from state 1 to state 4. It is possible to
+ infer one of a pair of state transition counts to an accuracy of 1
+ which is generally sufficient for this application.
+
+ "pkt" is the count of packets received since the last packet was
+ declared lost or discarded, and "lost" is the number of packets lost
+ within the current burst. "packet_lost" and "packet_discarded" are
+ Boolean variables that indicate if the event that resulted in this
+ function being invoked was a lost or discarded packet.
+
+ if(packet_lost) {
+ loss_count++;
+ }
+ if(packet_discarded) {
+ discard_count++;
+ }
+ if(!packet_lost && !packet_discarded) {
+ pkt++;
+ }
+ else {
+ if(pkt >= gmin) {
+ if(lost == 1) {
+ c14++;
+ }
+ else {
+ c13++;
+ }
+ lost = 1;
+ c11 += pkt;
+ }
+ else {
+ lost++;
+ if(pkt == 0) {
+ c33++;
+ }
+ else {
+ c23++;
+ c22 += (pkt - 1);
+ }
+ }
+ pkt = 0;
+ }
+
+ At each reporting interval the burst and gap metrics can be
+ calculated as follows.
+
+
+
+
+
+Friedman, et al. Standards Track [Page 48]
+
+RFC 3611 RTCP XR November 2003
+
+
+ // Calculate additional transition counts.
+ c31 = c13;
+ c32 = c23;
+ ctotal = c11 + c14 + c13 + c22 + c23 + c31 + c32 + c33;
+
+ // Calculate burst and densities.
+ p32 = c32 / (c31 + c32 + c33);
+ if((c22 + c23) < 1) {
+ p23 = 1;
+ }
+ else {
+ p23 = 1 - c22/(c22 + c23);
+ }
+ burst_density = 256 * p23 / (p23 + p32);
+ gap_density = 256 * c14 / (c11 + c14);
+
+ // Calculate burst and gap durations in ms
+ m = frameDuration_in_ms * framesPerRTPPkt;
+ gap_length = (c11 + c14 + c13) * m / c13;
+ burst_length = ctotal * m / c13 - lgap;
+
+ /* calculate loss and discard rates */
+ loss_rate = 256 * loss_count / ctotal;
+ discard_rate = 256 * discard_count / ctotal;
+
+Intellectual Property Notice
+
+ The IETF takes no position regarding the validity or scope of any
+ intellectual property or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; neither does it represent that it
+ has made any effort to identify any such rights. Information on the
+ IETF's procedures with respect to rights in standards-track and
+ standards-related documentation can be found in BCP 11 [5]. Copies
+ of claims of rights made available for publication and any assurances
+ of licenses to be made available, or the result of an attempt made to
+ obtain a general license or permission for the use of such
+ proprietary rights by implementors or users of this specification can
+ be obtained from the IETF Secretariat.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights which may cover technology that may be required to practice
+ this standard. Please address the information to the IETF Executive
+ Director.
+
+
+
+
+
+Friedman, et al. Standards Track [Page 49]
+
+RFC 3611 RTCP XR November 2003
+
+
+Acknowledgments
+
+ We thank the following people: Colin Perkins, Steve Casner, and
+ Henning Schulzrinne for their considered guidance; Sue Moon for
+ helping foster collaboration between the authors; Mounir Benzaid for
+ drawing our attention to the reporting needs of MLDA; Dorgham Sisalem
+ and Adam Wolisz for encouraging us to incorporate MLDA block types;
+ and Jose Rey for valuable review of the SDP Signaling section.
+
+Contributors
+
+ The following people are the authors of this document:
+
+ Kevin Almeroth, UCSB
+ Ramon Caceres, IBM Research
+ Alan Clark, Telchemy
+ Robert G. Cole, JHU Applied Physics Laboratory
+ Nick Duffield, AT&T Labs-Research
+ Timur Friedman, Paris 6
+ Kaynam Hedayat, Brix Networks
+ Kamil Sarac, UT Dallas
+ Magnus Westerlund, Ericsson
+
+ The principal people to contact regarding the individual report
+ blocks described in this document are as follows:
+
+ sec. report block principal contributors
+ ---- ------------ ----------------------
+ 4.1 Loss RLE Report Block Friedman, Caceres, Duffield
+ 4.2 Duplicate RLE Report Block Friedman, Caceres, Duffield
+ 4.3 Packet Receipt Times Report Block Friedman, Caceres, Duffield
+ 4.4 Receiver Reference Time Report Block Friedman
+ 4.5 DLRR Report Block Friedman
+ 4.6 Statistics Summary Report Block Almeroth, Sarac
+ 4.7 VoIP Metrics Report Block Clark, Cole, Hedayat
+
+ The principal person to contact regarding the SDP signaling described
+ in this document is Magnus Westerlund.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 50]
+
+RFC 3611 RTCP XR November 2003
+
+
+References
+
+Normative References
+
+ [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [2] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", RFC 2234, November 1997.
+
+ [3] ETSI, "Quality of Service (QoS) measurement methodologies", ETSI
+ TS 101 329-5 V1.1.1 (2000-11), November 2000.
+
+ [4] Handley, M. and V. Jacobson, "SDP: Session Description
+ Protocol", RFC 2327, April 1998.
+
+ [5] Hovey, R. and S. Bradner, "The Organizations Involved in the
+ IETF Standards Process", BCP 11, RFC 2028, October 1996.
+
+ [6] ITU-T, "The E-Model, a computational model for use in
+ transmission planning", Recommendation G.107, January 2003.
+
+ [7] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
+ Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
+
+ [8] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
+ the Session Description Protocol (SDP)", RFC 3264, June 2002.
+
+ [9] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson,
+ "RTP: A Transport Protocol for Real-Time Applications", RFC
+ 3550, July 2003.
+
+ [10] TIA/EIA-810-A Transmission Requirements for Narrowband Voice
+ over IP and Voice over PCM Digital Wireline Telephones, December
+ 2000.
+
+Informative References
+
+ [11] Adams, A., Bu, T., Caceres, R., Duffield, N.G., Friedman, T.,
+ Horowitz, J., Lo Presti, F., Moon, S.B., Paxson, V. and D.
+ Towsley, "The Use of End-to-End Multicast Measurements for
+ Characterizing Internal Network Behavior", IEEE Communications
+ Magazine, May 2000.
+
+ [12] Baugher, McGrew, Oran, Blom, Carrara, Naslund and Norrman, "The
+ Secure Real-time Transport Protocol", Work in Progress.
+
+
+
+
+
+Friedman, et al. Standards Track [Page 51]
+
+RFC 3611 RTCP XR November 2003
+
+
+ [13] Caceres, R., Duffield, N.G. and T. Friedman, "Impromptu
+ measurement infrastructures using RTP", Proc. IEEE Infocom 2002.
+
+ [14] Clark, A.D., "Modeling the Effects of Burst Packet Loss and
+ Recency on Subjective Voice Quality", Proc. IP Telephony
+ Workshop 2001.
+
+ [15] Handley, M., Perkins, C. and E. Whelan, "Session Announcement
+ Protocol", RFC 2974, October 2000.
+
+ [16] Reynolds, J., Ed., "Assigned Numbers: RFC 1700 is Replaced by an
+ On-line Database", RFC 3232, January 2002.
+
+ [17] Schulzrinne, H., Rao, A. and R. Lanphier, "Real Time Streaming
+ Protocol (RTSP)", RFC 2326, April 1998.
+
+ [18] Sisalem D. and A. Wolisz, "MLDA: A TCP-friendly Congestion
+ Control Framework for Heterogeneous Multicast Environments",
+ Proc. IWQoS 2000.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 52]
+
+RFC 3611 RTCP XR November 2003
+
+
+Authors' Addresses
+
+ Kevin Almeroth
+ Department of Computer Science
+ University of California
+ Santa Barbara, CA 93106 USA
+
+ EMail: almeroth@cs.ucsb.edu
+
+
+ Ramon Caceres
+ IBM Research
+ 19 Skyline Drive
+ Hawthorne, NY 10532 USA
+
+ EMail: caceres@watson.ibm.com
+
+
+ Alan Clark
+ Telchemy Incorporated
+ 3360 Martins Farm Road, Suite 200
+ Suwanee, GA 30024 USA
+
+ Phone: +1 770 614 6944
+ Fax: +1 770 614 3951
+ EMail: alan@telchemy.com
+
+
+ Robert G. Cole
+ Johns Hopkins University Applied Physics Laboratory
+ MP2-S170
+ 11100 Johns Hopkins Road
+ Laurel, MD 20723-6099 USA
+
+ Phone: +1 443 778 6951
+ EMail: robert.cole@jhuapl.edu
+
+
+ Nick Duffield
+ AT&T Labs-Research
+ 180 Park Avenue, P.O. Box 971
+ Florham Park, NJ 07932-0971 USA
+
+ Phone: +1 973 360 8726
+ Fax: +1 973 360 8050
+ EMail: duffield@research.att.com
+
+
+
+
+
+Friedman, et al. Standards Track [Page 53]
+
+RFC 3611 RTCP XR November 2003
+
+
+ Timur Friedman
+ Universite Pierre et Marie Curie (Paris 6)
+ Laboratoire LiP6-CNRS
+ 8, rue du Capitaine Scott
+ 75015 PARIS France
+
+ Phone: +33 1 44 27 71 06
+ Fax: +33 1 44 27 74 95
+ EMail: timur.friedman@lip6.fr
+
+
+ Kaynam Hedayat
+ Brix Networks
+ 285 Mill Road
+ Chelmsford, MA 01824 USA
+
+ Phone: +1 978 367 5600
+ Fax: +1 978 367 5700
+ EMail: khedayat@brixnet.com
+
+
+ Kamil Sarac
+ Department of Computer Science (ES 4.207)
+ Eric Jonsson School of Engineering & Computer Science
+ University of Texas at Dallas
+ Richardson, TX 75083-0688 USA
+
+ Phone: +1 972 883 2337
+ Fax: +1 972 883 2349
+ EMail: ksarac@utdallas.edu
+
+
+ Magnus Westerlund
+ Ericsson Research
+ Ericsson AB
+ SE-164 80 Stockholm Sweden
+
+ Phone: +46 8 404 82 87
+ Fax: +46 8 757 55 50
+ EMail: magnus.westerlund@ericsson.com
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 54]
+
+RFC 3611 RTCP XR November 2003
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assignees.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Friedman, et al. Standards Track [Page 55]
+