Re: [AVT] draft-ietf-avt-rtcp-report-extns-02.txt
Joerg Ott <jo@tzi.uni-bremen.de> Thu, 20 February 2003 03:21 UTC
Received: from www1.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id WAA17032 for <avt-archive@odin.ietf.org>; Wed, 19 Feb 2003 22:21:17 -0500 (EST)
Received: (from mailnull@localhost) by www1.ietf.org (8.11.6/8.11.6) id h1K3ReT30813 for avt-archive@odin.ietf.org; Wed, 19 Feb 2003 22:27:40 -0500
Received: from www1.ietf.org (localhost.localdomain [127.0.0.1]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h1K3QSp30734; Wed, 19 Feb 2003 22:26:28 -0500
Received: from ietf.org (odin.ietf.org [132.151.1.176]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h1HIF7p11900 for <avt@optimus.ietf.org>; Mon, 17 Feb 2003 13:15:07 -0500
Received: from nmh.informatik.uni-bremen.de (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA27487 for <avt@ietf.org>; Mon, 17 Feb 2003 13:09:09 -0500 (EST)
Received: from tzi.uni-bremen.de (root@localhost [127.0.0.1]) by nmh.informatik.uni-bremen.de (8.10.1/8.10.1) with ESMTP id h1HICh025485; Mon, 17 Feb 2003 19:12:43 +0100 (MET)
Message-ID: <3E5125E9.20607@tzi.uni-bremen.de>
Date: Mon, 17 Feb 2003 19:11:53 +0100
From: Joerg Ott <jo@tzi.uni-bremen.de>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3
X-Accept-Language: en-us
MIME-Version: 1.0
To: Timur Friedman <timur.friedman@lip6.fr>
CC: avt@ietf.org, Ramon Caceres <ramon@shieldip.com>, Alan Clark <alan@telchemy.com>, Kevin Almeroth <almeroth@cs.ucsb.edu>, Kamil Sarac <ksarac@utdallas.edu>, Robert Cole <rgcole@att.com>, Kaynam Hedayat <khedayat@brixnet.com>, Nick Duffield <duffield@research.att.com>
Subject: Re: [AVT] draft-ietf-avt-rtcp-report-extns-02.txt
References: <200301242135.31937.timur.friedman@lip6.fr> <200301242156.03464.timur.friedman@lip6.fr>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit
Sender: avt-admin@ietf.org
Errors-To: avt-admin@ietf.org
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Id: Audio/Video Transport Working Group <avt.ietf.org>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Timur, while we are at it: I am currently revising the SSM RTCP draft and hence came across an issue I also mentioned at the last IETF: wouldn't it make sense to slightly revise the first few bytes of the XR blocks defined in section 3: (sorry if you have gone through this again and again) From: 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 data : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ To: 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 | block length | type-specific data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : type-specific data : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The first byte of your type-specific data field could easily become the "type-specific" field before. As you are measuring block size if multiples of 32 bits, an 8 bit value will cover block sizes of up to 1,020 bytes which seems quite a lot (particularly as the packets are supposed to fit into a usual MTU). If you need more, you could just include the same block several times. You'll save one byte or two per report block. BTW: Except for the alignment requirement, the above structure would also mirror the SDES format. Joerg Timur Friedman wrote: > Hello, > > Please find attached the latest version of the (new title) RTP Extended > Reports (RTP XR) draft, draft-ietf-avt-rtcp-report-extns-02.txt. This has > just been submitted to internet-drafts@ietf.org. We have updated the draft > based upon comments from this list and from the chairs. > > We hope to advance to Final Call at the March IETF in San Francisco. Your > comments are most welcome so that we may issue a final draft in good time. > > Here are the changes since the previous version: > > * Changed title from RTCP Reporting Extensions to RTP Extended Reports > (RTP XR). (Only very well known acronyms may appear in the title > without expansion. RTP appears in the titles of several RFCs, RTCP > in none to date.) > > * Reduced author list from seven authors to three editors. Created a > Contributors section. Nick Duffield added as author. (No more than five > names allowed on the front page authors list, mentioned by Colin.) > > * Added Magnus Westerlund, Dorgham Sisalem, and Adam Wolisz to the > acknowledgments. > > * Separated normative from informative references. (Now recommended > by the RFC Editor, mentioned by Colin.) > > * Renumbered the RTP packet type (PT) value for XR packets to 207. > This would be the next available value should the RTCP feedback > draft, which is in last call, become an RFC. Note that this would > require changes to any other drafts based on the XR packet (RTCP > Extensions for Single-Source Multicast is one). > > * Renumbered the block types from 1 to 7, replacing the legacy values. > (Requested by Colin in the absence of a clear rationale for the > legacy values.) > > * Rewrote the IANA Considerations section (as recommended by Colin). > > * Changed the required behavior for the receiver when it sees a > non-zero value in a reserved field. Now the receiver must ignore > the block or packet that contains this field. Previously the > receiver was to ignore the field if they were unaware of any defined > semantics for the field. (Allows for future definitions of these > fields to call for different behavior on the part of receivers.) > > * All report blocks now have "Report Block" as part of their name. > (This was inconsistent before.) > > * Some of the subsections of Section 4.7 have been combined. > > * Sections at the end of the document, such as the references and the > copyright statement, have been reordered. References divided into > Normative and Non-Normative References. > > * An appendix has been created for algorithms. The formatting for > algorithms has been harmonized. > > * The discussion of per-sender and per-packet accounting for the Loss > RLE Report Block (Section 4.1) has been updated, with an algorithm > in the appendix. > > * Variable geometry removed from the Statistics Summary Report Block > (Section 4.4). Now, if a statistic is not reported, the field is > set to zero, but the field itself is not removed. This should > considerably simplify parsing. > > * Clarified the wording specifying the length fields. (Thanks to > Magnus Westerlund.) > > * Clarified how late packets are accounted as losses. (Thanks to > Henning Schulzrinne and Magnus Westerlund.) > > * Made begin_seq and end_seq 16 bits in all cases. (Thanks to Magnus > Westerlund.) > > * Clarified what to do if there are losses or duplicates when sending > a Timestamp Report Block. (Thanks to Magnus Westerlund.) > > * Recommendations added to the Security Considerations section. > > * Gmin recommended value of 16 indicated for VoIP Metrics Report Block > (Section 4.7) > > * RERL calculation corrected in Section 4.7. (Thanks to Magnus > Westerlund.) > > * Burst metrics algorithm modified, and discussion updated. > > * Field renamed in the VoIP block: doubletalk now residual echo return loss > (RERL). Updated discussion of this field. > > * Fields reordered in VoIP block to better align on 16-bit boundaries. > > * Document indenting fixed to conform to that of the RTP spec. > > Regards, > > Timur Friedman > > > ------------------------------------------------------------------------ > > > > > > > > INTERNET-DRAFT 24 January 2003 > Internet Engineering Task Force Expires: 24 July 2003 > Audio/Video Transport Working Group > > Timur Friedman, Paris 6 > Ramon Caceres, ShieldIP > Alan Clark, Telchemy > Editors > > RTP Extended Reports (RTP XR) > > draft-ietf-avt-rtcp-report-extns-02.txt > > > Status of this Memo > > This document is an Internet-Draft and is subject to all provisions > of Section 10 of RFC2026. > > Internet-Drafts are working documents of the Internet Engineering > Task Force (IETF), its areas, and its working groups. Note that > other groups may also distribute working documents as Internet- > Drafts. > > Internet-Drafts are draft documents valid for a maximum of six months > and may be updated, replaced, or obsoleted by other documents at any > time. It is inappropriate to use Internet-Drafts as reference > material or to cite them other than as "work in progress." > > The list of current Internet-Drafts can be accessed at > http://www.ietf.org/1id-abstracts.html > > The list of Internet-Draft Shadow Directories can be accessed at > http://www.ietf.org/shadow.html > > 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). 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 > > > > Friedman, Caceres, and Clark, eds. [Page 1] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > (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 adhereing to > the framework that this document provides. > > Table of Contents > > 1. Introduction .............................................. 2 > 1.1 Terminology ............................................... 3 > 2. XR Packet Format .......................................... 4 > 3. Extended Report Block Framework ........................... 5 > 4. Extended Report Blocks .................................... 6 > 4.1 Loss RLE Report Block ..................................... 6 > 4.1.1 Run Length Chunk .......................................... 12 > 4.1.2 Bit Vector Chunk .......................................... 12 > 4.1.3 Terminating Null Chunk .................................... 12 > 4.2 Duplicate RLE Report Block ................................ 13 > 4.3 Timestamp Report Block .................................... 13 > 4.4 Statistics Summary Report Block ........................... 16 > 4.5 Receiver Timestamp Report Block ........................... 19 > 4.6 DLRR Report Block ......................................... 20 > 4.7 VoIP Metrics Report Block ................................. 21 > 4.7.1 Packet Loss and Discard Metrics ........................... 23 > 4.7.2 Burst Metrics ............................................. 23 > 4.7.3 Delay Metrics ............................................. 26 > 4.7.4 Signal Related Metrics .................................... 26 > 4.7.5 Call Quality or Transmission Quality Metrics .............. 29 > 4.7.6 Configuration Parameters .................................. 30 > 4.7.7 Jitter Buffer Parameters .................................. 31 > 5. IANA Considerations ....................................... 32 > 5.1 XR Packet Type ............................................ 32 > 5.2 RTP XR Block Type Registry ................................ 32 > 6. Security Considerations ................................... 33 > A. Algorithms ................................................ 34 > A.1 Sequence Number Interpretation ............................ 34 > A.2 Example Burst Packet Loss Calculation ..................... 35 > Intellectual Property ..................................... 37 > Full Copyright Statement .................................. 38 > Acknowledegments .......................................... 38 > Contributors .............................................. 39 > Authors' Addresses ........................................ 39 > References ................................................ 40 > Normative References ...................................... 40 > Non-Normative References .................................. 41 > > 1. Introduction > > This document defines the extended report (XR) packet type for the > > > > Friedman, Caceres, and Clark, eds. [Page 2] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > RTP control protocol (RTCP) [7]. 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 following sections of > this document, starting with a general framework and finishing with > the specific information conveyed. The framework defined by Section > 2 contains common header information followed by a series of > components called report blocks. Section 3 defines the format common > to such blocks. Section 4 defines seven block types. > > Seven report block formats are defined by this document: > > - Loss RLE Report Block (Section 4.1): Run length encoding of RTP > packet loss reports. > > - Duplicate RLE Report Block (Section 4.2): Run length encoding of > reports of RTP packet duplicates. > > - Timestamp Report Block (Section 4.3): A list of timestamps of > received RTP packets. > > - Statistics Summary Report Block (Section 4.4): Statistics on RTP > packet sequence numbers, losses, duplicates, jitter, and TTL values. > > - Receiver Timestamp Report Block (Section 4.5): Receiver-end > timestamps that complement the sender-end timestamps already defined > for RTCP. > > - DLRR Report Block (Section 4.6): The delay since the last Receiver > Timestamp Report Block was received, allowing non-senders to > calculate round-trip times. > > - VoIP Metrics Report Block (Section 4.7): Metrics for monitoring > Voice over IP (VoIP) calls. > > These blocks are defined within a minimal framework: a type field and > a length field are common to all XR blocks. The purpose is to > maintain flexibility and to keep overhead low. 0ther block formats, > beyond the seven defined here, may be defined within this framework > as the need arises. > > 1.1 Terminology > > > > > Friedman, Caceres, and Clark, eds. [Page 3] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", > "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this > document are to be interpreted as described in RFC 2119 [1] and > indicate requirement levels for compliance with this specification. > > 2. XR Packet Format > > The XR packet consists of a header of two 32-bit words, followed by a > number, possibly zero, of extended report blocks. > > > 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=XP=207 | length | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | SSRC/CSRC | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > : 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 > 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 > the receiver MUST ignore any XR packet with a non-zero value in > this field. > > 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 5.1. > > length: 16 bits > As described for the RTP sender report (SR) packet (see Section > 6.3.1 of the RTP specification [7]). Briefly, the length of > this XR packet in 32-bit words minus one, including the header > and any padding. > > > > Friedman, Caceres, and Clark, eds. [Page 4] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 data : > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > > 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 5.2. > > 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 > > > > Friedman, Caceres, and Clark, eds. [Page 5] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > the BT, type-specific, and block length fields, with a null > type-specific data field. > > type-specific data: 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 > losses, duplicates, packet reception timestamps, detailed reception > statistics, receiver timestamps, receiver inter-report delays, and > voice over IP (VoIP) metrics. An implementation MAY ignore incoming > blocks with types either not relevant or unknown to it. Additional > block types MUST be registered with the Internet Assigned Numbers > Authority (IANA) [5], as described in Section 5.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) [8]. 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 [9]. > > 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 > 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 [7] 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 > > > > Friedman, Caceres, and Clark, eds. [Page 6] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 accouting 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. > > Each block reports on a single 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. > > > > Friedman, Caceres, and Clark, eds. [Page 7] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > Note that because of sequence number wrap around 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 to > identify multiple wrap arounds. > > 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 > wrap around of sequence numbers (or since the beginning of the RTP > session if no wrap around 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 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 > > > 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: > > > > > > Friedman, Caceres, and Clark, eds. [Page 8] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 were 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. > > 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 > > > > Friedman, Caceres, and Clark, eds. [Page 9] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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. > > The Loss RLE Report Block has the following format: > > > > > > > > > > > > > > > > > > > > Friedman, Caceres, and Clark, eds. [Page 10] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 > the receiver MUST ignore any Loss RLE Report Block with a non- > zero value in this field. > > 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. > > 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. > > 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 leftmost bit of the chunk determines its type: 0 > > > > Friedman, Caceres, and Clark, eds. [Page 11] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 wrap > around). > > 4.1.3 Terminating Null Chunk > > This chunk is all zeroes. > > > > > Friedman, Caceres, and Clark, eds. [Page 12] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 existance 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. > > The Duplicate RLE Report Block has the following format: > > > > > > > > > > > > > > > Friedman, Caceres, and Clark, eds. [Page 13] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 definition, the bits in this field MUST be set to zero and > the receiver MUST ignore any Duplicate RLE Report Block with a > non-zero value in this field. > > thinning (T): 4 bits > As defined in Section 4.1. > > block length: 16 bits > Defined in Section 3. > > 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. > > 4.3 Timestamp Report Block > > This block type permits per-sequence-number reports on packet receipt > timestamps 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 > > > > Friedman, Caceres, and Clark, eds. [Page 14] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > path characteristics and to model distributions for packet jitter. > > 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 > timestamps 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 receiver timestamps, any timestamp other than the earliest MUST > NOT be reported. This is to ensure consistency among reports. > > Timestamps 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 Timestamp Report Blocks. > > The Timestamp 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 | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | RTP timestamp 1 | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | RTP timestamp 2 | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > : ... : > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | RTP timestamp n | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > > block type (BT): 8 bits > A Timestamp Report Block is identified by the constant 3. > > 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 > the receiver MUST ignore any Timestamp Report Block with a non- > zero value in this field. > > thinning (T): 4 bits > As defined in Section 4.1. > > > > > Friedman, Caceres, and Clark, eds. [Page 15] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > block length: 16 bits > Defined in Section 3. > > begin_seq: 16 bits > As defined in Section 4.1. > > end_seq: 16 bits > As defined in Section 4.1. > > RTP timestamp i: 32 bits > The timestamp reflects the packet arrival time at the receiver. > It is preferable for the timestamp 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 receiver timestamps should reflect the > actual time as closely as possible. The initial value of the > timestamp is random, and subsequent timestamps are offset from > this value. > > 4.4 Statistics Summary Report Block > > This block reports statistics beyond the information carried in the > standard RTCP packet format, but not as fine grained as that carried > in the report blocks previously described. Information is recorded > about lost packets, duplicate packets, jitter measurements, and TTL > values (TTL values being taken from the TTL field of IPv4 packets, if > the data packets are carried over IPv4). Such information can be > useful for network management. > > The report block contents are dependent upon a bit vector 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 set to > zero. The receiver MUST ignore any Statistics Summary Report Block > with a non-zero value in any field flagged as unreported. > > The Statistics Summary Report Block has the following format: > > > > > > > > > > > > Friedman, Caceres, and Clark, eds. [Page 16] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 |L|D|J|T|resvd. | block length = 9 | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | SSRC of source | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | begin_seq | end_seq | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | lost_packets | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | dup_packets | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | min_jitter | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | max_jitter | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | avg_jitter | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | dev_jitter | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | min_ttl | max_ttl | avg_ttl | dev_ttl | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > > block type (BT): 8 bits > A Statistics Summary Report Block is identified by the constant > 4. > > 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, avg_jitter, and > dev_jitter fields all contain reports, 0 if none of them do. > > TTL flag (T): 1 bit > Bit set to 1 if the min_ttl, max_ttl, avg_ttl, and dev_ttl > fields all contain reports, 0 if none of them do. > > resvd.: 4 bits > This field is reserved for future definition. In the absence of > such definition, all bits in this field MUST be set to zero, and > > > > Friedman, Caceres, and Clark, eds. [Page 17] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > the receiver MUST ignore any Statistics Summary Report Block > with a non-zero value in this field. > > block length: 16 bits > The constant 9, in accordance with the definition of this field > in Section 3. > > 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. > > avg_jitter: 32 bits > The average relative transit time between each two packet series > in the above sequence number interval. > > dev_jitter: 32 bits > The standard deviation of the relative transit time between each > two packet series in the above sequence number interval. > > min_ttl: 8 bits > The minimum TTL value of data packets in sequence number range. > > max_ttl: 8 bits > The maximum TTL value of data packets in sequence number range. > > avg_ttl: 8 bits > The average TTL value of data packets in sequence number range. > > > > > Friedman, Caceres, and Clark, eds. [Page 18] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > dev_ttl: 8 bits > The standard deviation of TTL values of data packets in sequence > number range. > > 4.5 Receiver Timestamp 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 [7, Sec. 6.3.1]. A non-sender may estimate > its RTT to other participants, as proposed in [11], 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=5 | reserved | block length = 2 | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | NTP timestamp, most significant word | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | NTP timestamp, least significant word | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > > block type (BT): 8 bits > A Receiver Timestamp 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 > the receiver MUST ignore any Receiver Timestamp Report Block > with a non-zero value in this field. > > 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 > > > > Friedman, Caceres, and Clark, eds. [Page 19] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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.6 DLRR Report Block > > This block extends RTCP's delay since last sender report (DLSR) > mechanism [7, Sec. 6.3.1] so that non-senders may also calculate > round trip times, as proposed in [11]. It is termed DLRR for delay > since 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 > respondant. 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=6 | 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 > +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ > > > block type (BT): 8 bits > A DLRR Report Block is identified by the constant 6. > > reserved: 8 bits > This field is reserved for future definition. In the absence of > such definition, all bits in this field MUST be set to zero, the > receiver MUST ignore any DLRR Report Block with a non-zero value > in this field. > > block length: 16 bits > Defined in Section 3. > > > > > Friedman, Caceres, and Clark, eds. [Page 20] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 > Timestamp 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 Timestamp Report Block from > participant SSRC_n and sending this DLRR Report Block. If no > Receiver Timestamp Report Block has been received yet 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-LSR using the last SR timestamp (LSR) > field, and then subtracting this field to leave the round-trip > propagation delay as A-LSR-DLSR. This is illustrated in [7, Fig. > 2]. > > 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 [10]. > Following a Gilbert-Elliott model [2], 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 RTCP 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 [2]) and mean opinion scores (MOS scores). > > An implementation that sends these blocks SHOULD send at least one > > > > Friedman, Caceres, and Clark, eds. [Page 21] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > every ten seconds for the duration of the call, SHOULD send one > whenever a CODEC type change or other significant change occurs, > SHOULD send one when significant call quality degradation is detected > and SHOULD send one upon call termination. 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. > > 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 = 6 | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | loss rate | discard rate | burst density | gap density | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | burst duration | gap duration | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | round trip delay | end system delay | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | signal power | RERL | noise level | Gmin | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | R factor | ext. R factor | MOS-LQ | MOS-CQ | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | RX config | 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 definition, all bits in this field MUST be set to zero and > the receiver MUST ignore any VoIP Metrics Report Block with a > non-zero value in this field. > > block length: 16 bits > The constant 6, in accordance with the definition of this field > in Section 3. > > 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, Caceres, and Clark, eds. [Page 22] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 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. > > 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, informally, is a period of high packet losses and/or > discards. Formally, a burst is defined as a longest sequence of > packets bounded by lost or discarded packets with the constraint that > within a burst any sequence of successive packets that were received, > and not discarded due to delay variation, is of length less than a > value Gmin. > > 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, Caceres, and Clark, eds. [Page 23] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 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 > density 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, 0 a lost, 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 density 12, which corresponds to 5% > discard density 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, Caceres, and Clark, eds. [Page 24] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 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. > > 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. > > 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 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 > > > > Friedman, Caceres, and Clark, eds. [Page 25] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 to be 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 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 during the first two or three RTCP > exchanges as insufficient data may be available to determine > delay however 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 total > encoding, decoding and jitter buffer delay determined at the > reporting endpoint. This is the time required for an RTP frame > to be buffered, decoded, converted to analog form, looped back > at the local analog interface, encoded, and made available for > transmission as an RTP frame. The manner in which this value is > estimated is implementation dependent. This parameter MUST be > provided in all VoIP metrics reports. > > Note that the one way symmetric VoIP segment delay may be calculated > from the round trip and end system delays 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 > > > > > Friedman, Caceres, and Clark, eds. [Page 26] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 power: 8 bits > The voice signal relative level is defined as the ratio of the > signal level to overflow signal level, 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. If the full range > (overflow level) of the Vocoder's digital to analog conversion > function is +/- L and the value of a decoded sample during a > talkspurt is V then the signal level is given by: > > signal level = 10 log10 ( mean( abs(V) / L ) ) > > A value of 127 indicates that this parameter is unavailable. > > residual echo return loss (RERL): 8 bits > The residual echo return loss is defined as the sum of the > measured echo return loss (ERL) and the echo return loss > enhancement (ERLE) expressed in dB as a signed integer in two's > complement form. It defines the ratio of a transmitted voice > signal that is reflected back to the talker. A low level of > echo return loss (say less than 20 dB) in conjunction with some > delay can lead to hollowness or audible echo. A high level of > echo return loss (say over 40 dB) is preferable. > > The ERL and ERLE parameters are often available directly from the > echo cancellor contained within the VoIP end system. They relate to > the echo on the external network attached to the end point. > > In the case of a VoIP gateway this would be line echo that typically > occurs at 2-4 wire conversion points in the network. Echo return > loss from typical 2-4 wire conversions can be in the 8-12 dB range. > A line echo cancellor 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 > 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 due to acoustic feedback. > > Typical values for RERL are as follows: > > > > Friedman, Caceres, and Clark, eds. [Page 27] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > (i) IP gateway connected to circuit switched network with 2 wire loop > Without echo cancellation, typical 2-4 wire convertor ERL of 12 dB > RERL = ERL + ERLE = 12 + 0 = 12 dB > > (ii) IP gateway connected to circuit switched network with 2 wire loop > With echo cancellor that improves echo by 30 dB > RERL = ERL + ERLE = 12 + 30 = 42 dB > > (iii) IP phone with conventional handset > Acoustic coupling from handset speaker to microphone 40 dB > Residual echo return loss = 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. > > For an IP phone with handset this metric MUST be set to the designed > or measured terminal coupling loss, which would typically be 40-50 > dB. > > For a PC softphone or speakerphone this metric MUST be set to either > the value reported by the acoustic echo cancellor or to 127 to > indicate an undefined value. > > For an IP gateway with ERL and ERLE measurements this metric MUST be > reported as ERL + ERLE. > > For an IP gateway without ERL and ERLE measurement capability then > this metric MUST be reported as 12 dB if line echo cancellation is > disabled and 40 dB if line echo cancellation is enabled. > > noise level: 8 bits > The noise level is defined as the ratio of the silent period > back ground noise level to overflow signal power, expressed in > decibels as a signed integer in two's complement form. If the > full range (overflow level) of the Vocoder's digital to analog > conversion function is +/- L and the value of a decoded sample > during a silence period is V then the noise level is given by > > > > Friedman, Caceres, and Clark, eds. [Page 28] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > noise level = 10 log10 ( mean( abs(V) / L ) ) > > A value of 127 indicates that this parameter is unavailable. > > 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 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 [4] and ETSI TS > 101 329-5 [2]. > > A value of 127 indicates that this parameter is unavailable. > > ext. R factor: 8 bits > The external R factor is a voice quality metric describing the > seg ment 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 [4] and ETSI TS 101 329-5 > [2], and relates to the outward voice path from the Voice over > IP termination for which this metrics block applies. > > A value of 127 indicates that this parameter is unavailable. > > 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 > > > > Friedman, Caceres, and Clark, eds. [Page 29] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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. > > 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 [4] or ETSI TS 101 329-5 [2] 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. > > 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 dis card 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 > packets that occur within Gmin packets of a report being > generated may be reclassified as being part of a burst or gap in > later reports. ETSI TS 101 329-5 [2] 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 and MUST be provided. > > 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| > +-+-+-+-+-+-+-+-+ > > > > > > Friedman, Caceres, and Clark, eds. [Page 30] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 is typically able to conceal isolated lost packets > with loss rates under 3%. When PLC = 10 then an enhanced > interpolation algorithm is being used. This would > typically be able to conceal lost packets for loss rates of > 10% or more. When PLC = 01 then silence is 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) > > This parameter is intended only to provide a guide to the > degree of "aggressiveness" of a an adaptive jitter buffer > and may be estimated. A value of 0 indicates that the > adjustment time is unknown for this implementation. > > 4.7.7 Jitter Buffer Parameters > > jitter buffer nominal size in frames (JB nominal): 8 bits > This is the current nominal fill point within the jitter buffer, > 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 size in frames (JB maximum): 8 bits > This is the current maximum jitter buffer level corresponding to > the earliest arriving packet that would not be discarded. In > simple queue implementations this may correspond to the nominal > > > > Friedman, Caceres, and Clark, eds. [Page 31] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 size in frames (JB abs max): 8 bits > This is the absolute maximum size that the adaptive jitter > buffer can reach under worst case jitter conditions. 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. IANA Considerations > > This document defines a new RTP 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 RTP 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. > > 5.1 XR Packet Type > > The IANA SHALL register the RTP extended report (XR) packet defined > by this document as packet type 207 in the registry of RTP RTCP > Control Packet types (PT). > > 5.2 RTP XR Block Type Registry > > The IANA SHALL create the RTP XR Block Type Registry to cover the > name space of the extended report block type (BT) field specified in > Section 3 of this document. The BT field contains eight bits, > allowing 256 values. The IANA SHALL manage the RTP XR Block Type > Registry according to the Specification Required policy of RFC 2434 > [6]. Future specifications SHOULD attribute block type values in > strict numeric order following the values attributed in this > document: > > > > > > > > > > > > > > Friedman, Caceres, and Clark, eds. [Page 32] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > BT name > -- ---- > 1 Loss RLE Report Block > 2 Duplicate RLE Report Block > 3 Timestamp Report Block > 4 Statistics Summary Report Block > 5 Receiver Timestamp Report Block > 6 DLRR Report Block > 7 VoIP Metrics Report Block > > > Furthermore, future specifications SHOULD avoid the values 0 and 255. > Doing so facilitates packet validity checking, since all-zeros and > all-ones are values that might commonly be found in ill-formed > packets. > > 6. Security Considerations > > This document extends the RTCP reporting mechanism. The security > considerations that apply to RTCP reports 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 information contained in Loss RLE, Duplicate RLE, and > Timestamp Report Blocks facilitates MINC inference of multicast > distribution trees for RTP data packets, and inference of link > characteristics such as loss and delay. This inference reveals > information that might otherwise be considered confidential 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 application specific format in > standard RTP sessions, making it available in a standard format here > makes it more available to potential eavesdroppers. > > No new mechanisms are introduced in this document to ensure > confidentiality. Standard encryption procedures can be used when > confidentiality is a concern to end hosts. Autonomous system > administrators concerned about the loss of confidentiality regarding > their networks can encrypt traffic, or filter it to exclude RTCP > packets containing the XR report blocks concerned. > > 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 > > > > Friedman, Caceres, and Clark, eds. [Page 33] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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 limit the size of XR report blocks and employ the > thinning techniques described in this document in order to fit > reports into the space available. > > A. Algorithms > > A.1 Sequence Number Interpretation > > This 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 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) { > > > > Friedman, Caceres, and Clark, eds. [Page 34] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > // 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; > 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 > > > > Friedman, Caceres, and Clark, eds. [Page 35] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > VoIP Metrics Report Block (Section 4.7). It is reproduced from ETSI > TS 101 329-5 [2]. The 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 > > > 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++; > > > > Friedman, Caceres, and Clark, eds. [Page 36] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > } > else { > c23++; > c22 += (pkt - 1); > } > } > pkt = 0; > } > > At each reporting interval the burst and gap metrics can be > calculated as follows. > > // 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 densities */ > loss_density = 256 * loss_count / ctotal; > discard_density = 256 * discard_count / ctotal; > > Intellectual Property > > 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 [3]. Copies > of claims of rights made available for publication and any assurances > > > > Friedman, Caceres, and Clark, eds. [Page 37] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > 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. > > 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 assigns. > > 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. > > Acknowledgements > > 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; Magnus Westerlund > for his detailed comments; Mounir Benzaid for drawing our attention > to the reporting needs of MLDA; and Dorgham Sisalem and Adam Wolisz > for encouraging us to incorporate MLDA block types. > > > > > Friedman, Caceres, and Clark, eds. [Page 38] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > Contributors > > The following people are the authors of this document: > > Kevin Almeroth, UCSB > Ramon Caceres, ShieldIP > Alan Clark, Telchemy > Robert Cole, AT&T Labs > Nick Duffield, AT&T Labs-Research > Timur Friedman, Paris 6 > Kaynam Hedayat, Brix Networks > Kamil Sarac, UT Dallas > > 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 Timestamp Report Block Friedman, Caceres, Duffield > 4.4 Statistics Summary Report Block Almeroth, Sarac > 4.5 Receiver Timestamp Report Block Friedman > 4.6 DLRR Report Block Friedman > 4.7 VoIP Metrics Report Block Clark, Cole, Hedayat > > > Authors' Addresses > > Kevin Almeroth <almeroth@cs.ucsb.edu> > Department of Computer Science > University of California > Santa Barbara, CA 93106 USA > > Ramon Caceres <ramon@shieldip.com> > ShieldIP, Inc. > 11 West 42nd Street, 31st Floor > New York, NY 10036 USA > > Alan Clark <alan@telchemy.com> > Telchemy Incorporated > 3360 Martins Farm Road, Suite 200 > Suwanee, GA 30024 USA > Tel: +1 770 614 6944 > Fax: +1 770 614 3951 > > > > > > Friedman, Caceres, and Clark, eds. [Page 39] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > Robert Cole <rgcole@att.com> > AT&T Labs > 330 Saint Johns Street, > 2nd Floor > Havre de Grace, MD 21078 USA > Tel: +1 410 939 8732 > Fax: +1 410 939 8732 > > Nick Duffield <duffield@research.att.com> > AT&T Labs-Research > 180 Park Avenue, P.O. Box 971 > Florham Park, NJ 07932-0971 USA > Tel: +1 973 360 8726 > Fax: +1 973 360 8050 > > Timur Friedman <timur.friedman@lip6.fr> > Universite Pierre et Marie Curie (Paris 6) > Laboratoire LiP6-CNRS > 8, rue du Capitaine Scott > 75015 PARIS France > Tel: +33 1 44 27 71 06 > Fax: +33 1 44 27 74 95 > > Kaynam Hedayat <khedayat@brixnet.com> > Brix Networks > 285 Mill Road > Chelmsford, MA 01824 USA > Tel: +1 978 367 5600 > Fax: +1 978 367 5700 > > Kamil Sarac <ksarac@utdallas.edu> > Department of Computer Science (ES 4.207) > Eric Jonsson School of Engineering & Computer Science > University of Texas at Dallas > Richardson, TX 75083-0688 USA > Tel: +1 972 883 2337 > Fax: +1 972 883 2349 > > References > > The references are divided into normative references and non- > normative references. > > Normative References > > [1] S. Bradner, "Key words for use in RFCs to indicate requirement > levels," BCP 14, RFC 2119, IETF, March 1997. > > > > > Friedman, Caceres, and Clark, eds. [Page 40] > > draft-ietf-avt-rtcp-report-extns-02.txt 24 January 2003 > > > [2] ETSI, "Quality of Service (QoS) measurement methodologies," ETSI > TS 101 329-5 V1.1.1 (2000-11), November 2000. > > [3] R. Hovey and S. Bradner, "The Organizations Involved in the IETF > Standards Process," best current practice BCP 11, RFC 2028, IETF, > October 1996. > > [4] ITU-T, "The E-Model, a computational model for use in > transmission planning," Recommendation G.107 (05/00), May 2000. > > [5] J. Reynolds and J. Postel, "Assigned Numbers," standard STD 2, > RFC 1700, IETF, October 1994. > > [6] T. Narten and H. Alvestrand, "Guidelines for Writing an IANA > Considerations Section in RFCs," best current practice BCP 26, RFC > 2434, IETF, October 1998. > > [7] H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, "RTP: A > transport protocol for real-time applications," RFC 1889, IETF, > February 1996. > > Non-Normative References > > [8] A. Adams, T. Bu, R. Caceres, N. G. Duffield, T. Friedman, J. > Horowitz, F. Lo Presti, S. B. Moon, V. Paxson, and D. Towsley, "The > Use of End-to-End Multicast Measurements for Characterizing Internal > Network Behavior," IEEE Communications Magazine, May 2000. > > [9] R. Caceres, N. G. Duffield, and T. Friedman, "Impromptu > measurement infrastructures using RTP," Proc. IEEE Infocom 2002. > > [10] A. D. Clark, "Modeling the Effects of Burst Packet Loss and > Recency on Subjective Voice Quality," Proc. IP Telephony Workshop > 2001. > > [11] D. Sisalem and A. Wolisz, "MLDA: A TCP-friendly Congestion > Control Framework for Heterogeneous Multicast Environments", Proc. > IWQoS 2000. > > > > > > > > > > > > > > Friedman, Caceres, and Clark, eds. [Page 41] > > _______________________________________________ Audio/Video Transport Working Group avt@ietf.org https://www1.ietf.org/mailman/listinfo/avt
- [AVT] draft-ietf-avt-rtcp-report-extns-02.txt Timur Friedman
- RE: [AVT] draft-ietf-avt-rtcp-report-extns-02.txt Timur Friedman
- Re: [AVT] draft-ietf-avt-rtcp-report-extns-02.txt Joerg Ott
- Re: [AVT] draft-ietf-avt-rtcp-report-extns-02.txt Magnus Westerlund
- RE : [AVT] draft-ietf-avt-rtcp-report-extns-02.txt Timur Friedman
- RE : [AVT] draft-ietf-avt-rtcp-report-extns-02.txt Timur Friedman
- Re: RE : [AVT] draft-ietf-avt-rtcp-report-extns-0… Magnus Westerlund
- RE : RE : [AVT] draft-ietf-avt-rtcp-report-extns-… Timur Friedman
- RE: RE : RE : [AVT] draft-ietf-avt-rtcp-report-ex… Alan Clark
- RE: RE : RE : [AVT] draft-ietf-avt-rtcp-report-ex… Magnus Westerlund (EAB)
- RE: RE : RE : [AVT] draft-ietf-avt-rtcp-report-ex… Alan Clark
- RE: RE : RE : [AVT] draft-ietf-avt-rtcp-report-ex… Magnus Westerlund (EAB)
- [AVT] draft-ietf-avt-rtcp-report-extns-03.txt Timur Friedman