| < draft-zheng-xrblock-effective-loss-index-00.txt | draft-zheng-xrblock-effective-loss-index-01.txt > | |||
|---|---|---|---|---|
| Network Working Group H. Zheng | Network Working Group H. Zheng | |||
| Internet-Draft R. Even | Internet-Draft R. Even | |||
| Intended status: Informational Q. Wu | Intended status: Informational Q. Wu | |||
| Expires: May 3, 2018 Huawei | Expires: August 2, 2018 Huawei | |||
| R. Gu | R. Gu | |||
| China Mobile | China Mobile | |||
| October 30, 2017 | R. Huang | |||
| Huawei | ||||
| January 29, 2018 | ||||
| RTP Control Protocol (RTCP) Extended Report (XR) Block for Effective | RTP Control Protocol (RTCP) Extended Report (XR) Block for Effective | |||
| Loss Index Reporting | Loss Index Reporting | |||
| draft-zheng-xrblock-effective-loss-index-00 | draft-zheng-xrblock-effective-loss-index-01 | |||
| Abstract | Abstract | |||
| This document defines a new metric for RTP applications to measure | This document defines a new metric for RTP monitors to estimate the | |||
| the effectiveness of stream repair means, and an RTP Control Protocol | effectiveness of stream repair means, and an RTP Control Protocol | |||
| (RTCP) Extended Report (XR) Block to report the metric. | (RTCP) Extended Report (XR) Block to report the metric. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 3, 2018. | This Internet-Draft will expire on May 3, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Effective Loss Index . . . . . . . . . . . . . . . . . . 3 | 1.1. Effective Loss Index . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Applicability . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Applicability . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.3. RTCP and RTCP XR Reports . . . . . . . . . . . . . . . . 5 | 1.3. RTCP and RTCP XR Reports . . . . . . . . . . . . . . . . . 5 | |||
| 1.4. Performance Metrics Framework . . . . . . . . . . . . . . 5 | 1.4. Performance Metrics Framework . . . . . . . . . . . . . . 5 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Effective Loss Index Report Block . . . . . . . . . . . . . . 5 | 3. Effective Loss Index Report Block . . . . . . . . . . . . . . 5 | |||
| 4. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. SDP rtcp-xr-attrib Attribute Extension . . . . . . . . . 6 | 4.1. SDP rtcp-xr-attrib Attribute Extension . . . . . . . . . . 6 | |||
| 4.2. Offer/Answer Usage . . . . . . . . . . . . . . . . . . . 7 | 4.2. Offer/Answer Usage . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.1. New RTCP XR Block Type Value . . . . . . . . . . . . . . 7 | 6.1. New RTCP XR Block Type Value . . . . . . . . . . . . . . . 8 | |||
| 6.2. New RTCP XR SDP Parameter . . . . . . . . . . . . . . . . 8 | 6.2. New RTCP XR SDP Parameter . . . . . . . . . . . . . . . . 9 | |||
| 6.3. Contact Information for Registrations . . . . . . . . . . 8 | 6.3. Contact Information for Registrations . . . . . . . . . . 9 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 9 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 8 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 9 | |||
| Appendix A. Metric Represented Using the Template from RFC 6390 10 | Appendix A. Metric Represented Using the Template from RFC 6390 . 11 | |||
| A.1. Effective Loss Index . . . . . . . . . . . . . . . . . . 10 | A.1. Effective Loss Index . . . . . . . . . . . . . . . . . . . 11 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 1. Introduction | 1. Introduction | |||
| RTP applications often use stream repair means, e.g. FEC (Forward | RTP applications often use stream repair means, e.g. FEC (Forward | |||
| Error Correction) [RFC5109] and/or retransmission [RFC4588] to | Error Correction) [RFC5109] and/or retransmission [RFC4588] to | |||
| improve the robustness of media streams. With the presence of those | improve the robustness of media streams. With the presence of those | |||
| stream repair means, a degree of packet loss can be recovered for a | stream repair means, a degree of packet loss can be recovered for a | |||
| media stream. In the past, some RTCP Extend Reports (XRs) were | media stream. In the past, some RTCP Extend Reports (XRs) were | |||
| defined to reflect the situation of post-repair loss. For example, | defined to reflect the situation of post-repair loss. For example, | |||
| [RFC5725] defines an XR block using Run Length Encoding (RLE) to | [RFC5725] defines an XR block using Run Length Encoding (RLE) to | |||
| report post-repair loss; [RFC7509] defines count metrics for post- | report post-repair loss; [RFC7509] defines count metrics for post- | |||
| repair loss. | repair loss. | |||
| This document proposes a new metric Effective Loss Index (ELI) to | This document proposes a new metric Effective Loss Index (ELI) to | |||
| measure the effectiveness of stream repair means. The new metric | estimate the effectiveness of stream repair means. The new metric | |||
| provides a simpler view on the post-repair loss than the mechanisms | provides a simpler view on the post-repair loss than the mechanisms | |||
| documented in [RFC5725] and [RFC7509]. EFI is an index, so the | documented in [RFC5725] and [RFC7509]. EFI is an index, so the | |||
| values reported from different RTP sources can be compared directly, | values reported from the monitors deployed in the different places in | |||
| which makes it easier to rank the effectiveness of loss repair means. | the network can be compared directly, which makes it easier to | |||
| An example use case is to find endpoints whose ELI values are at | diagnose the network problem when delivering the RTP streams. A use | |||
| bottom 10%. For those endpoints, more informative XR reports such as | case is to compare the ELI value reported by a monitor with a certain | |||
| those in [RFC5725] and [RFC7509] can then be used to discover more | reasonable threshold to see if there are any problems during an RTP | |||
| details about the loss situations. | streaming session. For those endpoints, more informative XR reports | |||
| such as those in [RFC5725] and [RFC7509] can then be used to discover | ||||
| more details about the loss situations. | ||||
| This document also defines an XR block to report the metric, which | This document also defines in section 3, an XR block to report the | |||
| can be found out in Section 3. | metric. | |||
| 1.1. Effective Loss Index | 1.1. Effective Loss Index | |||
| Effective Loss Index (ELI) uses a simple model to measure the | Effective Loss Index (ELI) uses a simple model to measure the loss | |||
| effectiveness of loss repair. The model assumes that repair means | impact after applying loss repairsof loss repair. It is useful | |||
| are applied onto packets by batches of equal size. Lower ELI means | especially in the middleboxes which usually are passive observer and | |||
| that the repair was more successful. Specifically, a batch is | do not have the ability to recover the loss data. | |||
| identified by a range of RTP sequence numbers. The size of a batch | ||||
| is number of packets. An application can agree upon a default batch | ||||
| size, or use the SDP signaling defined in Section 4.1 to communicate | ||||
| one. | ||||
| An RTP endpoint is thought to process received packets and apply | The model assumes that repair means are applied onto packets by | |||
| batches of equal size. Lower ELI means that loss impact is minimal. | ||||
| Specifically, a batch is identified by a range of RTP sequence | ||||
| numbers. The size of a batch is number of packets. An application | ||||
| can agree upon a default batch size, or use the SDP signaling defined | ||||
| in Section 4.1 to communicate one if the middlebox can see the SDP, | ||||
| or just configure it. | ||||
| An RTP endpoint is assumed to process received packets and apply | ||||
| repair means batch by batch. For each batch, if there is still some | repair means batch by batch. For each batch, if there is still some | |||
| unrecoverable loss after having applied the repair means, then the | unrecoverable loss after having applied the repair means, then the | |||
| repair means are deemed as ineffective. The ineffectiveness is | repair means are deemed as ineffective. The ineffectiveness is | |||
| denoted by Effective Loss Factor (ELF), along with a parameter | denoted by Effective Loss Factor (ELF), along with a parameter Loss | |||
| Effective Loss Threshold, showing below: | Repair Threshold, showing below: | |||
| if Post-Repair Loss > Effective Loss Threshold | if Loss Packets Number > Loss Repair Threshold | |||
| Effective Loss Factor = 1 | Effective Loss Factor = 1 | |||
| else | else | |||
| Effective Loss Factor = 0 | Effective Loss Factor = 0 | |||
| endif | endif | |||
| Figure 1: Calculation of Effective Loss Factor | Figure 1: Calculation of Effective Loss Factor | |||
| The parameters in Figure 1 are explained below: | The parameters in Figure 1 are explained below: | |||
| o Post-Repair Loss is the number of packet lost after repair in the | o Loss Packets Number is the number of packet lost in the batch. | |||
| batch. | ||||
| o Effective Loss Threshold is in number of packets. | o Loss Repair Threshold indicates the maximum loss packets number | |||
| that can be recovered. | ||||
| The minimum value of Effective Loss Threshold is zero. This document | The minimum value of Loss Repair Threshold is zero, which means there | |||
| does not mandate any value for Effective Loss Threshold. | is no loss repair. This document does not mandate any value for Loss | |||
| Applications can prescribe a value for themselves without signaling. | Repair Threshold. Applications can prescribe a value for themselves | |||
| without signaling. For example, it can be calculated by the batch | ||||
| size multiplied by the fixed redundancy ratio of the FEC algorithm. | ||||
| On the other hand, SDP signaling defined in Section 4.1 can be used | On the other hand, SDP signaling defined in Section 4.1 can be used | |||
| to communicate the value. Determining an Effective Loss Threshold | to communicate the value. | |||
| value for use can be empirical, applications may have to try out and | ||||
| change the value from time to time, depending on their needs. | ||||
| Effective Loss Index is an integer derived by calculating the average | Effective Loss Index is an integer derived by calculating the average | |||
| Effective Loss Factor across a sequence of consecutive batches of RTP | Effective Loss Factor across a sequence of consecutive batches of RTP | |||
| packets. Let ELF(i) be the Effective Loss Factor calculated for i-th | packets. Let ELF(i) be the Effective Loss Factor calculated for i-th | |||
| batch, and N as number of batches in the sequence, then Effective | batch, and N as number of batches in the sequence, then Effective | |||
| Loss Index is calculated as: | Loss Index is calculated as: | |||
| ELF(1)+ELF(2)+ ...+ELF(N) | ELF(1)+ELF(2)+ ...+ELF(N) | |||
| Effective Loss Index = ------------------------- x 10000 | Effective Loss Index = ------------------------- | |||
| N | N | |||
| Figure 2: Calculation of Effective Loss Index | Figure 2: Calculation of Effective Loss Index | |||
| The following is an example of how to calculate Effective Loss Index. | The following is an example of how to calculate Effective Loss Index. | |||
| For simplicity and demonstration purpose, the size of batches is | For simplicity and demonstration purpose, the size of a batch is | |||
| assumed to be 3, and the Effective Loss Threshold is assumed to be 1. | assumed to be 3, and the Loss Repair Threshold is assumed to be 1. | |||
| The example processes a sequence of 9 RTP packets in 3 batches. | The example processes a sequence of 9 RTP packets (x means lost) in 7 | |||
| batches. | ||||
| Batch Post-Repair Effective | 1xx4x6x89 | |||
| Loss Loss Factor | ||||
| Batch Loss Effective Loss Factor | ||||
| | 1 2 3 | 2, 3 1 | | 1 2 3 | 2, 3 1 | |||
| | 2 3 4 | 2, 3 1 | ||||
| | 3 4 5 | 3 0 | ||||
| | 4 5 6 | 5 0 | | 4 5 6 | 5 0 | |||
| | 5 6 7 | 5, 7 1 | ||||
| | 6 7 8 | 7 0 | ||||
| | 7 8 9 | 7 0 | | 7 8 9 | 7 0 | |||
| 1 + 0 + 0 | 1+1+0+0+1+0+0 | |||
| Effective Loss Index = ----------- x 10000 = 3333 | Effective Loss Index = --------------- = 0.4285 | |||
| 3 | 7 | |||
| 1.2. Applicability | This example provides fine grained estimation for loss recovery. It | |||
| can detect the loss burst happening over batches. Implementations can | ||||
| also do coarse grained estimation by simply dividing total packets | ||||
| into several batches. | ||||
| 1.2. Applicability | ||||
| The metric defined by this document is applicable to a range of RTP | The metric defined by this document is applicable to a range of RTP | |||
| applications that send packets in batches of equal length, probably | applications that send packets with stream repair means (e.g., | |||
| with stream repair means (e.g., Forward Error Correction (FEC) | Forward Error Correction (FEC) [RFC5109] and/or retransmission | |||
| [RFC5109] and/or retransmission [RFC4588]) applied on the batches. | [RFC4588]) applied on them. Note that this metric is only valuable | |||
| Note that in order to not interfere with the batches being protected, | for FECs where he redundant data are sent in a different RTP stream | |||
| any additional packets generated by the stream repair means SHOULD be | from the original media stream. | |||
| in a different RTP stream. | ||||
| The number of batches among which ELI is calculated should not be too | The number of batches among which ELI is calculated should not be too | |||
| few, otherwise the result may be too biased. However, specifying a | few, otherwise the result may be biased. It is suggested to calculate | |||
| minimal number of batches seems unrealistic, due to the stream repair | it based on the total number of RTP packets during the measurement | |||
| means used by applications can be quite different. This document | interval, as in the section 1.1 example: | |||
| leaves it to applications to choose a suitable minimal value for the | ||||
| number of batches. | The number of batches = (The total number of RTP packets - the size | |||
| of a batch) + 1. | ||||
| 1.3. RTCP and RTCP XR Reports | 1.3. RTCP and RTCP XR Reports | |||
| The use of RTCP for reporting is defined in [RFC3550]. [RFC3611] | The use of RTCP for reporting is defined in [RFC3550]. [RFC3611] | |||
| defines an extensible structure for reporting by using an RTCP | defines an extensible structure for reporting by using an RTCP | |||
| Extended Report (XR). This document defines a new Extended Report | Extended Report (XR). This document defines a new Extended Report | |||
| block for use with [RFC3550] and [RFC3611]. | block for use with [RFC3550] and [RFC3611]. | |||
| 1.4. Performance Metrics Framework | 1.4. Performance Metrics Framework | |||
| skipping to change at page 6, line 4 ¶ | skipping to change at page 6, line 18 ¶ | |||
| identified by the constant 'TBD'. | identified by the constant 'TBD'. | |||
| [[Editor Note: should replace 'TBD' with assigned value]] | [[Editor Note: should replace 'TBD' with assigned value]] | |||
| Reserved: 8 bits: These bits are reserved for future use. They MUST | Reserved: 8 bits: These bits are reserved for future use. They MUST | |||
| be set to zero by senders and ignored by receivers (see | be set to zero by senders and ignored by receivers (see | |||
| Section 4.2 of [RFC6709]). | Section 4.2 of [RFC6709]). | |||
| Block length: 16 bits: This field is in accordance with the | Block length: 16 bits: This field is in accordance with the | |||
| definition in [RFC3611]. In this report block, it MUST be set to | definition in [RFC3611]. In this report block, it MUST be set to | |||
| 3. The block MUST be discarded if the block length is set to a | 3. The block MUST be discarded if the block length is set to a | |||
| different value. | different value. | |||
| SSRC of source: 32 bits: As defined in Section 4.1 of [RFC3611]. | SSRC of source: 32 bits: The SSRC of the RTP data packet source | |||
| being reported upon by this report block, as defined in Section | ||||
| 4.1 of [RFC3611]. | ||||
| Effective Loss Index: 16 bits: The value of this field SHOULD be set | Effective Loss Index: 16 bits: The value of Effective Loss Index, | |||
| to the calculated result of Effective Loss Index (as in Figure 2). | equivalent to taking the integer part after multiplying the the | |||
| calculated result of Effective Loss Index (as in Figure 2) by | ||||
| 65535. | ||||
| Padding: 16 bits: These bits MUST be set to zero by senders and | Padding: 16 bits: These bits MUST be set to zero by senders and | |||
| ignored by receivers. | ignored by receivers. | |||
| 4. SDP Signaling | 4. SDP Signaling | |||
| [RFC3611] defines the use of SDP (Session Description Protocol) for | [RFC3611] defines the use of SDP (Session Description Protocol) for | |||
| signaling the use of RTCP XR blocks. However, XR blocks MAY be used | signaling the use of RTCP XR blocks. However, XR blocks MAY be used | |||
| without prior signaling (see Section 5 of [RFC3611]). | without prior signaling (see Section 5 of [RFC3611]). | |||
| skipping to change at page 8, line 23 ¶ | skipping to change at page 9, line 23 ¶ | |||
| 6.3. Contact Information for Registrations | 6.3. Contact Information for Registrations | |||
| The contact information for the registrations is: | The contact information for the registrations is: | |||
| RAI Area Directors <rai-ads@ietf.org> | RAI Area Directors <rai-ads@ietf.org> | |||
| 7. Acknowledgements | 7. Acknowledgements | |||
| This document has benefited greatly from the comments of various | This document has benefited greatly from the comments of various | |||
| people. The following individuals have contributed to this document: | people. The following individuals have contributed to this document: | |||
| Rachel Huang, Colin Perkins, Yanfang Zhang, Lingyan Wu. | Colin Perkins, Yanfang Zhang. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| skipping to change at page 10, line 35 ¶ | skipping to change at page 11, line 35 ¶ | |||
| unsigned integer value representing the effectiveness of stream | unsigned integer value representing the effectiveness of stream | |||
| repair means. | repair means. | |||
| o Measurement Point(s) with Potential Measurement Domain: It is | o Measurement Point(s) with Potential Measurement Domain: It is | |||
| measured at the receiving end of the RTP stream. | measured at the receiving end of the RTP stream. | |||
| o Measurement Timing: This metric relies on the sequence number | o Measurement Timing: This metric relies on the sequence number | |||
| interval to determine measurement timing. | interval to determine measurement timing. | |||
| o Use and Applications: These metrics are applicable to any RTP | o Use and Applications: These metrics are applicable to any RTP | |||
| application, especially those that use loss-repair mechanisms. | applications, especially those that use loss-repair mechanisms. | |||
| See Section 1 for details. | See Section 1 for details. | |||
| o Reporting Model: See RFC 3611. | o Reporting Model: See RFC 3611. | |||
| Authors' Addresses | Authors' Addresses | |||
| Hui Zheng (Marvin) | Hui Zheng (Marvin) | |||
| Huawei | Individual | |||
| Email: marvin.zhenghui@huawei.com | Email: zh4ui@huawei.comoutlook.com | |||
| Roni Even | Roni Even | |||
| Huawei | Huawei | |||
| Email: roni.even@huawei.com | Email: roni.even@huawei.com | |||
| Qin Wu | Qin Wu | |||
| Huawei | Huawei | |||
| Email: bill.wu@huawei.com | Email: bill.wu@huawei.com | |||
| Rong Gu | Rong Gu | |||
| China Mobile | China Mobile | |||
| Email: gurong_cmcc@outlook.com | Email: gurong_cmcc@outlook.com | |||
| Rachel Huang | ||||
| Huawei | ||||
| Email: rachel.huang@huawei.com | ||||
| End of changes. 35 change blocks. | ||||
| 86 lines changed or deleted | 109 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||