<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ippm-qoo-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title abbrev="QoO">Quality of Outcome</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-qoo-00"/>
    <author fullname="Bjørn Ivar Teigen">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>bjorn@domos.no</email>
      </address>
    </author>
    <author fullname="Magnus Olden">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>magnus@domos.no</email>
      </address>
    </author>
    <date year="2024" month="March" day="21"/>
    <area>Transport</area>
    <workgroup>IP Performance Measurement</workgroup>
    <keyword>Quality Attenuation</keyword>
    <keyword>Application Outcomes</keyword>
    <keyword>Quality of Outcome</keyword>
    <keyword>Performance monitoring</keyword>
    <keyword>Network quality</keyword>
    <abstract>
      <?line 104?>

<t>This document describes a new network quality framework named Quality of Outcome
(QoO). The QoO framework is unique among network quality frameworks because it
is designed to meet the needs of application developers, users and operators.
This is achieved by basing the framework on Quality Attenuation, defining a
simple format for specifying application requirements, and defining a way to
compute a simple and intuitive user-facing metric.</t>
      <t>The framework proposes a way of sampling network quality, setting network
quality requirements and a formula for calculating the probability for the
sampled network to satisfy network requirements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://domoslabs.github.io/QoOID/draft-olden-ippm-qoo.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ippm-qoo/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        IP Performance Measurement Working Group mailing list (<eref target="mailto:ippm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ippm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ippm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/domoslabs/QoOID"/>.</t>
    </note>
  </front>
  <middle>
    <?line 117?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document explores how the quality attenuation metric and framework
<xref target="TR-452.1"/> can be extended to meet the full set of requirements described in
the Motivation section. The goal is to define a network requirement framework
that allows application developers to specify their network requirements, along
with a way to create a simple user-facing metric based on comparing application
requirements to measurements of network performance. Basing this framework on
quality attenuation <xref target="TR-452.1"/> ensures that network operators get the
fault-isolation and network planning benefits of composability.</t>
      <t>Quality attenuation is a network quality metric that meets most of the criteria
set out in the requirements; it can capture the probability of a network
satisfying application requirements, it is composable, and it can be compared to
a variety of application requirements. The part that is yet missing is how to
present quality attenuation results to end-users and application developers in
an understandable way. We believe a per-application, per application-type, or
per-SLA approach is appropriate here. The challenge lies in specifying how to
simplify enough without losing too much in terms of precision and accuracy.</t>
      <t>We believe the probabilistic approach is key as the network stack and
application's network quality adaptation can be highly complex. Applications and
the underlying networking protocols make separate optimizations based on their
perceived network quality over time and saying something about an outcome with
absolute certainty will be practically impossible. We can however make educated
guesses on the probability of outcomes.</t>
      <t>We propose representing network quality as a minimum required throughput and set
of latency and loss percentiles. Application developers, regulatory bodies and
other interested parties can describe network requirements in the same manner.
We propose a formula for a distance measure between perfect and unusable. This
distance measure can, with some assumptions, calculate something that can be
simplified into statements such as “A Video Conference has a 93% chance of being
lag free on this network” all while making it possible to use the framework both
for end-to-end test and analysis from within the network.</t>
      <t>The work proposes a minimum viable framework, and often trades precision for
simplicity. The justification for this is to ensure adoption and usability in
many different contexts such as active testing from applications and monitoring
from network equipment. To counter the loss of precision, we require some
parameters that allow for analysis of the precision.</t>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>This section describes the features and attributes a network quality framework
must have to be useful for different stakeholders. The stakeholders included are
Application developers, End-Users, and Network Operators and Vendors. At a high
level, End-Users need an understandable network metric. Application developers
need a network metric that allows them to evaluate how well their application is
likely to perform given the measured network performance. Network Operators and
Vendors need a metric that facilitates troubleshooting and optimization of their
networks. Existing network quality metrics and frameworks typically address the
needs of one or two of these stakeholders, but we have yet to find one that
bridges the needs of all three.</t>
      <section anchor="introduction-1">
        <name>Introduction</name>
        <t>This section aims to describe the features a network performance framework must
have to be understandable to end-users, useful for application developers, and
actionable for network operators. One of the key motivations behind this
initiative is to bridge the gap between the technical aspects of network
performance and the practical needs of those who depend on it. While solutions
exist for many of the problems causing high and unstable latency in the
Internet, the incentives to deploy them have remained relatively weak. By
creating a unifying framework for assessing network quality, we aim to
strengthen these incentives significantly.</t>
        <t>Bandwidth is necessary but not sufficient for high-quality modern network
experiences. Idle latency, working latency, jitter, and unmitigated packet loss
are major causes of poor application outcomes. The impact of latency is widely
recognized in network engineering circles <xref target="BITAG"/>. Unfortunately, it is
complicated to benchmark the quality of network transport. Most end-users are
unable to relate to metrics other than Mbps, which they have long been
conditioned to think of as the only dimension of network quality.</t>
        <t>Real Time Response under load tests<xref target="RRUL"/> and Responsiveness <xref target="RPM"/> make huge
strides in making a better network quality metric that is far closer to
application outcomes than bandwidth is, and the latter is successful at being
relatively relatable/understandable to end-users.</t>
        <t>As pointed out in <xref target="RPM"/>, “Our networks remain unresponsive, not from a lack of
technical solutions, but rather a lack of awareness of the problem.” The lack of
awareness means a lack of incentives for operators to invest in improving
network quality (beyond increasing the throughput). While Open Source solutions
exist, vendors rarely implement them. And it all boils down to the lack of a
universally accepted network quality framework that captures how well
applications are likely to work.</t>
        <t>A recent IAB workshop on measuring internet quality for end users identified
this important point: Users mostly care about application performance (as
opposed to network performance). Among the conclusions is the statement, "A
really meaningful metric for users is whether their application will work
properly or fail because of a lack of a network with sufficient characteristics"
<xref target="RFC9318"/>. One of the requirements we set out here is, therefore, to be able
to answer this question: "Will an application work properly?". An answer to this
question requires a few things; First, we must acknowledge that the internet is
stochastic (from the point-of-view of any given client), and we can never answer
this question with certainty. Second, different applications have different
needs and adapt differently to varying network conditions. Any framework aiming
to answer this question must be able to cater to the needs of different
applications. Thirdly, end users are individuals with different perception of,
and levels of tolerance for, degradation of network conditions and the resulting
effect on application experience.</t>
      </section>
      <section anchor="design-goal">
        <name>Design Goal</name>
        <t>The overall goal is to describe the requirements for an objective network
quality framework and metric that is useful for end-users, application
developers, and network operators/vendors alike.</t>
      </section>
      <section anchor="requirements">
        <name>Requirements</name>
        <t>This section describes the three main requirements and the motivation for each.</t>
        <t>In general, all stakeholders ultimately care about the success of applications
running over the network. Application success depends not just on bandwidth but
also on the delay of the network links and computational steps involved in
making the application function.</t>
        <t>These delays in turn depend on how the application places load on the network,
how the network is affected by environmental conditions and the behavior of
other users sharing the network resources.</t>
        <t>Different applications have different needs from the network, and they put
different patterns of load on the network. To provide an answer to whether or
not applications will work well or fail, a network quality framework must
therefore be able to compare measurements of network performance to many
different application requirements.</t>
        <t>Flexibility in describing application requirements and the ability to capture
the delay characteristics of the network in enough detail to compute how likely
application success is with satisfactory accuracy and precision are necessary
conditions.</t>
        <t>How can operators take action when measurements show that applications fail too
often? We can answer this question if the measured metric(s) support spatial
composition <xref target="RFC6049"/>, <xref target="RFC6390"/>. Spatial composition gives us the ability
to divide results into sub-results, each measuring the performance of a required
sub-milestone that must be reached in time for the application to succeed.</t>
        <t>To summarise, the framework and "meaningful metric" we're looking for should
have the following properties:</t>
        <ol spacing="normal" type="1"><li>
            <t>Capture the information necessary to compute the probability that
applications will work well. (Useful for End-users and Application
developers)</t>
          </li>
          <li>
            <t>Compare meaningfully to different application requirements.</t>
          </li>
          <li>
            <t>Compose. So that operators can isolate and quantify the contributions of
different sub-outcomes and sub-paths of the network. (Useful for Operators
and Vendors)</t>
          </li>
        </ol>
        <section anchor="requirements-for-end-users">
          <name>Requirements for end-users</name>
          <t>The quality framework should facilitate a metric that is objective, relatable,
and relatively understandable for an end-user. We are looking for a middle
ground between objective QoS metrics (Throughput, packet loss, jitter, average
latency) and subjective but understandable QoE metrics (MOS, 5-star ratings).
The ideal framework should be objective, like QoS metrics, and understandable,
like QoE metrics.</t>
          <t>If these requirements are met, the end-user can understand if a network can
reliably deliver what they care about: the outcomes of applications. Examples
are how quickly a web page loads, the smoothness of a video conference, or
whether or not a video game has any lag.</t>
          <t>Each end user will have an individual tolerance of session quality, below which
their quality of experience becomes personally unacceptable. However it may not
be feasible to capture and represent these tolerances <em>per user</em> as the user
group scales. A compromise is for the quality of experience framework to place
the responsibility for sourcing and representing end-user requirements onto the
application developer. Application developers should perform user-acceptance
testing (UAT) of their application across a range of users, terminals and
network conditions to determine the terminal and network requirements that will
meet the end-user quality threshold for an acceptable subset of their end users.
Some real world examples where 'acceptable levels' have been derived by
application developers include (note: developers of similar applications may
have arrived at different figures):</t>
          <ul spacing="normal">
            <li>
              <t>Remote music collaboration: 28ms latency note-to-ear for direct monitoring,
&lt;2ms jitter</t>
            </li>
            <li>
              <t>Online gaming: 6Mb/s downlink throughput and 30ms RTT to join a multiplayer
game</t>
            </li>
            <li>
              <t>Virtual reality: &lt;20ms RTT from head motion to rendered update in VR</t>
            </li>
          </ul>
          <t>Performing this UAT helps the developer understand what likelihood a new
end-user has of an acceptable Quality of Experience based on the application's
existing requirements towards the network. These requirements can evolve and
improve based on feedback from end users, and in turn better inform the
application's requirements towards the network.</t>
        </section>
        <section anchor="requirements-from-application-and-platform-developers">
          <name>Requirements from Application and Platform Developers</name>
          <t>The framework needs to give developers the ability to describe the network
requirements of their applications. The format for specifying network
requirements must include all relevant dimensions of network quality so that
different applications which are sensitive to different network quality
dimensions can all evaluate the network accurately. We can only expect some
developers to have network expertise, so to make it easy for developers to use
the framework, developers must be able to specify network requirements
approximately. Therefore, it must be possible to describe both simple and
complex network requirements. The framework also needs to be flexible so that it
can be used with different kinds of traffic and that extreme network
requirements which far exceed the needs of today's applications can also be
articulated.</t>
          <t>If these requirements are met, developers of applications or platforms can state
or test their network requirements and evaluate if the network is sufficient for
a great application outcome. Both the application developers with networking
expertise and those without can use the framework.</t>
        </section>
        <section anchor="requirements-for-network-operators-and-network-solution-vendors">
          <name>Requirements for Network Operators and Network Solution Vendors</name>
          <t>From an operator perspective, the key is to have a framework that lets operators
find the network quality bottlenecks and objectively compare different networks
and technologies. The framework must support mathematically sound
compositionality ('addition' and 'subtraction') to achieve this. Why? Network
operators rarely manage network traffic end-to-end. If a test is purely
end-to-end, the ability to find bottlenecks may be gone. If, however, we could
measure end-to-end (e.g., a-b-c-d-e) and not-end-to-end (e.g., b-c-d-e) and
subtract, we can isolate the areas outside the influence of the network
operator. In other words, we could get the network quality of a-b and b-c-d-e
separately. Compositionality is essential for fault detection and
accountability.</t>
          <t>By having mathematically correct composition, a network operator can measure two
segments separately, perhaps even with different approaches, and add them
together to understand the end-to-end network quality.</t>
          <t>For another example where spatial composition is useful, we can look at a
typical web page load sequence. If we measure web page load times and find they
are too often too slow, we may then separately measure DNS resolution time, TCP
round-trip time, and the time it takes to establish TLS connections to get a
better idea of where the problem is. A network quality framework should support
this kind of analysis to be maximally useful for operators. The quality
framework must be applicable in both lab testing and monitoring of production
networks. It must be useful on different time scales, and it can't have a
dependency on network technology or OSI layer.</t>
          <t>If these requirements are met, a network operator can monitor and test their
network and understand where the true bottlenecks are, regardless of network
technology.</t>
        </section>
      </section>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t>The foundation of the framework is Quality Attenuation <xref target="TR-452.1"/>. This work
will not go into detail about how to measure Quality Attenuation, but some
relevant techniques are:</t>
      <ul spacing="normal">
        <li>
          <t>Active probing with TWAMP Light <xref target="RFC5357"/> / STAMP <xref target="RFC8762"/> / IRTT
<xref target="IRTT"/></t>
        </li>
        <li>
          <t>Varying Latency Under Load Tests</t>
        </li>
        <li>
          <t>Varying Speed Tests with latency measures</t>
        </li>
        <li>
          <t>Simulating real traffic</t>
        </li>
        <li>
          <t>End-to-end measurements of real traffic</t>
        </li>
        <li>
          <t>TCP SYN ACK / DNS Lookup RTT Capture</t>
        </li>
        <li>
          <t>Estimation</t>
        </li>
      </ul>
      <t>Quality Attenuation represents quality measurements as distributions. Using
Latency distributions to measure network quality is nothing new and has been
proposed by various researchers/practitioners <xref target="Kelly"/><xref target="RFC8239"/><xref target="RFC6049"/>.
The novelty of the Quality Attenuation metric is to view packet loss as infinite
(or too late to be of use e.g. &gt; 3 seconds) latency <xref target="TR-452.1"/>.</t>
      <t>Latency Distributions can be gathered via both passive monitoring and active
testing. The active testing can use any type of IP traffic, such as TCP, UDP, or
QUIC. It is OSI Layer and network technology independent, meaning it can be
gathered in an end-user application, within some network equipment, or anywhere
in between.</t>
      <t>A key assumption behind the choice of latency distribution is that different
applications and application categories fail at different points of the latency
distribution. Some applications, typically downloads, have lenient latency
requirements. Video Conferences typically are sensitive to high 90th percentile
latency and to the difference between the 90th and the 99th percentile. Online
gaming typically has a low tolerance for high 99th percentile latency. All
applications require a minumum level of throughput and a maximum packet loss
rate. A network quality metric that aims to generalize network quality must take
the latency distribution, throughput, and packet loss into consideration.</t>
      <t>Two distributions can be composed using convolution <xref target="TR-452.1"/>.</t>
      <section anchor="discussion-of-other-performance-metrics">
        <name>Discussion of other performance metrics</name>
        <t>Many network performance metrics and frameworks for reasoning about them have
been proposed, used, and abused throughout the years. We present a brief
description of some of the most relevant metrics.</t>
        <t>For each of the metrics below, we discuss whether or not they meet each of the
three criteria set out in the requirements.</t>
        <section anchor="average-peak-throughput">
          <name>Average Peak Throughput</name>
          <t>Throughput is related to user-observable application outcomes because there must
be <em>enough</em> bandwidth available. Adding extra bandwidth above a certain
threshold will, at best, receive diminishing returns (and any returns are often
due to reduced latency). It is not possible to compute the probability of
application success or failure based on throughput alone for most applications.
Throughput can be compared to a variety of application requirements, but since
there is no direct correlation between throughput and application performance,
it is not possible to conclude that an application will work well even if we
know that enough throughput is available.</t>
          <t>Throughput cannot be composed.</t>
        </section>
        <section anchor="average-latency">
          <name>Average Latency</name>
          <t>Average latency relates to user-observable application outcomes in the sense
that the average latency must be low enough to support a good experience.
However, it is not possible to conclude that a general application will work
well based on the fact that the average latency is good enough <xref target="BITAG"/>.</t>
          <t>Average latency can be composed. If the average latency of links a-b and b-c is
known, then the average latency of the composition a-b-c is the sum of a-b and
b-c.</t>
        </section>
        <section anchor="th-percentile-of-latency">
          <name>99th Percentile of Latency</name>
          <t>The 99th percentile of latency relates to user-observable application outcomes
because it captures some information about how bad the tail latency is. If an
application can handle 1% of packets being too late, for instance by maintaining
a playback buffer, then the 99th percentile can be a good metric for measuring
application performance. It does not work as well for applications that are very
sensitive to overly delayed packets because the 99th percentile disregards all
information about the delays of the worst 1% of packets.</t>
          <t>It is not possible to compose 99th-percentile values.</t>
        </section>
        <section anchor="variance-of-latency">
          <name>Variance of latency</name>
          <t>The variance of latency can be calculated from any collection of samples, but
network latency is not necessarily normally distributed, and so it can be
difficult to extrapolate from a measure of the variance of latency to how well
specific applications will work.</t>
          <t>The variance of latency can be composed. If the variance of links a-b and b-c is
known, then the variance of the composition a-b-c is the sum of the variances
a-b and b-c.</t>
        </section>
        <section anchor="inter-packet-delay-variation-ipdv">
          <name>Inter-Packet Delay Variation (IPDV)</name>
          <t>The most common definition of IPDV <xref target="RFC5481"/> measures the difference in
one-delay between subsequent packets. Some applications are very sensitive to
this because of time-outs that cause later-than-usual packets to be discarded.
For some applications, IPDV can be useful in assessing application performance,
especially when it is combined with other latency metrics. IPDV does not contain
enough information to compute the probability that a wide range of applications
will work well.</t>
          <t>IPDV cannot be composed.</t>
        </section>
        <section anchor="packet-delay-variation-pdv">
          <name>Packet Delay Variation (PDV)</name>
          <t>The most common definition of PDV <xref target="RFC5481"/> measures the difference in
one-delay between the smallest recorded latency and each value in a sample.</t>
          <t>PDV cannot be composed.</t>
        </section>
        <section anchor="trimmed-mean-of-latency">
          <name>Trimmed Mean of Latency</name>
          <t>The trimmed mean of latency is the average computed after the worst x percent of
samples have been removed. Trimmed means are typically used in cases where there
is a known rate of measurement errors that should be filtered out before
computing results.</t>
          <t>In the case where the trimmed mean simply removes measurement errors, the result
can be composed in the same way as the average latency. In cases where the
trimmed mean removes real measurements, the trimming operation introduces errors
that may compound when composed.</t>
        </section>
        <section anchor="round-trips-per-minute">
          <name>Round-trips Per Minute</name>
          <t>Round-trips per minute <xref target="RPM"/> is a metric and test procedure specifically
designed to measure delays as experienced by application-layer protocol
procedures such as HTTP GET, establishing a TLS connection, and DNS lookups. It,
therefore, measures something very close to the user-perceived application
performance of HTTP-based applications. RPM loads the network before conducting
latency measurements and is, therefore, a measure of loaded latency (also known
as working latency) well-suited to detecting bufferbloat <xref target="Bufferbloat"/>.</t>
          <t>RPM is not composable.</t>
        </section>
        <section anchor="quality-attenuation">
          <name>Quality Attenuation</name>
          <t>Quality Attenuation is a network performance metric that combines latency and
packet loss into a single variable <xref target="TR-452.1"/>.</t>
          <t>Quality Attenuation relates to user-observable outcomes in the sense that
user-observable outcomes can be measured using the Quality Attenuation metric
directly, or the quality attenuation value describing the time-to-completion of
a user-observable outcome can be computed if we know the quality attenuation of
each sub-goal required to reach the desired outcome <xref target="Haeri22"/>.</t>
          <t>Quality Attenuation is composable because the convolution of quality attenuation
values allows us to compute the time it takes to reach specific outcomes given
the quality attenuation of each sub-goal <xref target="Haeri22"/>.</t>
        </section>
        <section anchor="summary-of-performance-metrics">
          <name>Summary of performance metrics</name>
          <t>This table summarizes the properties of each of the metrics we have surveyed.</t>
          <t>The column "Capture probability of general applications working well" records
whether each metric can, in principle, capture the information necessary to
compute the probability that a general application will work well. We assume
measurements capture the properties of the end-to-end network path that the
application is using.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Metric</th>
                <th align="left">Capture probability of general applications working well</th>
                <th align="left">Easy to articulate Application requirements</th>
                <th align="left">Composable</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Average latency</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">Variance of latency</td>
                <td align="left">No</td>
                <td align="left">No</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">IPDV</td>
                <td align="left">Yes for some applications</td>
                <td align="left">No</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">PDV</td>
                <td align="left">Yes for some applications</td>
                <td align="left">No</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Average Peak Throughput</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">99th Percentile of Latency</td>
                <td align="left">No</td>
                <td align="left">No</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Trimmed mean of latency</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Round Trips Per Minute</td>
                <td align="left">Yes for some applications</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Quality Attenuation</td>
                <td align="left">Yes</td>
                <td align="left">No</td>
                <td align="left">Yes</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
    </section>
    <section anchor="sampling-requirements">
      <name>Sampling requirements</name>
      <t>To reach the design goal of being useful in the contexts laid out in the
Motivation section, this work imposes no requirement on the time period or the
network loading situation. This choice has pros and cons. Latency under load is
extremely important, but average or median latency has a role too. However, a
network quality metric that does not take latency under load into account is
bound to fail at predicting application outcome.</t>
      <t>This framework only requires a latency distribution. If the sampling is done
while the network is loaded, latency under load will be part of the
distribution, which is encouraged, but is not always possible, for example when
passively monitoring the latency of real traffic.</t>
      <t>It takes quite a few samples to have a statistically significant distribution.
Modeling a distribution may be a challenging software engineering task, hence we
need to sample the latency distribution at certain percentiles. A list of 10
percentiles in a logarithmic-esque fashion has already been suggested in
industry [0th, 10th, 25th, 50th, 75th, 90th, 95th, 99th, 99.9th, 100th] and
seems adequate. We propose to define a shared set of percentile values to
report.</t>
      <t>The framework is flexible when it comes to the direction of traffic that is
being sampled, but does require that it is noted whether the latency
distribution is measured one-way or two-way. The framework does not require an
explicit throughput measurement, but does require a note on the maximal observed
throughput in the time period.</t>
      <t>By not requiring a specific number of samples, this framework allows taking 10
samples and calling it a distribution, which of course is not ideal. On the
other hand, making the framework overly complex and difficult to adhere to using
real-world equipment and applications is likely to reduce willingness to adopt
the framework. Constraints will vary for different network equipment and
applications.</t>
      <t>To make sure we can trust measurements from others and analyze their precision,
we require:</t>
      <ul spacing="normal">
        <li>
          <t>Timestamp of first sample</t>
        </li>
        <li>
          <t>Duration of the sampling period</t>
        </li>
        <li>
          <t>Number of samples</t>
        </li>
        <li>
          <t>Type of measurement:  </t>
          <ul spacing="normal">
            <li>
              <t>Cyclic (a sample every Nth ms) - Specify N</t>
            </li>
            <li>
              <t>Bursts (X samples every Nth ms) - Specify X and N</t>
            </li>
            <li>
              <t>Passive (observing traffic and therefore unevenly sampled)</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>By requiring the report of these variables, we ensure that the network
measurements can be analyzed for precision and confidence.</t>
    </section>
    <section anchor="describing-network-requirements">
      <name>Describing Network Requirements</name>
      <t>This work builds upon the work already proposed in the Broadband Forum standard
called Quality of Experience Delivered (QED/TR-452) <xref target="TR-452.1"/>. In essence, it
describes network requirements as a list of percentile and latency requirement
tuples. In other words, a network requirement may be expressed as: The network
requirement for this app quality level/app/app category/SLA is “at 4 Mbps, 90%
of packets needs to arrive within 100 ms, 100% of packets needs to arrive within
200ms”. This list can be as simple as “100% of packets need to arrive within
200ms” or as long as you would like. For the sake of simplicity, the
requirements percentiles must match one or more of the percentiles defined in
the measurements, i.e., one can set requirements at the [0th, 10th, 25th, 50th,
75th, 90th, 95th, 99th, 99.9th, 100th] percentiles. The last specified
percentile marks the acceptable packet loss. I.e. if the 99th percentile is the
highest percentile defined, 1% packet loss (100-99) is inferred.</t>
      <t>Applications do of course have throughput requirements. With classical TCP and
typical UDP flows, latency and packet loss would be enough, as they are bound to
create some latency or packet loss when ramping up throughput if subsequently
they become hindered by insufficient bandwidth. However, we cannot always rely
on monitoring latency exclusively, as low bandwidth may give poor application
outcomes without necessarily inducing a lot of latency. Therefore, the network
requirements should include a minimum throughput requirement.</t>
      <t>Whether the requirements are one-way or two-way must be specified. Where the
requirement is one-way, the direction (uplink or downlink) must be specified. If
two-way, a decomposition into uplink and downlink measurements may be specified.</t>
      <t>Until now, network requirements and measurements are what is already
standardized in the BBF TR-452 (aka QED) framework <xref target="TR-452.1"/>. The novel part
of this work is what comes next. A method for going from Network Requirements
and Network Measurements to probabilities of good application outcomes.</t>
      <t>To do that we need to make articulating the network requirements a little bit
more complicated. A key design goal was to have a distance measure between
perfect and unusable, and have a way of quantifying what is ‘better’.</t>
      <t>We extend the requirements to include the quality required for perfection and a
quality threshold beyond which the application is considered unusable.</t>
      <t>This is named Network Requirements for Perfection (NRP). As an example: At 4
Mbps, 99% of packets need to arrive within 100ms, 99.9% within 200ms (implying
that 0.1% packet loss is acceptable) for the outcome to be perfect. Network
Requirement Point of Unusableness (NRPoU): If 99% of the packets have not
arrived after 200ms, or 99.9% within 300ms, the outcome will be unusable.</t>
      <t>Where the NRPoU percentiles and NRP are a required pair then neither should
define a percentile not included in the other - i.e., if the 99.9th percentile
is part of the NRPoU then the NRP must also include the 99.9th percentile.</t>
    </section>
    <section anchor="calculating-quality-of-outcome-qoo">
      <name>Calculating Quality of Outcome (QoO)</name>
      <t>At this point we have everything we need to calculate the quality of the
application outcome (QoO). There are 3 scenarios:</t>
      <ol spacing="normal" type="1"><li>
          <t>The network meets all the requirements for perfection. There is a 100% chance
that the application is not lagging because of the network</t>
        </li>
        <li>
          <t>The network does meet one of the criteria of the Point of Unusableness. There
is a 0% chance that the application will work well, and it's because of the
network</t>
        </li>
        <li>
          <t>The network does not meet NRP but is not beyond NRPoU.</t>
        </li>
      </ol>
      <t>1 and 2 require nothing more from the framework. For 3, we will now specify the
calculation to translate these distances to a 0 to 100 measure. We use the
percentile pair where the measured latency is the closest to the NRPoU as the
application is only as good as its weakest link.</t>
      <t>Mathematically:</t>
      <t>QoO = min_{i}(min(max((1-((ML-NRP)/(NRPoU-NRP))) * 100, 0), 100))</t>
      <t>Where</t>
      <t>ML = Measured Latency in percentiles and milliseconds <br/>
NRP = Network Requirement for Perfection, defined as minimum throughput and
percentiles and milliseconds<br/>
NRPoU = Network Requirement Point of Unusableness in percentiles and
milliseconds <br/>
and i iterates over the list of percentiles and milliseconds</t>
      <t>Essentially, where on the relative distance between Network Requirement for
Perfection (NRP) and Network Requirement Point of Unusableness (NRPoU) the
Measured Latency (ML) lands, normalized to a percentage.</t>
      <section anchor="example-requirements-and-measured-latency">
        <name>Example requirements and measured latency:</name>
        <t>NRP: 4 Mbps {99%, 250 ms},{99.9%, 350 ms} NRPoU: {99%, 400 ms},{99.9%, 401 ms}
Measured Latency: .... 99% = 350ms, 99.9% = 352 ms Measured Minumum bandwidth:
32 Mbps / 28 Mbps</t>
        <t>Then the QoO is defined:</t>
        <t>QoO</t>
        <artwork><![CDATA[
= min(
 (min(max((1-(350 ms - 250 ms)/(400 ms - 250 ms))*100), 0), 100),
 (min(max((1-(352 ms - 350 ms)/(401 ms - 350 ms))*100), 0), 100)
 )

= min(33.33,96.08)

= 33.33
]]></artwork>
        <t>In this example, we would say: This application/SLA/application category has a
33% chance of being lag-free on this network. Note that packet loss is included
as infinite latency, so if there is enough packet loss to breach the highest
percentile requirement then the QoO is 0.</t>
      </section>
    </section>
    <section anchor="how-to-find-network-requirements">
      <name>How to find network requirements</name>
      <t>A key advantage of having a measurement that stretches between perfect and
unusable, as opposed to having a binary (Good/Bad) or other low resolution
(Superbad/Bad/OK/Great/Supergreat) metrics, is that we have some leeway. The
leeway is useful, for instance: a lower than 20% chance of lag free experience
is intuitively not good and a greater than 90% chance of lag free experience is
intuitively good --- meaning we don’t have to find perfection for making the QoO
metric useful.</t>
      <t>Nevertheless we have to find some points for unusableness and perfection. There
is no strict definition of when the network is so bad that the application is
unusable. For perfect, we may have a definition for some apps, but for apps like
web browsing and gaming, lower latency is simply better. But to assist those who
wish to make a requirement, we can say that if the end-user experience does not
change when reducing the latency, the network quality is sufficient for the
Network Requirements for Perfection (NRP) .</t>
      <t>Someone who wishes to make a network requirement for an application in the
simplest possible way, should do something along these lines.</t>
      <ul spacing="normal">
        <li>
          <t>Simulate increasing levels of latency</t>
        </li>
        <li>
          <t>Observe the application and note the threshold where the application stops
working perfectly</t>
        </li>
        <li>
          <t>Observe the application and note the threshold where the application stops
being useful at all</t>
        </li>
      </ul>
      <t>Someone who wishes to find sophisticated network requirements might proceed in
this way</t>
      <ul spacing="normal">
        <li>
          <t>Set thresholds for acceptable fps, animation fluidity, i/o latency (voice,
video, actions), or other metrics capturing outcomes that directly affects the
user experience</t>
        </li>
        <li>
          <t>Create a tool for measuring these user-facing metrics</t>
        </li>
        <li>
          <t>Simulate varying latency distribution with increasing levels of latency while
measuring the user facing metrics.</t>
        </li>
      </ul>
      <t>A QoO score at 94 can be communicated as "John's smartphone has a 94% chance of
lag-free Video Conferencing", however, this does not mean that at any point of
time there is a 6% chance of lag. It means there is a 6% chance of experiencing
lag during the entire session/time-period, and the network requirements should
be adjusted accordingly.</t>
      <t>The reason for making the QoO metric for a session is to make it understandable
for an end-user, an end-user should not have to relate to the time period the
metric is for.</t>
      <section anchor="an-example">
        <name>An example</name>
        <t>Example.com's video-conferencing service requirements can be translated into the
QoO Framework. For best performance for video meetings, they specify 4/4 Mbps,
100 ms latency, &lt;1% packet loss, and &lt;30 ms jitter. This can be translated to an
NRP:</t>
        <t>NRP example.com video conferencing service: At minimum 4/4 Mbps.
{0p=70ms,99p=100ms}</t>
        <t>For minimum requirements example.com does not specify anything, but at 500ms
latency or 1000ms 99p latency, a video conference is very unlikely to work in a
remotely satisfactory way.</t>
        <t>NRPoU {0p=500,99p=1000ms}</t>
        <t>Of course, it is possible to specify network requirements for Example.com with
multiple NRP/NRPoU, for different quality levels, one/two way video, and so on.
Then one can calculate the QoO at each level.</t>
      </section>
    </section>
    <section anchor="known-weaknesses-and-open-questions">
      <name>Known Weaknesses and open questions</name>
      <t>We have described a way of simplifying how the network requirements of
applications can be compared to quality attenuation measurements. The
simplification introduces several artifacts that may or may not be significant.
If new information emerges that indicate other tradeoffs are more fit for our
purpose, we should switch before this Internet Draft moves further. In this
section we discuss some known limitations.</t>
      <t>Volatile networks - in particular, mobile cellular networks - pose a challenge
for network quality prediction, with the level of assurance of the prediction
likely to decrease as session duration increases. Historic network conditions
for a given cell may help indicate times of network load or reduced transmission
power, and their effect on throughput/latency/loss. However: as terminals are
mobile, the signal bandwidth available to a given terminal can change by an
order of magnitude within seconds due to physical radio factors. These include
whether the terminal is at the edge of cell, or undergoing cell handover, the
interference and fading from the local environment, and any switch between radio
bearers with differing signal bandwidth and transmission-time intervals (e.g. 4G
and 5G). This suggests a requirement for measuring quality attenuation to and
from an individual terminal, as that can account for the factors described
above. How that facility is provisioned onto indiviudal terminals, and how
terminal-hosted applications can trigger a quality attenuation query, is an open
question.</t>
      <section anchor="missing-temporal-information-in-distributions">
        <name>Missing Temporal Information in Distributions.</name>
        <t>These two latency series: 1,200,1,200,1,200,1,200,1,200 and
1,1,1,1,1,200,200,200,200,200 will have identical distributions, but may have
different application performance. Ignoring this information is a tradeoff
between simplicity and precision. To capture all information necessary to
perfectly capture outcomes we are getting into extreme computational complexity.
As an application's performance is bound by how the developers react to varying
network performance, meaning nearly all different series of latencies may have
different application outcomes.</t>
        <t>It will most likely be necessary to add a time-scale to the application
requirement specifications.</t>
      </section>
      <section anchor="subsampling-the-real-distribution">
        <name>Subsampling the real distribution</name>
        <t>Additionally, we cannot capture latency on every packet that is sent. We can
probe and sample, but there will always be unknowns. We are now in the realm of
probability. Perfection is impossible, but instead of denying this, we should
embrace it, which is why talking about the probability of outcomes is the way
forward.</t>
      </section>
      <section anchor="assuming-linear-relationship-between-perfect-and-unusable-and-that-it-is-not-really-a-probability">
        <name>Assuming Linear Relationship between Perfect and Unusable (and that it is not really a probability)</name>
        <t>One can conjure up scenarios where 50ms latency is actually worse than 51ms
latency as developers may have chosen 50ms as the threshold for changing
quality, and the threshold may be imperfect. Taking these scenarios into account
would add another magnitude of complexity to determining network requirements
and finding a distance measure (between requirement and actual measured
capability).</t>
      </section>
      <section anchor="binary-bandwidth-threshold">
        <name>Binary Bandwidth threshold</name>
        <t>Choosing this is to reduce complexity, but we do acknowledge that the
applications are not that simple. The defence for this trade off is that
insufficient bandwidth will cause queues and therefore latency, and it should be
possible to see this. Additionally, network requirements can be set up per
quality level (resolution, fps etc.) for the application. However, having too
many network requirements also increases the complexity for users of the
framework, and it is still unclear if this is the optimal tradeoff.</t>
      </section>
      <section anchor="low-resolution-on-packet-loss">
        <name>Low resolution on Packet Loss</name>
        <t>To ensure simplicity, packet loss is described as infinite latency and the
resolution will be bound to the percentiles we chose to sample. There is a good
argument that some applications need higher resolution on packet loss for
sufficiently describing application outcomes. If this good evidence is presented
for this, packet loss should be measured separately and added to the QoO
formula.</t>
      </section>
      <section anchor="arbitrary-selection-of-percentiles">
        <name>Arbitrary selection of percentiles</name>
        <t>There is a need for a selection of percentiles, as we in the name of simplicity
can’t use them all. But how should we select them? The 0th (minimal) and 50th
(median) percentile have implicit usage by themselves. <xref target="BITAG"/> discusses that
the 90th, 98th and 99th percentiles are key for some apps. In general the wisdom
is that the higher percentiles are more useful for interactive applications, but
only to a certain point. At this point an application sees it as packet loss and
may adapt to it. Should we pick the 95th, 96th percentile, the 96.5th or the
97th? We don’t know, and as this is likely not universal across applications and
applications classes, we simply have to choose arbitrarily, and to the best of
our knowledge.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation status</name>
      <t>Note to RFC Editor: This section <bcp14>MUST</bcp14> be removed before publication of the
document.</t>
      <t>This section records the status of known implementations of the protocol defined
by this specification at the time of posting of this Internet-Draft, and is
based on a proposal described in <xref target="RFC7942"/>. The description of implementations
in this section is intended to assist the IETF in its decision processes in
progressing drafts to RFCs. Please note that the listing of any individual
implementation here does not imply endorsement by the IETF. Furthermore, no
effort has been spent to verify the information presented here that was supplied
by IETF contributors. This is not intended as, and must not be construed to be,
a catalog of available implementations or their features. Readers are advised to
note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign
due consideration to documents that have the benefit of running code, which may
serve as evidence of valuable experimentation and feedback that have made the
implemented protocols more mature. It is up to the individual working groups to
use this information as they see fit".</t>
      <section anchor="qoo-c">
        <name>qoo-c</name>
        <ul spacing="normal">
          <li>
            <t>Link to the open-source repository:  </t>
            <t>
https://github.com/domoslabs/qoo-c</t>
          </li>
          <li>
            <t>The organization responsible for the implementation:  </t>
            <t>
Domos</t>
          </li>
          <li>
            <t>A brief general description:  </t>
            <t>
A C library for calculating Quality of Outcome</t>
          </li>
          <li>
            <t>The implementation's level of maturity:  </t>
            <t>
A complete implentation of the specification described in this document</t>
          </li>
          <li>
            <t>Coverage:  </t>
            <t>
The library is tested with unit tests</t>
          </li>
          <li>
            <t>Licensing:  </t>
            <t>
GPL 2.0</t>
          </li>
          <li>
            <t>Implementation experience:  </t>
            <t>
Tested by the author. Needs additional testing by third parties.</t>
          </li>
          <li>
            <t>Contact information:  </t>
            <t>
Bjørn Ivar Teigen: bjorn@domos.no</t>
          </li>
          <li>
            <t>The date when information about this particular implementation was last
updated:  </t>
            <t>
10th of January 2024</t>
          </li>
        </ul>
      </section>
      <section anchor="goresponsiveness">
        <name>goresponsiveness</name>
        <ul spacing="normal">
          <li>
            <t>Link to the open-source repository:  </t>
            <t>
https://github.com/network-quality/goresponsiveness  </t>
            <t>
The specific pull-request:
https://github.com/network-quality/goresponsiveness/pull/56</t>
          </li>
          <li>
            <t>The organization responsible for the implementation:  </t>
            <t>
University of Cincinatti for goresponsiveness as a whole, Domos for the QoO
part.</t>
          </li>
          <li>
            <t>A brief general description:  </t>
            <t>
A network quality test written in Go. Capable of measuring RPM and QoO.</t>
          </li>
          <li>
            <t>The implementation's level of maturity:  </t>
            <t>
In active development</t>
          </li>
          <li>
            <t>Coverage:  </t>
            <t>
The QoO part is tested with unit tests</t>
          </li>
          <li>
            <t>Licensing:  </t>
            <t>
GPL 2.0</t>
          </li>
          <li>
            <t>Implementation experience:  </t>
            <t>
Needs testing by third parties</t>
          </li>
          <li>
            <t>Contact information:  </t>
            <t>
Bjørn Ivar Teigen: bjorn@domos.no  </t>
            <t>
William Hawkins III: hawkinwh@ucmail.uc.edu</t>
          </li>
          <li>
            <t>The date when information about this particular implementation was last
updated:  </t>
            <t>
10th of January 2024</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="draft-teigen-ippm-app-quality-metric-reqs">
          <front>
            <title>Requirements for a Network Quality Framework Useful for Applications, Users, and Operators</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TR-452.1" target="https://www.broadband-forum.org/download/TR-452.1.pdf">
          <front>
            <title>TR-452.1: Quality Attenuation Measurement Architecture and Requirements</title>
            <author>
              <organization>Broadband Forum</organization>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="BITAG" target="https://www.bitag.org/documents/BITAG_latency_explained.pdf">
          <front>
            <title>Latency Explained</title>
            <author>
              <organization>BITAG</organization>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
        <reference anchor="RFC5481">
          <front>
            <title>Packet Delay Variation Applicability Statement</title>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>Packet delay variation metrics appear in many different standards documents. The metric definition in RFC 3393 has considerable flexibility, and it allows multiple formulations of delay variation through the specification of different packet selection functions.</t>
              <t>Although flexibility provides wide coverage and room for new ideas, it can make comparisons of independent implementations more difficult. Two different formulations of delay variation have come into wide use in the context of active measurements. This memo examines a range of circumstances for active measurements of delay variation and their uses, and recommends which of the two forms is best matched to particular conditions and tasks. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5481"/>
          <seriesInfo name="DOI" value="10.17487/RFC5481"/>
        </reference>
        <reference anchor="RFC6049">
          <front>
            <title>Spatial Composition of Metrics</title>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>This memo utilizes IP performance metrics that are applicable to both complete paths and sub-paths, and it defines relationships to compose a complete path metric from the sub-path metrics with some accuracy with regard to the actual metrics. This is called "spatial composition" in RFC 2330. The memo refers to the framework for metric composition, and provides background and motivation for combining metrics to derive others. The descriptions of several composed metrics and statistics follow. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6049"/>
          <seriesInfo name="DOI" value="10.17487/RFC6049"/>
        </reference>
        <reference anchor="RFC6390">
          <front>
            <title>Guidelines for Considering New Performance Metric Development</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="October" year="2011"/>
            <abstract>
              <t>This document describes a framework and a process for developing Performance Metrics of protocols and applications transported over IETF-specified protocols. These metrics can be used to characterize traffic on live networks and services. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="170"/>
          <seriesInfo name="RFC" value="6390"/>
          <seriesInfo name="DOI" value="10.17487/RFC6390"/>
        </reference>
        <reference anchor="RFC9318">
          <front>
            <title>IAB Workshop Report: Measuring Network Quality for End-Users</title>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <author fullname="O. Shapira" initials="O." surname="Shapira"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>The Measuring Network Quality for End-Users workshop was held virtually by the Internet Architecture Board (IAB) on September 14-16, 2021. This report summarizes the workshop, the topics discussed, and some preliminary conclusions drawn at the end of the workshop.</t>
              <t>Note that this document is a report on the proceedings of the workshop. The views and positions documented in this report are those of the workshop participants and do not necessarily reflect IAB views and positions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9318"/>
          <seriesInfo name="DOI" value="10.17487/RFC9318"/>
        </reference>
        <reference anchor="RPM" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-responsiveness">
          <front>
            <title>Responsiveness under Working Conditions</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="July"/>
          </front>
        </reference>
        <reference anchor="RRUL" target="https://www.bufferbloat.net/projects/bloat/wiki/RRUL_Spec/">
          <front>
            <title>Real-time response under load test specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Bufferbloat" target="https://queue.acm.org/detail.cfm?id=2071893">
          <front>
            <title>Bufferbloat: Dark buffers in the Internet</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Haeri22" target="https://www.mdpi.com/2073-431X/11/3/45">
          <front>
            <title>Mind Your Outcomes: The ΔQSD Paradigm for Quality-Centric Systems Development and Its Application to a Blockchain Case Study</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC5357">
          <front>
            <title>A Two-Way Active Measurement Protocol (TWAMP)</title>
            <author fullname="K. Hedayat" initials="K." surname="Hedayat"/>
            <author fullname="R. Krzanowski" initials="R." surname="Krzanowski"/>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="K. Yum" initials="K." surname="Yum"/>
            <author fullname="J. Babiarz" initials="J." surname="Babiarz"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>The One-way Active Measurement Protocol (OWAMP), specified in RFC 4656, provides a common protocol for measuring one-way metrics between network devices. OWAMP can be used bi-directionally to measure one-way metrics in both directions between two network elements. However, it does not accommodate round-trip or two-way measurements. This memo specifies a Two-Way Active Measurement Protocol (TWAMP), based on the OWAMP, that adds two-way or round-trip measurement capabilities. The TWAMP measurement architecture is usually comprised of two hosts with specific roles, and this allows for some protocol simplifications, making it an attractive alternative in some circumstances. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5357"/>
          <seriesInfo name="DOI" value="10.17487/RFC5357"/>
        </reference>
        <reference anchor="RFC8762">
          <front>
            <title>Simple Two-Way Active Measurement Protocol</title>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="G. Jun" initials="G." surname="Jun"/>
            <author fullname="H. Nydell" initials="H." surname="Nydell"/>
            <author fullname="R. Foote" initials="R." surname="Foote"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This document describes the Simple Two-way Active Measurement Protocol (STAMP), which enables the measurement of both one-way and round-trip performance metrics, like delay, delay variation, and packet loss.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8762"/>
          <seriesInfo name="DOI" value="10.17487/RFC8762"/>
        </reference>
        <reference anchor="IRTT" target="https://github.com/heistp/irtt">
          <front>
            <title>Isochronous Round-Trip Tester</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Kelly" target="https://www.cambridge.org/core/journals/advances-in-applied-probability/article/abs/networks-of-queues/38A1EA868A62B09C77A073BECA1A1B56">
          <front>
            <title>Networks of Queues</title>
            <author initials="F. P." surname="Kelly" fullname="Frank P. Kelly">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8239">
          <front>
            <title>Data Center Benchmarking Methodology</title>
            <author fullname="L. Avramov" initials="L." surname="Avramov"/>
            <author fullname="J. Rapp" initials="J." surname="Rapp"/>
            <date month="August" year="2017"/>
            <abstract>
              <t>The purpose of this informational document is to establish test and evaluation methodology and measurement techniques for physical network equipment in the data center. RFC 8238 is a prerequisite for this document, as it contains terminology that is considered normative. Many of these terms and methods may be applicable beyond the scope of this document as the technologies originally applied in the data center are deployed elsewhere.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8239"/>
          <seriesInfo name="DOI" value="10.17487/RFC8239"/>
        </reference>
      </references>
    </references>
    <?line 968?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
xga0mBH1sMwKvJ6YOsOCKl/ncyjM6Y7/HIyqCrQb0aa6VuwtSdumJHNqs20b
WhqrzeI14u1tBvWSJzNeJnN8I0rfBFsXjpgIi2Qv7xzapJXhHc92V3pE+mXT
BH8wbgvCkfIIEp5em/N/7TzJ5/Rz45YroGX+Oz0zQmYL3yftWU1f1Ms7/yjs
ZSL0uMkWizw15lfgp1W5aEX/jYkTKhCdr9quy1vu3w07CfRMWR0evF8b89NP
Tqd7945mURCBUWsNbN2YqmBqYHWwfNFiuIOBTTF480VJGyNdqrYuNL8qSQ/K
+BjyLqd8knYmHgyuWRP5kBlC1t89xMyLKLSFUWbV4FISaeV0rswt8URPWHZO
JnlIV7uUhANA86IeQYRJ1SNfE60DL5bX5PkAurFsO81tYh+5Q0VLEZ4qM7Rn
0fbAqYBN5mVxbfsjbFeyU2aZtDmUnjKXNrDhfiR5UvDxmpH6scxkmHPWTZVc
iey+HhhIVge75Uaqq8TjAaHUlqxJphDQAVEFSaeM2AGopm2cXhCu2j8QI2Oy
mydbtnn6hwdszB9GPS7v5yIZa6ZuTnkqfEW7IeqWrWTqNoklM550s7s+u4wO
IlPvFporz5Rav6MZsb+IRpLpqSvNljYHBDy0kfQn2hWmEjpb444F30PXdJZo
uKzjkS1eLDATEO7EfpvSLHLwaFoZencctDDCg7DJMXwycFUZvHn1/Bx/JAtv
vuYdxc9b2DOpXadVKjMljSfP02KVko6SsjYXcG+dKh8ZHLqUdJLV2uJkYYvz
Uoi7pMPQohPa8rTaMJnR8syz2lFkMp+3JGdBb8GMou2vG7CrYLxvU1rUWoWc
kCItzvwtGjTBrD+qd0g1WRCBySorHaxJASONG+SQpz9OIgOfG0Q3vAH5XSAR
8CONqCnnZU70nrxNicsRcWANyy2p6OpzqTvmwYwJGzBPs5tAALixlTe0aazc
Y2HqhLurSWMgHgFSn2FladCl6BG82Ib0lDKHXJynFenOBbVzmxGLnmEBSX+h
qZB6ZjMcgzoj6mHKwdxpC1P0yGNPSaDQ0BdmRXoVZKSMt38GtetadksFKuxF
IfkBUYqNSuiQFNmm3bjzRIeO1FgimG0rejexBhNoYnhEJFRbXixql9SyaGci
PaZKV5C5ZUWaSrkArWLbShp+Zdn4g3q84JOLP2LuTlgNignHoEhQp7Q6RUEG
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
9DJfK4c1knBaRyisVbsbLbu+NomghDu6AqJZj2ktzH3Di+rqkCP/plTS8M6l
nUkbEZE9X4VLAIIKSrPbE0H+Q1mO5wggP+ebTkvVztJizJfzSiJlDR7GqEu7
bpptfTadrrJm3c4Qn5iSrCprIo566hvDES+rVVJkf3JljfTy37y7Kz7ef279
CZriC26klr4XiwG/4BfP7WM6p7PK5ebO34uodkOKe/yo7rzSvMy4pFUa17pp
+oXbRpdNG/HLiMtpyFbICr0+LqUQBbd7zcxFBg3hLvn67MUkWdbwg1r2Yo5K
r8WKP/vy8rk9nhziDz1500XUpX1pUNlO0jZr3Mv2knMVE29u+FtUhP9XC3H+
KxrjMaqtzpuQcrjtR9//+79Vhb24IV3+Os1oX87s7PuyKn7L2z8hjqaLzJfX
Shr/QIFmBdJLrKG3IczPkNNn5ArcBfeMfEEs/e+SosXKHR8eP2DSXZWOqm4Y
pPTLqFjtoLGaWNPd1mUDfVr9ts3zMawmWs6z/1ibU7Qx/eTTX3Jk3ogWpAT/
GLXZiqRpMs1ZijuUFN5bMruJm/Fh801Dxbe8N5MPO4D9sA8X+LytEEtmj++X
5QR10qTO4DJwnaM8JDgi9Tj5G0/mReGuAlIvzL3nDEFMztj4f3HQ5Ejdd45+
6TGy9lsArZON/Sq5Jc5OStfFxRmJDPxyu/5tO9+QMJ6080m6aP8/nzpM7AY6
vLtO6InH4wnEmM0bzvO2e1Bz90byX/vyFf/8+unXby5eP32Cn6++On/+3P9g
9I2rr169ef6k+6n78vGrFy+evnwiH9NTGz0yey/O/7Anis3eq8vri1cvz5/v
7XBlKTPMWVFsLZFeJegdE3HyR48v//f/PHpA5t5/Ie3j+OjolCw++eXh0WcP
6BcstvTGdpX82vAtiNstuzzkuuN5ss0aCcWw3X0riiNI/5+xMv9yZn8zm2+P
HvyjPsCEo4duzaKHvGa7T3Y+lkUceDTQjV/N6HlvpePxnv8h+t2te/DwN1/w
3erjo4df/KORmlXpnI8019rwGhno59WTV/6v/OrF+cvz3dei/YQGXZTypiLW
gHkGehb6Flo59w5D8XL+dCY1UdLF53tL2pp07512HrgWJ+b/Av0zW+D9tQAA

-->

</rfc>
