rfc8868xml2.original.xml | rfc8868.xml | |||
---|---|---|---|---|
<?xml version="1.0"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.2119.xml"> | ||||
<!ENTITY rfc3550 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.3550.xml"> | ||||
<!ENTITY rfc3551 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.3551.xml"> | ||||
<!ENTITY rfc3611 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.3611.xml"> | ||||
<!ENTITY rfc4585 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.4585.xml"> | ||||
<!ENTITY rfc5506 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.5506.xml"> | ||||
<!ENTITY rfc5166 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.5166.xml"> | ||||
<!ENTITY rfc5033 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.5033.xml"> | ||||
<!ENTITY rfc8593 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.8593.xml"> | ||||
<!-- <!ENTITY rfc5681 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/refer | ||||
ence.RFC.5681.xml"> --> | ||||
<!ENTITY rfc8083 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
RFC.8083.xml"> | ||||
<!ENTITY I-D.ietf-rmcat-cc-requirements PUBLIC "" | ||||
"http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-rmcat-cc-requirem | ||||
ents.xml"> | ||||
<!ENTITY I-D.ietf-avtcore-rtp-circuit-breakers PUBLIC "" | ||||
"http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-avtcore-rtp-circu | ||||
it-breakers.xml"> | ||||
<!ENTITY I-D.ietf-netvc-testing PUBLIC "" | ||||
"https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netvc-test | ||||
ing.xml"> | ||||
<!ENTITY I-D.ietf-rmcat-eval-test PUBLIC "" | ||||
"http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-rmcat-eval-test.x | ||||
ml"> | ||||
<!ENTITY I-D.ietf-rmcat-wireless-tests PUBLIC "" | ||||
"http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-rmcat-wireless-te | ||||
sts.xml"> | ||||
]> | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
<?rfc toc="yes" ?> | ||||
<?rfc compact="yes" ?> | ||||
<?rfc symrefs="yes" ?> | ||||
<rfc ipr="trust200902" docName="draft-ietf-rmcat-eval-criteria-14" category="inf | ||||
o"> | ||||
<!-- What is the category field value--> | ||||
<front> | ||||
<title abbrev="Evaluating Congestion Control for RMCAT"> | ||||
Evaluating Congestion Control for Interactive Real-time Media | ||||
<!--Evaluation Criteria for RTP Congestion Avoidance Techniques --> | ||||
</title> | ||||
<author initials="V." surname="Singh" fullname="Varun Singh"> | <!-- updated by Chris 04/23/20 --> | |||
<organization abbrev="callstats.io"> | ||||
CALLSTATS I/O Oy | ||||
</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Runeberginkatu 4c A 4</street> | ||||
<code>00100</code> <city>Helsinki</city> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>varun.singh@iki.fi</email> | ||||
<uri> | ||||
https://www.callstats.io/about | ||||
</uri> | ||||
</address> | ||||
</author> | ||||
<author initials="J." surname="Ott" fullname="Joerg Ott"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<organization>Technical University of Munich</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Faculty of Informatics</street> | ||||
<street>Boltzmannstrasse 3</street> | ||||
<city>Garching bei München</city> | ||||
<region>DE</region> | ||||
<code>85748</code> | ||||
<country>Germany</country> | ||||
</postal> | ||||
<email>ott@in.tum.de</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Stefan Holmer" initials="S." surname="Holmer"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
<organization abbrev="Google">Google</organization> | ipr="trust200902" | |||
<address> | docName="draft-ietf-rmcat-eval-criteria-14" | |||
<postal> | number="8868" | |||
<street>Kungsbron 2</street> | submissionType="IETF" | |||
<code>11122</code> | category="info" | |||
<city>Stockholm</city> | consensus="true" | |||
<country>Sweden</country> | obsoletes="" | |||
</postal> | updates="" | |||
<email>holmer@google.com</email> | xml:lang="en" | |||
</address> | tocInclude="true" | |||
</author> | symRefs="true" | |||
sortRefs="true" | ||||
version="3"> | ||||
<date year="2020" month="3"/> | <!-- xml2rfc v2v3 conversion 2.43.0 --> | |||
<area>TSV</area> | <front> | |||
<workgroup>RMCAT WG</workgroup> | <title abbrev="Evaluating Congestion Control for Interactive Real-Time Media | |||
<keyword>RTP</keyword> | "> | |||
<keyword>RTCP</keyword> | Evaluating Congestion Control for Interactive Real-Time Media | |||
<keyword>Congestion Control</keyword> | </title> | |||
<abstract> | <seriesInfo name="RFC" value="8868"/> | |||
<t>The Real-time Transport Protocol (RTP) is used to transmit | <author initials="V." surname="Singh" fullname="Varun Singh"> | |||
<organization abbrev="callstats.io"> | ||||
CALLSTATS I/O Oy | ||||
</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Rauhankatu 11 C</street> | ||||
<code>00100</code> | ||||
<city>Helsinki</city> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>varun.singh@iki.fi</email> | ||||
<uri> | ||||
https://www.callstats.io/ | ||||
</uri> | ||||
</address> | ||||
</author> | ||||
<author initials="J." surname="Ott" fullname="Jörg Ott"> | ||||
<organization>Technical University of Munich</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Faculty of Informatics</street> | ||||
<street>Boltzmannstrasse 3</street> | ||||
<city>Garching bei München</city> | ||||
<code>85748</code> | ||||
<country>Germany</country> | ||||
</postal> | ||||
<email>ott@in.tum.de</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Stefan Holmer" initials="S." surname="Holmer"> | ||||
<organization abbrev="Google">Google</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Kungsbron 2</street> | ||||
<code>11122</code> | ||||
<city>Stockholm</city> | ||||
<country>Sweden</country> | ||||
</postal> | ||||
<email>holmer@google.com</email> | ||||
</address> | ||||
</author> | ||||
<date year="2020" month="August" /> | ||||
<area>TSV</area> | ||||
<workgroup>RMCAT</workgroup> | ||||
<keyword>RTP</keyword> | ||||
<keyword>RTCP</keyword> | ||||
<keyword>Congestion Control</keyword> | ||||
<abstract> | ||||
<t>The Real-Time Transport Protocol (RTP) is used to transmit | ||||
media in telephony and video conferencing applications. This | media in telephony and video conferencing applications. This | |||
document describes the guidelines to evaluate new congestion | document describes the guidelines to evaluate new congestion | |||
control algorithms for interactive point-to-point real-time | control algorithms for interactive point-to-point real-time | |||
media.</t> | media.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction"> | <section numbered="true" toc="default"> | |||
<name>Introduction</name> | ||||
<t>This memo describes the guidelines to help with evaluating | <t>This memo describes the guidelines to help with evaluating | |||
new congestion control algorithms for interactive | new congestion control algorithms for interactive | |||
point-to-point real time media. The requirements for the | point-to-point real-time media. The requirements for the | |||
congestion control algorithm are outlined in <xref | congestion control algorithm are outlined in <xref target="RFC8836" | |||
target="I-D.ietf-rmcat-cc-requirements" />). This document | format="default"/>. This document | |||
builds upon previous work at the IETF: <xref | builds upon previous work at the IETF: <xref target="RFC5033" format | |||
target="RFC5033">Specifying New Congestion Control | ="default">Specifying New Congestion Control | |||
Algorithms</xref> and <xref target="RFC5166">Metrics for the | Algorithms</xref> and <xref target="RFC5166" format="default">Metric | |||
s for the | ||||
Evaluation of Congestion Control Algorithms</xref>.</t> | Evaluation of Congestion Control Algorithms</xref>.</t> | |||
<t>The guidelines proposed in the document are intended to help | ||||
<t>The guidelines proposed in the document are intended to help | prevent a congestion collapse, to promote fair capacity usage, and | |||
prevent a congestion collapse, promote fair capacity usage and | to optimize the media flow's throughput. Furthermore, the proposed | |||
optimize the media flow's throughput. Furthermore, the proposed | ||||
congestion control algorithms are expected to operate within the env elope of the | congestion control algorithms are expected to operate within the env elope of the | |||
circuit breakers defined in <xref target="RFC8083">RFC8083</xref>.</ | circuit breakers defined in RFC 8083 <xref target="RFC8083" format=" | |||
t> | default">RFC8083</xref>.</t> | |||
<t>This document only provides the broad set of network | ||||
<t>This document only provides the broad set of network | parameters and traffic models for evaluating a new | |||
parameters and and traffic models for evaluating a new | congestion control algorithm. The minimal requirement | |||
congestion control algorithm. The minimal requirements | ||||
for congestion control proposals is to produce or present | for congestion control proposals is to produce or present | |||
results for the test scenarios described in <xref | results for the test scenarios described in <xref target="RFC8867" f | |||
target="I-D.ietf-rmcat-eval-test" /> (Basic Test Cases), | ormat="default"/> (Basic Test Cases), | |||
which also defines the specifics for the test cases. | which also defines the specifics for the test cases. | |||
Additionally, proponents may produce evaluation results | Additionally, proponents may produce evaluation results | |||
for the <xref target="I-D.ietf-rmcat-wireless-tests"> | for the <xref target="RFC8869" format="default"> | |||
wireless test scenarios</xref>. | wireless test scenarios</xref>. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
This document does not cover application-specific | This document does not cover application-specific | |||
implications of congestion control algorithms and how | implications of congestion control algorithms and how | |||
those could be evaluated. Therefore, no quality metrics | those could be evaluated. Therefore, no quality metrics | |||
are defined for performance evaluation; quality metrics | are defined for performance evaluation; quality metrics | |||
and algorithms to infer those vary between media types. | and the algorithms to infer those vary between media types. | |||
Metrics and algorithms to assess, e.g., quality of | Metrics and algorithms to assess, e.g., the quality of | |||
experience evolve continuously so that determining | experience, evolve continuously so that determining | |||
suitable choices is left for future work. However, there | suitable choices is left for future work. However, there | |||
is consensus that each congestion control algorithm | is consensus that each congestion control algorithm | |||
should be able to show that it is useful for interactive | should be able to show that it is useful for interactive | |||
video by performing analysis using a real codecs and | video by performing analysis using real codecs and | |||
video sequences and state-of-the-art quality metrics. | video sequences and state-of-the-art quality metrics. | |||
</t> | </t> | |||
<t> | <t> | |||
Beyond optimizing individual metrics, real-time | Beyond optimizing individual metrics, real-time | |||
applications may have further options to trade off | applications may have further options to trade off | |||
performance, e.g., across multiple media; refer to the | performance, e.g., across multiple media; refer to the | |||
<xref target="I-D.ietf-rmcat-cc-requirements">RMCAT | <xref target="RFC8836" format="default">RMCAT | |||
requirements</xref> document. Such trade-offs may be | requirements</xref> document. Such trade-offs may be | |||
defined in the future. | defined in the future. | |||
</t> | </t> | |||
</section> | ||||
</section> | <section anchor="sec-terminology" numbered="true" toc="default"> | |||
<name>Terminology</name> | ||||
<section title="Terminology" anchor="sec-terminology"> | ||||
<!--<t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", | ||||
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described | ||||
in BCP 14, <xref target="RFC2119" /> and indicate requirement | ||||
levels for compliant implementations. </t> --> | ||||
<t> The terminology defined in <xref target="RFC3550">RTP</xref>, | ||||
<xref target="RFC3551">RTP Profile for Audio and Video Conferences | ||||
with Minimal Control</xref>, <xref target="RFC3611">RTCP Extended | ||||
Report (XR)</xref>, <xref target="RFC4585">Extended RTP Profile | ||||
for RTCP-based Feedback (RTP/AVPF)</xref> and <xref | ||||
target="RFC5506">Support for Reduced-Size RTCP</xref> apply.</t> | ||||
</section> | ||||
<section title="Metrics" anchor="cc-metrics"> | ||||
<!-- <t><xref target="RFC5166" /> describes the basic metrics for | <t> The terminology defined in <xref target="RFC3550" format="defaul | |||
congestion control. Metrics that are of interest for interactive | t">RTP</xref>, | |||
multimedia are: | <xref target="RFC3551" format="default">RTP Profile for Audio and Vi | |||
<list style="symbols"> | deo Conferences | |||
<t>Throughput.</t> | with Minimal Control</xref>, <xref target="RFC3611" format="default" | |||
<t>Minimizing oscillations in the transmission rate (stability) | >RTCP Extended | |||
when the end-to-end capacity varies slowly.</t> | Report (XR)</xref>, <xref target="RFC4585" format="default">Extended | |||
<t>Delay.</t> | RTP Profile | |||
<t>Reactivity to transient events.</t> | for RTCP-Based Feedback (RTP/AVPF)</xref> and <xref target="RFC5506" | |||
<t>Packet losses and discards.</t> | format="default">Support for Reduced-Size RTCP</xref> applies.</t> | |||
<t>Users' quality of experience</t> | </section> | |||
<t>Section 2.1 of <xref target="RFC5166" /> discusses the tradeoff | <section anchor="cc-metrics" numbered="true" toc="default"> | |||
between throughput, delay and loss.</t> | <name>Metrics</name> | |||
</list></t> --> | ||||
<t> This document specifies testing criteria for evaluating | <t> This document specifies testing criteria for evaluating | |||
congestion control algorithms for RTP media flows. Proposed | congestion control algorithms for RTP media flows. Proposed | |||
algorithms are to prove their performance by means of | algorithms are to prove their performance by means of | |||
simulation and/or emulation experiments for all the cases | simulation and/or emulation experiments for all the cases | |||
described.</t> | described.</t> | |||
<t>Each experiment is expected to log every incoming and outgoing | ||||
<t>Each experiment is expected to log every incoming and outgoing | packet (the RTP logging format is described in <xref target="rtp-loggin | |||
packet (the RTP logging format is described in <xref | g" format="default"/>). The logging can be done inside the | |||
target="rtp-logging" />). The logging can be done inside the | ||||
application or at the endpoints using PCAP (packet capture, e.g., | application or at the endpoints using PCAP (packet capture, e.g., | |||
tcpdump <xref target="tcpdump"/>, wireshark <xref target="wireshark"/>) . | tcpdump <xref target="tcpdump" format="default"/>, Wireshark <xref targ et="wireshark" format="default"/>). | |||
The following metrics are calculated based on the | The following metrics are calculated based on the | |||
information in the packet logs: | information in the packet logs: | |||
<list style="numbers"> | </t> | |||
<t>Sending rate, Receiver rate, Goodput (measured at 200ms intervals | <ol spacing="normal" type="1"> | |||
)</t> | <li>Sending rate, receiver rate, goodput (measured at 200ms intervals)</ | |||
<t>Packets sent, Packets received</t> | li> | |||
<t>Bytes sent, bytes received</t> | <li>Packets sent, packets received</li> | |||
<t>Packet delay</t> | <li>Bytes sent, bytes received</li> | |||
<t>Packets lost, Packets discarded (from the playout or de-jitter bu | <li>Packet delay</li> | |||
ffer)</t> | <li>Packets lost, packets discarded (from the playout or de-jitter buffe | |||
<t>If using, retransmission or FEC: post-repair loss</t> | r)</li> | |||
<li>If using retransmission or FEC: post-repair loss</li> | ||||
<!-- <t>[Editor's note: How to handle packet re-transmissions? loss befo | <li> | |||
re | <t>Self-fairness and fairness with respect to cross | |||
retransmission, after retransmission?]</t> --> | ||||
<!-- t>Fairness or Unfairness: Experiments testing the performance | ||||
of an RMCAT proposal against any cross-traffic must define its | ||||
expected criteria for fairness. The "unfairness" test guideline | ||||
(measured at 1s intervals) is:<vspace /> | ||||
1. Does not trigger the circuit breaker.<vspace /> | ||||
2. No RMCAT stream achieves more than 3 times the average throug | ||||
hput | ||||
of the RMCAT stream with the lowest average throughput, for a ca | ||||
se | ||||
when the competing streams have similar RTTs.<vspace /> | ||||
3. RTT should not grow by a factor of 3 for the existing flows w | ||||
hen a | ||||
new flow is added. | ||||
<vspace /> | ||||
--> | ||||
<t>Self-Fairness and Fairness with respect to cross | ||||
traffic: Experiments testing a given congestion control proposal must | traffic: Experiments testing a given congestion control proposal must | |||
report on relative ratios of the average throughput | report on relative ratios of the average throughput | |||
(measured at coarser time intervals) obtained by each | (measured at coarser time intervals) obtained by each | |||
RTP media stream. In the presence of background cross-traffic | RTP media stream. In the presence of background cross-traffic | |||
such as TCP, the report must also include the relative | such as TCP, the report must also include the relative | |||
ratio between average throughput of RTP media streams and | ratio between average throughput of RTP media streams and | |||
cross-traffic streams. | cross-traffic streams. | |||
<vspace/> | </t> | |||
<t> | ||||
During static periods of a test (i.e., when bottleneck | During static periods of a test (i.e., when bottleneck | |||
bandwidth is constant and no arrival/departure of | bandwidth is constant and no arrival/departure of | |||
streams), these report on relative ratios serve as an | streams), these reports on relative ratios serve as an | |||
indicator of how fair the RTP streams share bandwidth | indicator of how fairly the RTP streams share bandwidth | |||
amongst themselves and against cross-traffic streams. The | amongst themselves and against cross-traffic streams. The | |||
throughput measurement interval should be set at a few | throughput measurement interval should be set at a few | |||
values (for example, at 1s, 5s, and 20s) in order to | values (for example, at 1 s, 5 s, and 20 s) in order to | |||
measure fairness across different time scales. | measure fairness across different timescales. | |||
<vspace/> | </t> | |||
As a general guideline, the relative ratio between congestion control | <t> | |||
led RTP | As a general guideline, the relative ratio between congestion-control | |||
led RTP | ||||
flows with the same priority level and similar path RTT | flows with the same priority level and similar path RTT | |||
should be bounded between (0.333 and 3.) For example, see | should be bounded between 0.333 and 3. For example, see | |||
the test scenarios described in <xref | the test scenarios described in <xref target="RFC8867" format="defaul | |||
target="I-D.ietf-rmcat-eval-test" />.</t> | t"/>.</t> | |||
</li> | ||||
<t>Convergence time: The time taken to reach a stable rate at startu | <li>Convergence time: The time taken to reach a stable rate at startup, | |||
p, | ||||
after the available link capacity changes, or when new flows get add ed | after the available link capacity changes, or when new flows get add ed | |||
to the bottleneck link.</t> | to the bottleneck link.</li> | |||
<li>Instability or oscillation in the sending rate: The frequency or | ||||
<t>Instability or oscillation in the sending rate: The frequency or | ||||
number of instances when the sending rate oscillates between an | number of instances when the sending rate oscillates between an | |||
high watermark level and a low watermark level, or vice-versa in | high watermark level and a low watermark level, or vice-versa in | |||
a defined time window. For example, the watermarks can be set at 4x | a defined time window. For example, the watermarks can be set at 4x | |||
interval: 500 Kbps, 2 Mbps, and a time window of 500ms.</t> | interval: 500 Kbps, 2 Mbps, and a time window of 500 ms.</li> | |||
<li>Bandwidth utilization, defined as the ratio of the instantaneous | ||||
<!-- | sending rate to the instantaneous bottleneck capacity: This metric i | |||
<t>[Open issue (2): Convergence time was discussed briefly in the | s | |||
design meetings. It is defined as: the time it takes the congestion | useful only when a congestion-controlled RTP flow is by itself or is | |||
control to reach a stable rate (at startup or after new RMCAT flows | competing with similar | |||
are added). What is a stable rate?]</t> | cross-traffic.</li> | |||
--> | </ol> | |||
<t>Bandwidth Utilization, defined as ratio of the instantaneous | <t> | |||
sending rate to the instantaneous bottleneck capacity. This metric i | ||||
s | ||||
useful only when a congestion controlled RTP flow is by itself or co | ||||
mpeting with similar | ||||
cross-traffic.</t> | ||||
</list></t> | ||||
<t> | ||||
Note that the above metrics are all objective | Note that the above metrics are all objective | |||
application-independent metrics. Refer to Section 3, in | application-independent metrics. Refer to | |||
<xref target="I-D.ietf-netvc-testing" /> for objective | <xref target="I-D.ietf-netvc-testing" section="3" sectionFormat="of" fo | |||
metrics for evaluating codecs. | rmat="default"/> | |||
</t> | for objective metrics for evaluating codecs. | |||
</t> | ||||
<t>From the logs the statistical measures (min, max, mean, standard | <t>From the logs, the statistical measures (min, max, mean, standard | |||
deviation and variance) for the whole duration or any specific part of | deviation, and variance) for the whole duration or any specific part of | |||
the session can be calculated. Also the metrics (sending rate, | the session can be calculated. Also the metrics (sending rate, | |||
receiver rate, goodput, latency) can be visualized in graphs as | receiver rate, goodput, latency) can be visualized in graphs as | |||
variation over time, the measurements in the plot are at 1 second | variation over time; the measurements in the plot are at one-second | |||
intervals. Additionally, from the logs it is possible to plot the | intervals. Additionally, from the logs, it is possible to plot the | |||
histogram or CDF of packet delay.</t> | histogram or cumulative distribution function (CDF) of packet delay.</t> | |||
<!-- t>[Open issue (1): Using Jain-fairness index (JFI) for measuring | ||||
self-fairness between RTP flows? measured at what intervals? | ||||
visualized as a CDF or a time series? Additionally: Use JFI | ||||
for comparing fairness between RTP and long TCP flows? | ||||
]</t --> | ||||
<!-- <t> <list style="empty"> | ||||
<t>(i) Bandwidth Utilization: is the | ||||
ratio of the encoding rate to the (available) end-to-end path | ||||
capacity. | ||||
<list style="symbols"> | ||||
<t>Under-utilization: is the period of time when the endpoint's | ||||
encoding rate is lower than the end-to-end capacity, i.e., the | ||||
bandwidth utilization is less than 1.</t> | ||||
<t>Overuse: is the period of time when the endpoint's encoding | ||||
rate is higher than the end-to-end capacity, i.e., the bandwidth | ||||
utilization is greater than 1.</t> | ||||
<t>Steady-state: is the period of time when the endpoint's | ||||
encoding rate is relatively stable, i.e., the bandwidth | ||||
utilization is constant.</t> | ||||
</list></t> | ||||
<t></t> | ||||
<t>(ii) Packet Loss and Discard Rate.</t> <t></t> | ||||
<t>(iii) Fair Share. </t> <t></t> | ||||
<t>[Editor's Note: This metric should match the ones defined in the | ||||
<xref target="I-D.ietf-rmcat-cc-requirements">RMCAT requirements</xref> | ||||
document.]</t> | ||||
<t></t> | ||||
<t>(iv) Quality: There are many different types of quality metrics for | <section anchor="rtp-logging" numbered="true" toc="default"> | |||
audio and video. Audio quality is often expressed by a MOS ("Mean | <name>RTP Log Format</name> | |||
Opinion Score") and can be calculated using an objective algorithm | <t> | |||
(E-model/R-model). Section 4.7 of <xref target="RFC3611" /> can also | Having a common log format simplifies running analyses across | |||
be used for VoIP metrics. Similarly, there exist several metrics to | different measurement setups and comparing their results. | |||
measure video quality, for example Peak Signal to Noise Ratio (PSNR). | ||||
</t> | </t> | |||
<t>[Editor's Note: Should the algorithm compare average PSNR of test | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
video sequences or what other video quality metric can be used? If | ||||
Quality is used as a metric, it should not be the only metric used to | ||||
compare rate-control schemes. Also, algorithms using different codecs | ||||
cannot be compared]. </t> | ||||
</list> | ||||
</t> | ||||
--> | ||||
<section title="RTP Log Format" anchor="rtp-logging"> | ||||
<t> | ||||
Having a common log format simplifies running analyses | ||||
across and comparing different measurements. The log file | ||||
should be tab or comma separated containing the following | ||||
details: | ||||
</t> | ||||
<figure><artwork><![CDATA[ | ||||
Send or receive timestamp (Unix): <int>.<int> -- sec.usec decimal | Send or receive timestamp (Unix): <int>.<int> -- sec.usec decimal | |||
RTP payload type <int> -- decimal | RTP payload type <int> -- decimal | |||
SSRC <int> -- hexadecimal | SSRC <int> -- hexadecimal | |||
RTP sequence no <int> -- decimal | RTP sequence no <int> -- decimal | |||
RTP timestamp <int> -- decimal | RTP timestamp <int> -- decimal | |||
marker bit 0|1 -- character | marker bit 0|1 -- character | |||
Payload size <int> -- # bytes, decimal | Payload size <int> -- # bytes, decimal | |||
]]></artwork></figure> | ]]></artwork> | |||
<t>Each line of the log file should be terminated with CRLF, | ||||
<t>Each line of the log file should be terminated with CRLF, | ||||
CR, or LF characters. Empty lines are disregarded.</t> | CR, or LF characters. Empty lines are disregarded.</t> | |||
<t>If the congestion control implements retransmissions or FEC, the | <t>If the congestion control implements retransmissions or Forward Error Correction (FEC), the | |||
evaluation should report both packet loss (before applying | evaluation should report both packet loss (before applying | |||
error-resilience) and residual packet loss (after applying | error resilience) and residual packet loss (after applying | |||
error-resilience).</t> | error resilience).</t> | |||
<t>These data should suffice to compute the media-encoding independent | ||||
<t>These data should suffice to compute the media-encoding independent | ||||
metrics described above. Use of a common log will allow simplified | metrics described above. Use of a common log will allow simplified | |||
post-processing and analysis across different implementations. | post-processing and analysis across different implementations. | |||
</t> | </t> | |||
<!-- <t>The retransmissions for post-repair loss metric be logged in a | ||||
separate file, as the repair streams have different payload type | ||||
and/or SSRC.</t> --> | ||||
</section> | ||||
</section> | ||||
<!-- | ||||
<section title="Congestion control requirements" anchor="cc-require"> | ||||
<t> </t> | ||||
</section> | </section> | |||
--> | </section> | |||
<!-- | ||||
<section title="Guidelines" anchor="cc-guidelines"> | ||||
<t>A congestion control algorithm should be tested in | ||||
simulation or a testbed environment, and the experiments should | ||||
be repeated multiple times to infer statistical significance. | ||||
The following guidelines are considered for evaluation:</t> | ||||
<section title="Avoiding Congestion Collapse"> | ||||
<t>The congestion control algorithm is expected to take an action, | ||||
such as reducing the sending rate, when it detects congestion. | ||||
Typically, it should intervene before the circuit breaker <xref | ||||
target="I-D.ietf-avtcore-rtp-circuit-breakers" /> is engaged. </t> | ||||
<t>Does the congestion control propose any changes to (or diverge | ||||
from) the circuit breaker conditions defined in <xref | ||||
target="I-D.ietf-avtcore-rtp-circuit-breakers" />.</t> </section> | ||||
<section title="Stability"> | ||||
<t>The congestion control should be assessed for its stability | ||||
when the path characteristics do not change over time. Changing | ||||
the media encoding rate estimate too often or by too much may | ||||
adversely affect the application layer performance.</t> | ||||
</section> | ||||
<section title ="Media Traffic"> | ||||
<t>The congestion control algorithm should be assessed with | ||||
different types of media behavior, i.e., the media should contain | ||||
idle and data-limited periods. For example, periods of silence for | ||||
audio, varying amount of motion for video, or bursty nature of | ||||
I-frames. </t> | ||||
<t>The evaluation may be done in two stages. In the first stage, | ||||
the endpoint generates traffic at the rate calculated by the | ||||
congestion controller. In the second stage, real codecs or models | ||||
of video codecs are used to mimic application-limited data periods | ||||
and varying video frame sizes.</t> | ||||
</section> | ||||
<section title="Start-up Behavior"> | ||||
<t>The congestion control algorithm should be assessed with | ||||
different start-rates. The main reason is to observe the behavior | ||||
of the congestion control in different test scenarios, such | ||||
as when competing with varying amount of cross-traffic or how | ||||
quickly does the congestion control algorithm achieve a stable | ||||
sending rate.</t> | ||||
</section> | ||||
<section title="Diverse Environments"> | ||||
<t>The congestion control algorithm should be assessed in | ||||
heterogeneous environments, containing both wired and wireless | ||||
paths. Examples of wireless access technologies are: 802.11, GPRS, | ||||
HSPA, or LTE. One of the main challenges of the wireless | ||||
environments for the congestion control algorithm is to | ||||
distinguish between congestion induced loss and transmission | ||||
(bit-error) loss. Congestion control algorithms may | ||||
incorrectly identify transmission loss as congestion loss and | ||||
reduce the media encoding rate by too much, which may cause | ||||
oscillatory behavior and deteriorate the users' quality of | ||||
experience. Furthermore, packet loss may induce additional delay | ||||
in networks with wireless paths due to link-layer | ||||
retransmissions.</t> | ||||
</section> | ||||
<section title="Varying Path Characteristics"> | ||||
<t>The congestion control algorithm should be evaluated for a | ||||
range of path characteristics such as, different end-to-end | ||||
capacity and latency, varying amount of cross traffic on a | ||||
bottleneck link and a router's queue length. For the moment, only | ||||
Drop Tail queues are used. However, if new Active Queue Management | ||||
(AQM) schemes become available, the performance of the congestion | ||||
control algorithm should be again evaluated.</t> | ||||
<t>In an experiment, if the media only flows in a single | ||||
direction, the feedback path should also be tested with varying | ||||
amounts of impairment.</t> | ||||
<t>The main motivation for the previous and current criteria is to | ||||
identify situations in which the proposed congestion control is | ||||
less performant.</t> | ||||
</section> | ||||
<section title="Reacting to Transient Events or Interruptions"> | ||||
<t>The congestion control algorithm should be able to handle | ||||
changes in end-to-end capacity and latency. Latency may change | ||||
due to route updates, link failures, hand-overs etc. In mobile | ||||
environment the end-to-end capacity may vary due to the | ||||
interference, fading, hand-overs, etc. In wired networks the | ||||
end-to-end capacity may vary due to changes in resource | ||||
reservation.</t> | ||||
</section> | ||||
<section title="Fairness With Similar Cross-Traffic"> | ||||
<t>The congestion control algorithm should be evaluated when | ||||
competing with other RTP flows using the same or another candidate | ||||
congestion control algorithm. The proposal should highlight the | ||||
bottleneck capacity share of each RTP flow.</t> | ||||
</section> | ||||
<section title="Impact on Cross-Traffic"> | ||||
<t>The congestion control algorithm should be evaluated when | ||||
competing with standard TCP. Short TCP flows may be considered | ||||
as transient events and the RTP flow may give way to the short | ||||
TCP flow to complete quickly. However, long-lived TCP flows may | ||||
starve out the RTP flow depending on router queue length. </t> | ||||
<t>The proposal should also measure the impact on varied number | ||||
of cross-traffic sources, i.e., few and many competing flows, | ||||
or mixing various amounts of TCP and similar cross-traffic.</t> | ||||
</section> | ||||
<section title="Extensions to RTP/RTCP"> | ||||
<t>The congestion control algorithm should indicate if any | ||||
protocol extensions are required to implement it and should | ||||
carefully describe the impact of the extension.</t> | ||||
</section> | ||||
</section> --> | ||||
<section anchor="add-params" title="List of Network Parameters"> | ||||
<t>The implementors initially are encouraged to choose evaluation settings | ||||
from the following values:</t> | ||||
<section anchor="scen-delay" title="One-way Propagation Delay"> | <section anchor="add-params" numbered="true" toc="default"> | |||
<!-- --> | <name>List of Network Parameters</name> | |||
<t>The implementors are encouraged to choose evaluation settings | ||||
from the following values initially:</t> | ||||
<section anchor="scen-delay" numbered="true" toc="default"> | ||||
<name>One-Way Propagation Delay</name> | ||||
<t>Experiments are expected to verify that the congestion control is | <t>Experiments are expected to verify that the congestion control is | |||
able to work across a broad range of path characteristics, also includin | able to work across a broad range of path characteristics, including cha | |||
g challenging situations, for example over | llenging situations, for example, over | |||
trans-continental and/or satellite links. Tests thus account for the fo | transcontinental and/or satellite links. Tests thus account for the fol | |||
llowing different latencies: | lowing different latencies: | |||
<list style="numbers"> | ||||
<t>Very low latency: 0-1ms</t> | ||||
<t>Low latency: 50ms</t> | ||||
<t>High latency: 150ms</t> | ||||
<t>Extreme latency: 300ms</t> | </t> | |||
</list></t> | <ol spacing="normal" type="1"> | |||
<li>Very low latency: 0-1 ms</li> | ||||
<li>Low latency: 50 ms</li> | ||||
<li>High latency: 150 ms</li> | ||||
<li>Extreme latency: 300 ms</li> | ||||
</ol> | ||||
</section> | </section> | |||
<section anchor="scen-loss" numbered="true" toc="default"> | ||||
<section anchor="scen-loss" title="End-to-end Loss"> | <name>End-to-End Loss</name> | |||
<t>Many paths in the Internet today are largely lossless but, | <t> Many paths in the Internet today are largely lossless; | |||
with wireless networks and interference, towards remote | however, in scenarios featuring interference in wireless | |||
regions, or in scenarios featuring high/fast mobility, media | networks, sending to and receiving from remote regions, | |||
flows may exhibit substantial packet loss. This variety needs | or high/fast mobility, media flows may exhibit substantial | |||
packet loss. This variety needs | ||||
to be reflected appropriately by the tests.</t> | to be reflected appropriately by the tests.</t> | |||
<t>To model a wide range of lossy links, the experiments can choose one of the | <t>To model a wide range of lossy links, the experiments can choose one of the | |||
following loss rates, the fractional loss is the ratio of packets lost | following loss rates; the fractional loss is the ratio of packets lost | |||
and packets sent. <list style="numbers"> | and packets sent: </t> | |||
<t>no loss: 0%</t> | <ol spacing="normal" type="1"> | |||
<li>no loss: 0%</li> | ||||
<t>1%</t> | <li>1%</li> | |||
<li>5%</li> | ||||
<t>5%</t> | <li>10%</li> | |||
<li>20%</li> | ||||
<t>10%</t> | </ol> | |||
<t>20%</t> | ||||
</list></t> | ||||
</section> | </section> | |||
<section anchor="scen-queue" numbered="true" toc="default"> | ||||
<section anchor="scen-queue" title="Drop Tail Router Queue Length"> | <name>Drop-Tail Router Queue Length</name> | |||
<t>Routers should be configured to use Drop Trail queues in | <t>Routers should be configured to use drop-tail queues in | |||
the experiments due to their (still) prevalent nature. | the experiments due to their (still) prevalent nature. | |||
Experimentation with AQM schemes is encouraged but not mandatory. | Experimentation with Active Queue Management (AQM) schemes is encouraged | |||
</t> | but not mandatory. | |||
</t> | ||||
<t>The router queue length is measured as the time taken to drain the | <t>The router queue length is measured as the time taken to drain the | |||
FIFO queue. It has been noted in various discussions that the queue | FIFO queue. It has been noted in various discussions that the queue | |||
length in the current deployed Internet varies significantly. While | length in the currently deployed Internet varies significantly. While | |||
the core backbone network has very short queue length, the home | the core backbone network has very short queue length, the home | |||
gateways usually have larger queue length. Those various queue lengths | gateways usually have larger queue length. Those various queue lengths | |||
can be categorized in the following way: <list style="numbers"> | can be categorized in the following way: </t> | |||
<t>QoS-aware (or short): 70ms</t> | <ol spacing="normal" type="1"> | |||
<li>QoS-aware (or short): 70 ms</li> | ||||
<t>Nominal: 300-500ms</t> | <li>Nominal: 300-500 ms</li> | |||
<li>Buffer-bloated: 1000-2000 ms</li> | ||||
<t>Buffer-bloated: 1000-2000ms</t> | </ol> | |||
</list> Here the size of the queue is measured in bytes or packets | <t> Here the size of the queue is measured in bytes or packets. | |||
and to convert the queue length measured in seconds to queue length in | To convert the queue length measured in seconds to queue length in | |||
bytes:</t> | bytes:</t> | |||
<t>QueueSize (in bytes) = QueueSize (in sec) x Throughput (in | <t>QueueSize (in bytes) = QueueSize (in sec) x Throughput (in | |||
bps)/8</t> | bps)/8</t> | |||
<!-- <t>and 2) queue length in packets:</t> | ||||
<t>QueueSize (in pkts) = QueueSize (in bytes)/MTU, | ||||
MTU=1500</t> --> | ||||
<!-- <t>[Open issue (11): Confirm the above values, do we need to | ||||
define parameters for other types of queues?]</t> --> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Loss generation model"> | <name>Loss Generation Model</name> | |||
<t> | <t> | |||
Many models for generating packet loss are available, some | Many models for generating packet loss are available: some | |||
yield correlated, others independent losses; losses can also | generate correlated packet losses, others generate independent packet losses. | |||
be extracted from packet traces. As a (simple) minimum loss | In addition, | |||
packet losses can also be extracted from packet traces. | ||||
As a (simple) minimum loss | ||||
model with minimal parameterization (i.e., the loss rate), | model with minimal parameterization (i.e., the loss rate), | |||
independent random losses must be used in the evaluation. | independent random losses must be used in the evaluation. | |||
</t> | </t> | |||
<t> | <t> | |||
It is known that independent loss models may reflect reality | It is known that independent loss models may reflect reality poorly, | |||
poorly and hence more sophisticated loss models could be | and hence more sophisticated loss models could be | |||
considered. Suitable models for correlated losses includes | considered. | |||
the Gilbert-Elliot model <xref target="gilbert-elliott"/> and | Suitable models for correlated losses include the Gilbert-Elliot | |||
losses generated by modeling a queue including its | model <xref target="gilbert-elliott" format="default"/> and models that gener | |||
(different) drop behaviors. | ate losses by | |||
</t> | modeling a queue with its (different) drop behaviors. | |||
</t> | ||||
</section> | </section> | |||
<section anchor="JM" numbered="true" toc="default"> | ||||
<section anchor="JM" title="Jitter models"> | <name>Jitter Models</name> | |||
<t>This section defines jitter models for the purposes of this | <t>This section defines jitter models for the purposes of this | |||
document. When jitter is to be applied to both the congestion controlled RTP flow and any | document. When jitter is to be applied to both the congestion-controlled RTP flow and any | |||
competing flow (such as a TCP competing flow), the competing flow will | competing flow (such as a TCP competing flow), the competing flow will | |||
use the jitter definition below that does not allow for re-ordering of | use the jitter definition below that does not allow for reordering of | |||
packets on the competing flow (see NR-RBPDV definition below).</t> | packets on the competing flow (see NR-BPDV definition below).</t> | |||
<t>Jitter is an overloaded term in communications. It is | <t>Jitter is an overloaded term in communications. It is | |||
typically used to refer to the variation of a metric (e.g., | typically used to refer to the variation of a metric (e.g., | |||
delay) with respect to some reference metric (e.g., average | delay) with respect to some reference metric (e.g., average | |||
delay or minimum delay). For example, RFC 3550 jitter is | delay or minimum delay). For example in RFC 3550, jitter is | |||
computed as the smoothed difference in packet arrival times | computed as the smoothed difference in packet arrival times | |||
relative to their respective expected arrival times, which is | relative to their respective expected arrival times, which is | |||
particularly meaningful if the underlying packet delay | particularly meaningful if the underlying packet delay | |||
variation was caused by a Gaussian random process.</t> | variation was caused by a Gaussian random process.</t> | |||
<t>Because jitter is an overloaded term, we use the term | <t>Because jitter is an overloaded term, we use the term | |||
Packet Delay Variation (PDV) instead to describe the variation | Packet Delay Variation (PDV) instead to describe the variation | |||
of delay of individual packets in the same sense as the IETF | of delay of individual packets in the same sense as the IETF | |||
IPPM WG has defined PDV in their documents (e.g., RFC 3393) | IP Performance Metrics (IPPM) working group has defined PDV in their doc uments (e.g., RFC 3393) | |||
and as the ITU-T SG16 has defined IP Packet Delay Variation | and as the ITU-T SG16 has defined IP Packet Delay Variation | |||
(IPDV) in their documents (e.g., Y.1540).</t> | (IPDV) in their documents (e.g., Y.1540).</t> | |||
<t>Most PDV distributions in packet network systems are | <t>Most PDV distributions in packet network systems are | |||
one-sided distributions, the measurement of which with a | one-sided distributions, the measurement of which with a | |||
finite number of measurement samples results in one-sided | finite number of measurement samples results in one-sided | |||
histograms. In the usual packet network transport case, there | histograms. In the usual packet network transport case, there | |||
is typically one packet that transited the network with the | is typically one packet that transited the network with the | |||
minimum delay; a (large) number of packets transit the network | minimum delay; a (large) number of packets transit the network | |||
within some (smaller) positive variation from this minimum | within some (smaller) positive variation from this minimum | |||
delay, and a (small) number of the packets transit the network | delay, and a (small) number of the packets transit the network | |||
with delays higher than the median or average transit time | with delays higher than the median or average transit time | |||
(these are outliers). Although infrequent, outliers can cause | (these are outliers). Although infrequent, outliers can cause | |||
skipping to change at line 626 ¶ | skipping to change at line 360 ¶ | |||
histograms. In the usual packet network transport case, there | histograms. In the usual packet network transport case, there | |||
is typically one packet that transited the network with the | is typically one packet that transited the network with the | |||
minimum delay; a (large) number of packets transit the network | minimum delay; a (large) number of packets transit the network | |||
within some (smaller) positive variation from this minimum | within some (smaller) positive variation from this minimum | |||
delay, and a (small) number of the packets transit the network | delay, and a (small) number of the packets transit the network | |||
with delays higher than the median or average transit time | with delays higher than the median or average transit time | |||
(these are outliers). Although infrequent, outliers can cause | (these are outliers). Although infrequent, outliers can cause | |||
significant deleterious operation in adaptive systems and | significant deleterious operation in adaptive systems and | |||
should be considered in rate adaptation designs for RTP | should be considered in rate adaptation designs for RTP | |||
congestion control.</t> | congestion control.</t> | |||
<t>In this section we define two different bounded PDV | <t>In this section we define two different bounded PDV | |||
characteristics, 1) Random Bounded PDV and 2) Approximately Random | characteristics, 1) Random Bounded PDV and 2) Approximately Random | |||
Subject to No-Reordering Bounded PDV.</t> | Subject to No-Reordering Bounded PDV.</t> | |||
<t>The former, 1) Random Bounded PDV, is presented for | ||||
<t>The former, 1) Random Bounded PDV is presented for | ||||
information only, while the latter, 2) Approximately Random | information only, while the latter, 2) Approximately Random | |||
Subject to No-Reordering Bounded PDV, must be used in the | Subject to No-Reordering Bounded PDV, must be used in the | |||
evaluation.</t> | evaluation.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Random Bounded PDV (RBPDV)"> | <name>Random Bounded PDV (RBPDV)</name> | |||
<t>The RBPDV probability distribution function (PDF) is specified to | ||||
<t>The RBPDV probability distribution function (PDF) is specified to | be of some mathematically describable function that includes some | |||
be of some mathematically describable function which includes some | ||||
practical minimum and maximum discrete values suitable for testing. | practical minimum and maximum discrete values suitable for testing. | |||
For example, the minimum value, x_min, might be specified as the | For example, the minimum value, x_min, might be specified as the | |||
minimum transit time packet and the maximum value, x_max, might be | minimum transit time packet, and the maximum value, x_max, might be | |||
defined to be two standard deviations higher than the mean.</t> | defined to be two standard deviations higher than the mean.</t> | |||
<t>Since we are typically interested in the distribution relative to | ||||
<t>Since we are typically interested in the distribution relative to | ||||
the mean delay packet, we define the zero mean PDV sample, z(n), to be | the mean delay packet, we define the zero mean PDV sample, z(n), to be | |||
z(n) = x(n) - x_mean, where x(n) is a sample of the RBPDV random | z(n) = x(n) - x_mean, where x(n) is a sample of the RBPDV random | |||
variable x and x_mean is the mean of x.</t> | variable x and x_mean is the mean of x.</t> | |||
<t>We assume here that s(n) is the original source time of packet n | ||||
<t>We assume here that s(n) is the original source time of packet n | ||||
and the post-jitter induced emission time, j(n), for packet n is: | and the post-jitter induced emission time, j(n), for packet n is: | |||
</t> | </t> | |||
<t>j(n) = {[z(n) + x_mean] + s(n)}.</t> | <t>j(n) = {[z(n) + x_mean] + s(n)}.</t> | |||
<t> | <t> | |||
It follows that the separation in the post-jitter time of | It follows that the separation in the post-jitter time of | |||
packets n and n+1 is {[s(n+1)-s(n)] - [z(n)-z(n+1)]}. Since | packets n and n+1 is {[s(n+1)-s(n)] - [z(n)-z(n+1)]}. Since | |||
the first term is always a positive quantity, we note that | the first term is always a positive quantity, we note that | |||
packet reordering at the receiver is possible whenever the | packet reordering at the receiver is possible whenever the | |||
second term is greater than the first. Said another way, | second term is greater than the first. Said another way, | |||
whenever the difference in possible zero mean PDV sample | whenever the difference in possible zero mean PDV sample | |||
delays (i.e., [x_max-x_min]) exceeds the inter-departure | delays (i.e., [x_max-x_min]) exceeds the inter-departure | |||
time of any two sent packets, we have the possibility of | time of any two sent packets, we have the possibility of | |||
packet re-ordering.</t> | packet reordering.</t> | |||
<t>There are important use cases in real networks where packets can | ||||
<t>There are important use cases in real networks where packets can | become reordered, such as in load-balancing topologies and during | |||
become re-ordered such as in load balancing topologies and during | route changes. However, for the vast majority of cases, there is no | |||
route changes. However, for the vast majority of cases there is no | packet reordering because most of the time packets follow the same | |||
packet re-ordering because most of the time packets follow the same | ||||
path. Due to this, if a packet becomes overly delayed, the packets | path. Due to this, if a packet becomes overly delayed, the packets | |||
after it on that flow are also delayed. This is especially true for | after it on that flow are also delayed. This is especially true for | |||
mobile wireless links where there are per-flow queues prior to base | mobile wireless links where there are per-flow queues prior to base | |||
station scheduling. Owing to this important use case, we define | station scheduling. Owing to this important use case, we define | |||
another PDV profile similar to the above, but one that does not allow | another PDV profile similar to the above, but one that does not allow | |||
for re-ordering within a flow.</t> | for reordering within a flow.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Approximately Random Subject to No-Reordering Bounded PD | <name>Approximately Random Subject to No-Reordering Bounded PDV (NR-BP | |||
V | DV)</name> | |||
(NR-RPVD)"> | <t>No Reordering BPDV, NR-BPDV, is defined similarly to the above with | |||
<t>No Reordering RPDV, NR-RPVD, is defined similarly to the above with | ||||
one important exception. Let serial(n) be defined as the serialization | one important exception. Let serial(n) be defined as the serialization | |||
delay of packet n at the lowest bottleneck link rate (or other | delay of packet n at the lowest bottleneck link rate (or other | |||
appropriate rate) in a given test. Then we produce all the post-jitter | appropriate rate) in a given test. Then we produce all the post-jitter | |||
values for j(n) for n = 1, 2, ... N, where N is the length of the | values for j(n) for n = 1, 2, ... N, where N is the length of the | |||
source sequence s to be offset-ed. The exception can be stated as | source sequence s to be offset. The exception can be stated as | |||
follows: We revisit all j(n) beginning from index n=2, and if j(n) is | follows: We revisit all j(n) beginning from index n=2, and if j(n) is | |||
determined to be less than [j(n-1)+serial(n-1)], we redefine j(n) to | determined to be less than [j(n-1)+serial(n-1)], we redefine j(n) to | |||
be equal to [j(n-1)+serial(n-1)] and continue for all remaining n | be equal to [j(n-1)+serial(n-1)] and continue for all remaining n | |||
(i.e., n = 3, 4, .. N). This models the case where the packet n is | (i.e., n = 3, 4, .. N). This models the case where the packet n is | |||
sent immediately after packet (n-1) at the bottleneck link rate. | sent immediately after packet (n-1) at the bottleneck link rate. | |||
Although this is generally the theoretical minimum in that it assumes | Although this is generally the theoretical minimum in that it assumes | |||
that no other packets from other flows are in-between packet n and n+1 | that no other packets from other flows are in between packet n and n+1 | |||
at the bottleneck link, it is a reasonable assumption for per flow | at the bottleneck link, it is a reasonable assumption for per-flow | |||
queuing.</t> | queuing.</t> | |||
<t>We note that this assumption holds for some important exception | <t>We note that this assumption holds for some important exception | |||
cases, such as packets immediately following outliers. There are a | cases, such as packets immediately following outliers. There are a | |||
multitude of software controlled elements common on end-to-end | multitude of software-controlled elements common on end-to-end | |||
Internet paths (such as firewalls, ALGs and other middleboxes) which | Internet paths (such as firewalls, application-layer gateways, and oth | |||
er middleboxes) that | ||||
stop processing packets while servicing other functions (e.g., garbage | stop processing packets while servicing other functions (e.g., garbage | |||
collection). Often these devices do not drop packets, but rather queue | collection). Often these devices do not drop packets, but rather queue | |||
them for later processing and cause many of the outliers. Thus NR-RPVD | them for later processing and cause many of the outliers. Thus NR-BPDV | |||
models this particular use case (assuming serial(n+1) is defined | models this particular use case (assuming serial(n+1) is defined | |||
appropriately for the device causing the outlier) and thus is believed | appropriately for the device causing the outlier) and is believed | |||
to be important for adaptation development for congestion controlled R | to be important for adaptation development for congestion-controlled R | |||
TP streams.</t> | TP streams.</t> | |||
</section> | </section> | |||
<section title="Recommended distribution"> | <section numbered="true" toc="default"> | |||
<name>Recommended Distribution</name> | ||||
<t>Whether Random Bounded PDV or Approximately Random | <t>Whether Random Bounded PDV or Approximately Random | |||
Subject to No-Reordering Bounded PDV, it is recommended that | Subject to No-Reordering Bounded PDV, it is recommended that | |||
z(n) is distributed according to a truncated Gaussian for | z(n) is distributed according to a truncated Gaussian for | |||
the above jitter models:</t> | the above jitter models:</t> | |||
<t>z(n) ~ |max(min(N(0, std^2), N_STD * std), -N_STD * std)|</t> | <t>z(n) ~ |max(min(N(0, std<sup>2</sup>), N_STD * std), -N_STD * std)|< | |||
<t>where N(0, std^2) is the Gaussian distribution with zero mean and | /t> | |||
standard deviation std. Recommended values:</t> | <t>where N(0, std<sup>2</sup>) is the Gaussian distribution with zero m | |||
<t><list style="symbols"> | ean and | |||
<t>std = 5 ms</t> | std is standard deviation. Recommended values:</t> | |||
<t>N_STD = 3</t> | <ul empty="true"> | |||
</list></t> | <li>std = 5 ms</li> | |||
<li>N_STD = 3</li> | ||||
</ul> | ||||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<!-- | <section anchor="app-additional" numbered="true" toc="default"> | |||
<section title="WiFi or Cellular Links"> | <name>Traffic Models</name> | |||
<t> | <section numbered="true" toc="default"> | |||
<xref target="I-D.ietf-rmcat-wireless-tests" /> describes the test | <name>TCP Traffic Model</name> | |||
cases to simulate networks with wireless links. The document | ||||
describes mechanism to simulate both cellular and WiFi networks. | ||||
</t> | ||||
</section> | ||||
--> | ||||
<section anchor="app-additional" title="Traffic Models"> | ||||
<section title="TCP traffic model"> | ||||
<t>Long-lived TCP flows will download data throughout the | <t>Long-lived TCP flows will download data throughout the | |||
session and are expected to have infinite amount of data to | session and are expected to have infinite amount of data to | |||
send or receive. This roughly applies, for example, when | send or receive. This roughly applies, for example, when | |||
downloading software distributions.</t> | downloading software distributions.</t> | |||
<t>Each short TCP flow is modeled as a sequence of file downloads | <t>Each short TCP flow is modeled as a sequence of file downloads | |||
interleaved with idle periods. Not all short TCP flows start at the sam e | interleaved with idle periods. Not all short TCP flows start at the sam e | |||
time, i.e., some start in the ON state while others start in the OFF | time, i.e., some start in the ON state while others start in the OFF | |||
state.</t> | state.</t> | |||
<t>The short TCP flows can be modeled as follows: 30 | <t>The short TCP flows can be modeled as follows: 30 | |||
connections start simultaneously fetching small (30-50 KB) | connections start simultaneously fetching small (30-50 KB) | |||
amounts of data, evenly distributed. This covers the case | amounts of data, evenly distributed. This covers the case | |||
where the short TCP flows are fetching web page resources rather | where the short TCP flows are fetching web page resources rather | |||
than video files.</t> | than video files.</t> | |||
<t>The idle period between bursts of starting a group of TCP flows is | <t>The idle period between bursts of starting a group of TCP flows is | |||
typically derived from an exponential distribution with the mean value o f | typically derived from an exponential distribution with the mean value o f | |||
10 seconds.</t> | 10 seconds.</t> | |||
<aside><t>These values were picked based on the data available at | ||||
<t>[These values were picked based on the data available at | <eref target="https://httparchive.org/reports/state-of-the-web?start=2015 | |||
http://httparchive.org/interesting.php as of October 2015].</t> | _10_01&end=2015_11_01&view=list" brackets="angle"/> | |||
as of October 2015.</t></aside> | ||||
<t> | <t> | |||
Many different TCP congestion control schemes are deployed | Many different TCP congestion control schemes are deployed | |||
today. Therefore, experimentation with a range of different | today. Therefore, experimentation with a range of different | |||
schemes, especially including CUBIC, is encouraged. | schemes, especially including CUBIC <xref target="RFC8312"/>, is encour aged. | |||
Experiments must document in detail which congestion control | Experiments must document in detail which congestion control | |||
schemes they tested against and which parameters were used. | schemes they tested against and which parameters were used. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="RTP Video model"> | <name>RTP Video Model</name> | |||
<t> | <t> | |||
<xref target="RFC8593"/> | <xref target="RFC8593" format="default"/> | |||
describes two | describes two | |||
types of video traffic models for evaluating candidate algorithms for RTP congestion control. | types of video traffic models for evaluating candidate algorithms for RTP congestion control. | |||
The first model statistically characterizes the behavior of a video | The first model statistically characterizes the behavior of a video | |||
encoder, whereas the second model uses video traces. | encoder, whereas the second model uses video traces. | |||
</t> | </t> | |||
<t> | <t> | |||
Sample video test sequences are available at <xref | Sample video test sequences are available at <xref target="xiph-seq" fo | |||
target="xiph-seq"></xref>. The following two video streams | rmat="default"/>. The following two video streams | |||
are the recommended minimum for testing: Foreman (CIF | are the recommended minimum for testing: Foreman (CIF | |||
sequence) and FourPeople (720p); both come as raw video data | sequence) and FourPeople (720p); both come as raw video data | |||
to be encoded dynamically. As these video sequences are | to be encoded dynamically. As these video sequences are | |||
short (300 and 600 frames, respectively, they shall be | short (300 and 600 frames, respectively), they shall be | |||
stitched together repeatedly until the desired length is | stitched together repeatedly until the desired length is | |||
reached. | reached. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Background UDP"> | <name>Background UDP</name> | |||
<t>Background UDP flow is modeled as a constant | <t>Background UDP flow is modeled as a constant | |||
bit rate (CBR) flow. It will download data at a particular CBR | bit rate (CBR) flow. It will download data at a particular CBR | |||
rate for the complete session, or will change to particular | for the complete session, or will change to particular | |||
CBR rate at predefined intervals. The inter packet interval is | CBR at predefined intervals. The inter-packet interval is | |||
calculated based on the CBR and the packet size (is typically | calculated based on the CBR and the packet size (typically | |||
set to the path MTU size, the default value can be 1500 bytes). | set to the path MTU size, the default value can be 1500 bytes). | |||
</t> | </t> | |||
<t>Note that new transport protocols such as QUIC may use UDP; | ||||
<t>Note that new transport protocols such as QUIC may use UDP | however, due to their congestion control algorithms, they will exhibit | |||
but, due to their congestion control algorithms, will exhibit | ||||
behavior conceptually similar in nature to TCP flows above and | behavior conceptually similar in nature to TCP flows above and | |||
can thus be subsumed by the above, including the division into | can thus be subsumed by the above, including the division into | |||
short- and long-lived flows. As QUIC evolves independently of | short-lived and long-lived flows. As QUIC evolves independently of | |||
TCP congestion control algorithms, its future congestion | TCP congestion control algorithms, its future congestion | |||
control should be considered as competing traffic as appropriate. | control should be considered as competing traffic as appropriate. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Security Considerations"> | <name>Security Considerations</name> | |||
<t> | <t> | |||
This document specifies evaluation criteria and parameters | This document specifies evaluation criteria and parameters | |||
for assessing and comparing the performance of congestion | for assessing and comparing the performance of congestion | |||
control protocols and algorithms for real-time | control protocols and algorithms for real-time | |||
communication. This memo itself is thus not subject to | communication. This memo itself is thus not subject to | |||
security considerations but the protocols and algorithms | security considerations but the protocols and algorithms | |||
evaluated may be. In particular, successful operation | evaluated may be. In particular, successful operation | |||
under all tests defined in this document may suffice for a | under all tests defined in this document may suffice for a | |||
comparative evaluation but must not be interpreted that | comparative evaluation but must not be interpreted that | |||
the protocol is free of risks when deployed on the | the protocol is free of risks when deployed on the | |||
Internet as briefly described in the following by example. | Internet as briefly described in the following by example. | |||
</t> | </t> | |||
<t> | <t> | |||
Such evaluations are expected to be | Such evaluations are expected to be | |||
carried out in controlled environments for limited numbers | carried out in controlled environments for limited numbers | |||
of parallel flows. As such, these evaluations are by | of parallel flows. As such, these evaluations are by | |||
definition limited and will not be able to systematically | definition limited and will not be able to systematically | |||
consider possible interactions or very large groups of | consider possible interactions or very large groups of | |||
communicating nodes under all possible circumstances, so | communicating nodes under all possible circumstances, so | |||
that careful protocol design is advised to avoid | that careful protocol design is advised to avoid | |||
incidentally contributing traffic that could lead to | incidentally contributing traffic that could lead to | |||
unstable networks, e.g., (local) congestion collapse. | unstable networks, e.g., (local) congestion collapse. | |||
</t> | </t> | |||
<t> | <t> | |||
This specification focuses on assessing the regular | This specification focuses on assessing the regular | |||
operation of the protocols and algorithms under | operation of the protocols and algorithms under | |||
considerations. It does not suggest checks against | consideration. It does not suggest checks against | |||
malicious use of the protocols -- by the sender, the | malicious use of the protocols -- by the sender, the | |||
receiver, or intermediate parties, e.g., through faked, | receiver, or intermediate parties, e.g., through faked, | |||
dropped, replicated, or modified congestion signals. It is | dropped, replicated, or modified congestion signals. It is | |||
up to the protocol specifications themselves to ensure that | up to the protocol specifications themselves to ensure that | |||
authenticity, integrity, and/or plausibility of received | authenticity, integrity, and/or plausibility of received | |||
signals are checked and the appropriate actions (or | signals are checked, and the appropriate actions (or | |||
non-actions) are taken. | non-actions) are taken. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="IANA Considerations"> | <section numbered="true" toc="default"> | |||
<t>There are no IANA impacts in this memo.</t> | <name>IANA Considerations</name> | |||
</section> | <t>This document has no IANA actions.</t> | |||
</section> | ||||
<section anchor="contrib" title="Contributors"> | </middle> | |||
<t>The content and concepts within this document are a product of | <back> | |||
the discussion carried out in the Design Team.</t> | ||||
<t>Michael Ramalho provided the text for the Jitter model.</t> | <displayreference target="I-D.ietf-netvc-testing" to="netvc-testing"/> | |||
</section> | ||||
<section title="Acknowledgments"> | <references> | |||
<t> Much of this document is derived from previous work on | <name>References</name> | |||
congestion control at the IETF.</t> | <references> | |||
<t> The authors would like to thank | <name>Normative References</name> | |||
Harald Alvestrand, | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
Anna Brunstrom, | ence.RFC.3550.xml"/> | |||
Luca De Cicco, | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
Wesley Eddy, | ence.RFC.3551.xml"/> | |||
Lars Eggert, | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
Kevin Gross, | ence.RFC.3611.xml"/> | |||
Vinayak Hegde, | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
Randell Jesup, | ence.RFC.4585.xml"/> | |||
Mirja Kuehlewind, | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
Karen Nielsen, | ence.RFC.5506.xml"/> | |||
Piers O'Hanlon, | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
Colin Perkins, | ence.RFC.8083.xml"/> | |||
Michael Ramalho, | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
Zaheduzzaman Sarker, | ence.RFC.8593.xml"/> | |||
Timothy B. Terriberry, | ||||
Michael Welzl, | ||||
Mo Zanaty, and | ||||
Xiaoqing Zhu | ||||
for providing valuable feedback on earlier versions of this draft. | ||||
Additionally, also thank the participants of the design team for | ||||
their comments and discussion related to the evaluation | ||||
criteria.</t> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<!--&rfc2119;--> | ||||
<!-- RTP related --> | ||||
&rfc3550; | ||||
&rfc3551; | ||||
&rfc3611; | ||||
&rfc4585; | ||||
&rfc5506; | ||||
<!--RMCAT related --> | ||||
&rfc8083; | ||||
&rfc8593; | ||||
&I-D.ietf-rmcat-cc-requirements; | ||||
</references> | ||||
<references title="Informative References"> | <!-- draft-ietf-rmcat-cc-requirements-09: 8836 --> | |||
&rfc5033; <!-- CC Evaluation --> | <reference anchor="RFC8836" target="https://www.rfc-editor.org/info/rfc8836"> | |||
&rfc5166; <!-- CC Metrics --> | <front> | |||
<!-- &rfc5681; Standard TCP --> | <title>Congestion Control Requirements for Interactive Real-Time Media</titl | |||
&I-D.ietf-rmcat-eval-test; | e> | |||
&I-D.ietf-rmcat-wireless-tests; | <author initials="R" surname="Jesup" fullname="Randell Jesup"> | |||
&I-D.ietf-netvc-testing; | <organization/> | |||
<reference anchor="gilbert-elliott"> | </author> | |||
<front> | <author initials="Z" surname="Sarker" fullname="Zaheduzzaman Sarker" role="e | |||
<title>The Gilbert-Elliott Model for Packet Loss in Real Tim | ditor"> | |||
e Services on the Internet</title> | <organization/> | |||
<author surname="Hasslinger" fullname="Gerhard Hasslinger"> | </author> | |||
<organization/> | <date month="July" year="2020"/> | |||
</author> | </front> | |||
<author surname="Hohlfeld" fullname="Oliver Hohlfeld"> | <seriesInfo name="RFC" value="8836" /> | |||
<organization /> | <seriesInfo name="DOI" value="10.17487/RFC8836"/> | |||
</author> | </reference> | |||
<date month="3" year="2008" /> | ||||
<abstract> | ||||
<t>The estimation of quality for real-time services over tel | ||||
ecommunication networks requires realistic models for impairments and failures d | ||||
uring transmission. We focus on the classical Gilbert-Elliott model whose second | ||||
order statistics is derived over arbitrary time scales and used to fit packet l | ||||
oss processes of traffic traces measured in the IP back- bone of Deutsche Teleko | ||||
m. The results show that simple Markov models are appropriate to capture the obs | ||||
erved loss pattern. | ||||
</t></abstract> | ||||
</front> | ||||
<seriesInfo name="14th GI/ITG Conference - Measurement, Modellin | ||||
g and Evalutation of Computer and Communication Systems" value=""/> | ||||
</reference> | ||||
<reference anchor="tcpdump"> | ||||
<front> | ||||
<title>Homepage of tcpdump and libpcap</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
<date month="" year="" /> | ||||
</front> | ||||
<seriesInfo name="https://www.tcpdump.org/index.html" value=""/> | ||||
</reference> | ||||
<reference anchor="wireshark"> | ||||
<front> | ||||
<title>Homepage of Wireshark</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
<date month="" year="" /> | ||||
</front> | ||||
<seriesInfo name="https://www.wireshark.org" value=""/> | ||||
</reference> | ||||
<!-- <?rfc include="reference.3GPP.R1.081955"?> | ||||
<reference anchor="SA4-EVAL"> | ||||
<front> | ||||
<title>LTE Link Level Throughput Data for SA4 Evaluation Fra | ||||
mework</title> | ||||
<author initials="3GPP" surname="R1-081955" fullname="3GPP R | ||||
1-081955"> | ||||
<organization /> | ||||
</author> | ||||
<date month="5" year="2008" /> | ||||
<abstract> | ||||
<t>In R1-081720, 3GPP SA4 has requested RAN1 and RAN2 for li | ||||
nk | ||||
level throughput traces to be used in an evaluation framewor | ||||
k | ||||
they are developing for dynamic video rate adaptation. | ||||
</t></abstract> | ||||
</front> | ||||
<seriesInfo name="3GPP" value="R1-081955" /> | ||||
<format type='ZIP' octets='3459875' target='http://www.3gpp.net/ | ||||
ftp/tsg_ran/WG1_RL1/TSGR1_53/Docs/R1-081955.zip' /> | ||||
</reference> | ||||
--> | ||||
<!-- | </references> | |||
<reference anchor="SA4-LR"> | <references> | |||
<front> | <name>Informative References</name> | |||
<title>Error Patterns for MBMS Streaming over UTRAN and GERA | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
N</title> | ence.RFC.5033.xml"/> | |||
<author initials="3GPP" surname="S4-050560" fullname="3GPP S | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
4-050560"> | ence.RFC.5166.xml"/> | |||
<organization /> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
</author> | ence.RFC.8312.xml"/> | |||
<date month="5" year="2008" /> | ||||
</front> | ||||
<seriesInfo name="3GPP" value="S4-050560" /> | ||||
<format type='ZIP' octets='335322' target='http://www.3gpp.org/F | ||||
TP/tsg_sa/WG4_CODEC/TSGS4_36/Docs/S4-050560.zip' /> | ||||
</reference> | ||||
<!-- | <!-- draft-ietf-rmcat-eval-test (8867) part of C238 --> | |||
<reference anchor="TCP-eval-suite"> | <reference anchor="RFC8867" target="https://www.rfc-editor.org/info/rfc8867"> | |||
<front> | <front> | |||
<title>Towards a Common TCP Evaluation Suite</title> | <title>Test Cases for Evaluating RMCAT Proposals</title> | |||
<author initials="A." surname="Lachlan" fullname="Andrew Lachl | ||||
an"/> | ||||
<author initials="C." surname="Marcondes" fullname="Cesar Marcon | ||||
des"/> | ||||
<author initials="S." surname="Floyd" fullname="Sally Floyd"/> | ||||
<author initials="L." surname="Dunn" fullname="Lawrence Dunn"/> | ||||
<author initials="R." surname="Guillier" fullname="Romeric Guil | ||||
lier"/> | ||||
<author initials="W." surname="Gang" fullname="Wang Gang"/> | ||||
<author initials="L." surname="Eggert" fullname="Lars Eggert"/> | ||||
<author initials="S." surname="Ha" fullname="Sangtae Ha"/> | ||||
<author initials="I." surname="Rhee" fullname="Injong Rhee"/> | ||||
<date month="August" year="2008"/> | ||||
</front> | ||||
<seriesInfo name="Proc. PFLDnet." value="2008"/> | ||||
</reference> | ||||
<reference anchor="xiph-seq"> | <author initials='Z' surname='Sarker' fullname='Zaheduzzaman Sarker'> | |||
<front> | <organization /> | |||
<title>Video Test Media Set</title> | </author> | |||
<author fullname="Daede, T." initials="T." surname="Daede"></a | <author initials='V' surname='Singh' fullname='Varun Singh'> | |||
uthor> | <organization /> | |||
</author> | ||||
<date month="" year="" /> | <author initials='X' surname='Zhu' fullname='Xiaoqing Zhu'> | |||
</front> | <organization /> | |||
<seriesInfo name="https://media.xiph.org/video/derf/" value="" / | </author> | |||
> | ||||
</reference> | ||||
<!-- <reference anchor="HEVC-seq"> | <author initials='M' surname='Ramalho' fullname='Michael Ramalho'> | |||
<front> | <organization /> | |||
<title>Test Sequences</title> | </author> | |||
<author fullname="" initials="" surname="HEVC"></author> | <date month='July' year='2020' /> | |||
</front> | ||||
<date month="" year="" /> | <seriesInfo name="RFC" value="8867"/> | |||
</front> | <seriesInfo name="DOI" value="10.17487/RFC8867"/> | |||
<seriesInfo name="http://www.netlab.tkk.fi/~varun/test_sequences | ||||
/" | ||||
value="" /> | ||||
</reference> | ||||
</references> | </reference> | |||
<!-- | <!-- draft-ietf-rmcat-wireless-tests-11 (8869) part of C238 --> | |||
<section anchor="misc" title="Application Trade-off"> | <reference anchor="RFC8869" target="https://www.rfc-editor.org/info/rfc8869"> | |||
<t>Application trade-off is yet to be defined. see <xref | <front> | |||
target="I-D.ietf-rmcat-cc-requirements">RMCAT requirements</xref> | <title>Evaluation Test Cases for Interactive Real-Time Media over Wireless Netwo | |||
document. Perhaps each experiment should define the application's | rks</title> | |||
expectation or trade-off.</t> | ||||
<section anchor="misc-2" title="Measuring Quality"> | ||||
<t>No quality metric is defined for performance evaluation, it is | ||||
currently an open issue. However, there is consensus that | ||||
congestion control algorithm should be able to show that it is | ||||
useful for interactive video by performing analysis using a real | ||||
codec and video sequences. </t> | ||||
</section> | ||||
</section> | ||||
<section anchor="App-cl" title="Change Log"> | <author initials="Z" surname="Sarker" fullname="Zaheduzzaman Sarker"> | |||
<t>Note to the RFC-Editor: please remove this section prior to | <organization/> | |||
publication as an RFC.</t> | </author> | |||
<section title="Changes in draft-ietf-rmcat-eval-criteria-07"> | ||||
<t>Updated the draft according to the discussion at IETF-101.</t> | ||||
<t><list style="symbols"> | ||||
<t>Updated the discussion on fairness. Thanks to Xiaoqing Zhu for | ||||
providing text.</t> | ||||
<t>Fixed a simple loss model and provided pointers to more sophisti | ||||
cated ones.</t> | ||||
<t>Fixed the choice of the jitter model.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-ietf-rmcat-eval-criteria-06"> | ||||
<t><list style="symbols"> | ||||
<t>Updated Jitter.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-ietf-rmcat-eval-criteria-05"> | ||||
<t><list style="symbols"> | ||||
<t>Improved text surrounding wireless tests, video sequences, | ||||
and short-TCP model.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-ietf-rmcat-eval-criteria-04"> | ||||
<t><list style="symbols"> | ||||
<t>Removed the guidelines section, as most of the sections | ||||
are now covered: wireless tests, video model, etc.</t> | ||||
<t>Improved Short TCP model based on the suggestion to use | ||||
httparchive.org.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-ietf-rmcat-eval-criteria-03"> | ||||
<t><list style="symbols"> | ||||
<t>Keep-alive version.</t> | ||||
<t>Moved link parameters and traffic models from eval-test</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-ietf-rmcat-eval-criteria-02"> | ||||
<t><list style="symbols"> | ||||
<t>Incorporated fairness test as a working test.</t> | ||||
<t>Updated text on mimimum evaluation requirements.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-ietf-rmcat-eval-criteria-01"> | ||||
<t><list style="symbols"> | ||||
<t>Removed Appendix B.</t> | ||||
<t>Removed Section on Evaluation Parameters.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-ietf-rmcat-eval-criteria-00"> | ||||
<t><list style="symbols"> | ||||
<t>Updated references.</t> | ||||
<t>Resubmitted as WG draft.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-singh-rmcat-cc-eval-04"> | ||||
<t><list style="symbols"> | ||||
<t>Incorporate feedback from IETF 87, Berlin.</t> | ||||
<t>Clarified metrics: convergence time, bandwidth | ||||
utilization.</t> | ||||
<t>Changed fairness criteria to fairness test.</t> | ||||
<t>Added measuring pre- and post-repair loss.</t> | ||||
<t>Added open issue of measuring video quality to | ||||
appendix.</t> | ||||
<t>clarified use of DropTail and AQM.</t> | ||||
<t>Updated text in "Minimum Requirements for Evaluation"</t> | ||||
</list></t> | <author initials="X" surname="Zhu" fullname="Xiaoqing Zhu"> | |||
</section> | <organization/> | |||
<section title="Changes in draft-singh-rmcat-cc-eval-03"> | </author> | |||
<t><list style="symbols"> | ||||
<t>Incorporate the discussion within the design team.</t> | ||||
<t>Added a section on evaluation parameters, it describes the | ||||
flow and network characteristics.</t> | ||||
<t>Added Appendix with self-fairness experiment.</t> | ||||
<t>Changed bottleneck parameters from a proposal to an example | ||||
set.</t> | ||||
<t></t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-singh-rmcat-cc-eval-02"> | <author initials="J" surname="Fu" fullname="Jian Fu"> | |||
<t><list style="symbols"> | <organization/> | |||
<t>Added scenario descriptions.</t> | </author> | |||
</list></t> | ||||
</section> | ||||
<section title="Changes in draft-singh-rmcat-cc-eval-01"> | <date month='July' year='2020' /> | |||
<t><list style="symbols"> | ||||
<t>Removed QoE metrics.</t> | </front> | |||
<t>Changed stability to steady-state.</t> | <seriesInfo name="RFC" value="8869"/> | |||
<t>Added measuring impact against few and many | <seriesInfo name="DOI" value="10.17487/RFC8869"/> | |||
flows.</t> | </reference> | |||
<t>Added guideline for idle and data-limited periods.</t> | ||||
<t>Added reference to TCP evaluation suite in example | <!-- [I-D.ietf-netvc-testing] IESG state I-D Exists (IESG: Dead) as of 2020 May | |||
evaluation scenarios.</t> | 18. | |||
</list></t> | --> | |||
</section> | ||||
</section> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refe | |||
</back> | rence.I-D.draft-ietf-netvc-testing-09.xml"/> | |||
<reference anchor="gilbert-elliott" target="https://ieeexplore.ieee.org/ | ||||
document/5755057"> | ||||
<front> | ||||
<title>The Gilbert-Elliott Model for Packet Loss in Real Time Servic | ||||
es on the Internet</title> | ||||
<author surname="Hasslinger" fullname="Gerhard Hasslinger"> | ||||
<organization/> | ||||
</author> | ||||
<author surname="Hohlfeld" fullname="Oliver Hohlfeld"> | ||||
<organization/> | ||||
</author> | ||||
<date month="3" year="2008"/> | ||||
<abstract> | ||||
<t>The estimation of quality for real-time services over telecommu | ||||
nication networks requires realistic models for impairments and failures during | ||||
transmission. We focus on the classical Gilbert-Elliott model whose second order | ||||
statistics is derived over arbitrary time scales and used to fit packet loss pr | ||||
ocesses of traffic traces measured in the IP back- bone of Deutsche Telekom. The | ||||
results show that simple Markov models are appropriate to capture the observed | ||||
loss pattern. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<refcontent>14th GI/ITG Conference - Measurement, Modelling and Eval | ||||
utation [sic] of Computer and Communication Systems</refcontent> | ||||
</reference> | ||||
<reference anchor="tcpdump" target="https://www.tcpdump.org/index.html"> | ||||
<front> | ||||
<title>Homepage of tcpdump and libpcap</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="wireshark" target="https://www.wireshark.org"> | ||||
<front> | ||||
<title>Homepage of Wireshark</title> | ||||
<author> | ||||
<organization/> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<!--[xiph-seq] The URL below is correct --> | ||||
<reference anchor="xiph-seq" target="https://media.xiph.org/video/de | ||||
rf/"> | ||||
<front> | ||||
<title>Video Test Media Set</title> | ||||
<author fullname="Daede, T." initials="T." surname="Daede"/> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="contrib" numbered="false" toc="default"> | ||||
<name>Contributors</name> | ||||
<t>The content and concepts within this document are a product of | ||||
the discussion carried out in the Design Team.</t> | ||||
<t><contact fullname="Michael Ramalho"/> provided the text for the jitter | ||||
models (<xref target="JM" format="default"/>).</t> | ||||
</section> | ||||
<section numbered="false" toc="default"> | ||||
<name>Acknowledgments</name> | ||||
<t> Much of this document is derived from previous work on | ||||
congestion control at the IETF.</t> | ||||
<t> The authors would like to thank | ||||
<contact fullname="Harald Alvestrand"/>, | ||||
<contact fullname="Anna Brunstrom"/>, | ||||
<contact fullname="Luca De Cicco"/>, | ||||
<contact fullname="Wesley Eddy"/>, | ||||
<contact fullname="Lars Eggert"/>, | ||||
<contact fullname="Kevin Gross"/>, | ||||
<contact fullname="Vinayak Hegde"/>, | ||||
<contact fullname="Randell Jesup"/>, | ||||
<contact fullname="Mirja Kühlewind"/>, | ||||
<contact fullname="Karen Nielsen"/>, | ||||
<contact fullname="Piers O'Hanlon"/>, | ||||
<contact fullname="Colin Perkins"/>, | ||||
<contact fullname="Michael Ramalho"/>, | ||||
<contact fullname="Zaheduzzaman Sarker"/>, | ||||
<contact fullname="Timothy B. Terriberry"/>, | ||||
<contact fullname="Michael Welzl"/>, | ||||
<contact fullname="Mo Zanaty"/>, and | ||||
<contact fullname="Xiaoqing Zhu"/> | ||||
for providing valuable feedback on draft versions of this document. | ||||
Additionally, thanks to the participants of the Design Team for | ||||
their comments and discussion related to the evaluation | ||||
criteria.</t> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 117 change blocks. | ||||
929 lines changed or deleted | 539 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/ |