<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ippm-qoo-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="QoO">Quality of Outcome</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-qoo-02"/>
    <author fullname="Bjørn Ivar Teigen Monclair">
      <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="2025" month="January" day="27"/>
    <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 112?>

<t>This document introduces the Quality of Outcome (QoO) framework, a novel
approach to network quality assessment designed to align with the needs of
application developers, users, and operators. By leveraging the Quality Attenuation
metric, QoO provides a unified method for defining and evaluating
application-specific network requirements while ensuring actionable insights
for network optimization and simple quality scores for end-users.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/domoslabs/QoOID"/>.
        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 121?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document introduces the Quality of Outcome network score. Quality of
Outcome is a network quality score designed to be easy to understand, while at
the same time being objective, adaptable to different network quality needs, and
allowing advanced analysis to identify the root cause of network problems. We
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. The framework builds on Quality Attenuation
<xref target="TR-452.1"/>, enabling network operators to achieve fault isolation and
effective network planning through 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: application developers,
end-users, and network operators/vendors. At a high level, end-users need an
understandable network metric. Application developers require 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>
      <t>A key motivation for the Quality of Outcome (QoO) framework 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 alone 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"/>, but benchmarking the
quality of network transport remains complex. 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
significant strides toward creating a network quality metric that is far closer
to application outcomes than bandwidth alone. The latter, in particular, is
successful at being relatively relatable and understandable to end-users.
However, as noted in <xref target="RPM"/>, “Our networks remain unresponsive, not from a
lack of technical solutions, but rather a lack of awareness of the problem.”
This lack of awareness means operators have little incentive to improve network
quality beyond increasing throughput. Despite the availability of open-source
solutions, vendors rarely implement them. The root cause lies in the absence of
a universally accepted network quality framework that captures how well
applications are likely to perform.</t>
      <t>A recent IAB workshop on measuring internet quality for end-users identified a
key insight: users care primarily about application performance rather than
network performance. Among the conclusions was 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"/>. Therefore, one critical requirement of a meaningful framework is
its ability to answer the question, "Will an application work properly?"</t>
      <t>Answering this question requires several considerations. First, the Internet is
inherently stochastic from the perspective of any given client, so certainty i
unattainable. Second, different applications have varying needs and adapt
differently to network conditions. A framework aiming to answer this question
must accommodate diverse application requirements. Third, end-users have
individual tolerances for degradation in network conditions and the resulting
effects on application experience. These variations must be factored into the
framework's design.</t>
      <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 outlines the three main requirements and their motivation.</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 network links and computational steps involved in making
the application function. These delays 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 place
different patterns of load on it. To determine whether applications will work
well or fail, a network quality framework must compare measurements of network
performance to a wide variety of application requirements. Flexibility in
describing application requirements and the ability to capture the delay
characteristics of the network in sufficient detail are necessary to compute
application success with satisfactory accuracy and precision.</t>
        <t>How can operators take action when measurements show that applications fail too
often? The framework must support spatial composition <xref target="RFC6049"/>, <xref target="RFC6390"/>
to answer this question. Spatial composition allows results to be divided 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 summarize, the framework and "meaningful metric" we're looking for should
have the following properties:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Capture the information necessary to compute the probability that
  applications will work well.</strong> (Useful for end-users and application
  developers.)</t>
          </li>
          <li>
            <t><strong>Compare meaningfully to different application requirements.</strong></t>
          </li>
          <li>
            <t><strong>Compose.</strong> Allow operators to 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>
          <t>Explanations:</t>
          <ul spacing="normal">
            <li>
              <t>"Captures probability" refers to whether the metric captures enough
information to compute the likelihood of an application succeeding.</t>
            </li>
            <li>
              <t>"Articulate requirements" refers to the ease with which
application-specific requirements can be expressed using the metric.</t>
            </li>
            <li>
              <t>"Composable" means whether the metric supports mathematical composition to
allow for detailed network analysis.</t>
            </li>
          </ul>
        </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 these values, the network measurements can be analyzed for
precision and confidence. In particular, the simulation study <xref target="QoOSimStudy"/>
demonstrates that lower sampling frequencies and short measurement durations can
lead to overly optimistic or imprecise QoO scores.</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"/>, which defines
the Quality Attenuation metric. In essence, QoO
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. Packet loss must be
reported as a separate value.</t>
      <t>Applications do of course have throughput requirements. We cannot rely
on monitoring latency exclusively, because low bandwidth may give poor application
outcomes without necessarily inducing a lot of latency. Therefore, the network
requirements should include a minimum throughput requirement. A fully specified
requirement can be thought of as specifying the latency and loss requirements to
be met while the end-to-end network path is loaded in a way that is at least as
demanding of the network as the application itself. This may be achieved by
running the actual application and measuring delay and loss alongside it, or by
generating artificial traffic to a level at least equivalent to the application traffic load.</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
Requirements Point of Unusability (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>The QoO metric calculates the likelihood of application success based on network performance, incorporating both latency and packet loss. There are three key scenarios:</t>
      <ul spacing="normal">
        <li>
          <t>The network meets all the requirements for perfection. Probability of success: 100%.</t>
        </li>
        <li>
          <t>The network fails one or more criteria at the Point of Unusableness (NRPoU). Probability of success: 0%.</t>
        </li>
        <li>
          <t>The network performance falls between perfection and unusable. In this case, a
QoO score is computed. The QoO score is calculated by taking the worst score
derived from latency and packet loss.</t>
        </li>
      </ul>
      <t>Latency Component
The latency-based QoO score is computed as follows:</t>
      <t>QoO_latency = min_{i}(min(max((1 - ((ML_i - NRP_i) / (NRPoU_i - NRP_i))) * 100, 0), 100))</t>
      <t>Where:</t>
      <ul spacing="normal">
        <li>
          <t>ML_i is the Measured Latency at percentile i.</t>
        </li>
        <li>
          <t>NRP_i is the Network Requirement for Perfection at percentile i.</t>
        </li>
        <li>
          <t>NRPoU_i is the Network Requirement Point of Unusableness at percentile i.</t>
        </li>
      </ul>
      <t>Packet Loss Component
Packet loss is considered as a separate, single measurement that applies across the entire traffic sample, not at each percentile. The packet loss score is calculated using a similar interpolation formula, but based on the total measured packet loss (MLoss) and the packet loss thresholds defined in the NRP and NRPoU:</t>
      <t>QoO_loss = min(max((1 - ((MLoss - NRP_Loss) / (NRPoU_Loss - NRP_Loss))) * 100, 0), 100)</t>
      <t>Where:</t>
      <ul spacing="normal">
        <li>
          <t>MLoss is the Measured Packet Loss.</t>
        </li>
        <li>
          <t>NRP_Loss is the acceptable packet loss for perfection.</t>
        </li>
        <li>
          <t>NRPoU_Loss is the packet loss threshold beyond which the application becomes unusable.</t>
        </li>
      </ul>
      <t>Final QoO Calculation
The overall QoO score is the minimum of the latency and packet loss scores:</t>
      <t>QoO = min(QoO_latency, QoO_loss)</t>
      <t>Example Requirements and Measured Data:</t>
      <ul spacing="normal">
        <li>
          <t>NRP: 4 Mbps {99%, 250 ms, 0.1% loss}, {99.9%, 350 ms, 0.1% loss}</t>
        </li>
        <li>
          <t>NRPoU: {99%, 400 ms, 1% loss}, {99.9%, 401 ms, 1% loss}</t>
        </li>
        <li>
          <t>Measured Latency: 99% = 350 ms, 99.9% = 352 ms</t>
        </li>
        <li>
          <t>Measured Packet Loss: 0.5%</t>
        </li>
        <li>
          <t>Measured Minimum Bandwidth: 32 Mbps / 28 Mbps</t>
        </li>
      </ul>
      <t>Then the QoO is defined:</t>
      <t>QoO_latency
= 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</t>
      <t>QoO_loss
= min(max((1 - (0.5% - 0.1%) / (1% - 0.1%)) * 100, 0), 100)
= 55.56</t>
      <t>Finally, the overall QoO score is:</t>
      <t>QoO = min(33.33, 55.56)
= 33.33</t>
      <t>In this example, the application has a 33% chance of meeting the quality expectations on this network, considering both latency and packet loss.</t>
      <t><strong>Implementation Note: Sensitivity to Sampling Accuracy</strong></t>
      <t>Based on the simulation results in <xref target="QoOSimStudy"/>, overly noisy or inaccurate
latency samples can artificially inflate worst-case percentiles, thereby driving
QoO scores lower than actual network conditions would warrant. Conversely,
coarse measurement intervals can miss short-lived spikes entirely, resulting in
an inflated QoO. Users of this framework should consider hardware/software
measurement jitter, clock offset, or other system-level noise sources when
collecting data, and configure sampling frequency and duration to suit their
specific needs.</t>
    </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
(Terrible/Bad/OK/Great/Excellent) 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="simulation-insights">
      <name>Insights from Simulation Results</name>
      <t>While the QoO framework itself places no strict requirement on sampling patterns
or measurement technology, a recent simulation study <xref target="QoOSimStudy"/> examined the
metric’s real-world applicability under varying conditions of:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Sampling Frequency</strong>: Slow sampling rates (e.g., &lt;1 Hz) risk missing rare,
short-lived latency spikes, resulting in overly optimistic QoO scores.</t>
        </li>
        <li>
          <t><strong>Measurement Noise</strong>: Measurement errors on the same scale as the thresholds
(NRP, NRPoU) can distort high-percentile latencies and cause artificially lower QoO.</t>
        </li>
        <li>
          <t><strong>Requirement Specification</strong>: Slightly adjusting the latency thresholds or
target percentiles can cause significant changes in QoO, especially when the
measurement distribution is near a threshold.</t>
        </li>
        <li>
          <t><strong>Measurement Duration</strong>: Shorter tests with sparse sampling tend to
underestimate worst-case behavior for heavy-tailed latency distributions,
biasing QoO in a positive direction.</t>
        </li>
      </ol>
      <t>In practice, these findings mean:</t>
      <ul spacing="normal">
        <li>
          <t>Calibrate the combination of sampling rate and total measurement period to
capture fat-tailed distributions of latency with sufficient accuracy.</t>
        </li>
        <li>
          <t>Avoid significant measurement noise where possible (e.g., by calibrating time
sources, accounting for clock drift).</t>
        </li>
        <li>
          <t>Thorougly test application requirement thresholds so that the resulting QoO
scores accurately reflect application performance.</t>
        </li>
      </ul>
      <t>These guidelines are <em>non-normative</em> but reflect empirical evidence on how QoO
performs.</t>
    </section>
    <section anchor="user-testing">
      <name>Insights from user testing</name>
      <t>A study involving 25 participants tested the Quality of Outcome (QoO) framework
in a real-world settings <xref target="QoOUserStudy"/>. Participants used specially equipped
routers in their homes for 10 days, providing both network performance data and
feedback through pre- and post-trial surveys.</t>
      <t>Participants found QoO metrics more intuitive and
actionable than traditional metrics (e.g., speed tests). QoO directly aligned
with their self-reported experiences, increasing trust and engagement.</t>
      <t>These results provide supporting evidence for QoO's value as a user-focused
tool, bridging technical metrics with real-world application performance to enhance end-user satisfaction.</t>
    </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 anchor="sec-combined-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="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>
        <reference anchor="QoOSimStudy" target="https://github.com/domoslabs/qoosim">
          <front>
            <title>Quality of Outcome Simulation Study</title>
            <author initials="B. I. T." surname="Monclair" fullname="Bjørn Ivar Teigen Monclair">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="QoOUserStudy" target="https://assets.ycodeapp.com/assets/app24919/Documents/LaiW4tJQ2kj4OOTiZbnf48MbS22rQHcZQmCriih9-published.pdf">
          <front>
            <title>Application Outcome Aware Root Cause Analysis</title>
            <author initials="B. I. T." surname="Monclair" fullname="Bjørn Ivar Teigen Monclair">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 1036?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V9W5Mb15Hm+/kVta1wiM0A0DdSYvfaIzdvUtu8id20xjPj
UBRQBaDEQhVUVegmTDPCP2IfdiJ2IvZ1/8E877zvj/Av2fwy89wK1RRle3c8
MWIDqDrXPHn9Ms94PDZd0ZX5WbL37SYti26b1PPk5aab1at8z6TTaZNf48f6
5Z6ZpV2+qJvtWVJU89qYrJ5V6YrezZp03o2LvJuPi/V6Nf6xrseHx6bdTFdF
2xZ11W3X9NjFk6unSfJZkpZtTW0WVZavc/pP1e2Nkr2L84f0T93QX6+vnu6Z
arOa5s2ZyajXMzOrqzav2k17lnTNJjc0qBOTNnlKDV01adWu66bbMzd183bR
1Js1fX3xKnmVN/O6WaXVLE+e52m7afIVujNv8y09mp2ZZJzYiZ93XV5t0o7G
i6/P1+uymPFHuyBt+LhfJ3wb9rSqq6Krm6Ja4JcXeYdRJT/Ke+aaOqEJJcmn
jDNJZOn2vqMmqMHka7yE71dpUWIRab1/jZWf1M0C36fNbEnfL7tu3Z4dHOAx
fFVc5xP72AG+OJg29U2bH6CBA7y4KLrlZkqvZvWqbst02h7Qrl88xm8l7UHb
Bc3KwxOa/cHO4ybddMu6wdrSq0ky35Sl0MnDH/7j35squbhOm+QqLxZ5lTyv
q1mZFg0/SWNLq+KPvOZnyWM0zN/nMtnpD3VT/Zr7m1Q1/9J2TZ7TwL5ON22X
ZmlZ/sf/olaPj/jXWZ1Rr4cn907146bqQL4vXr7+7vz3u+N7ni6qTZu8LIkm
P2VAK37+7zgiU4EKOtqsM2NwyNwnOjevnz56cHx6eEYn6Om33z+qH+el/frw
5ARfv7p4Qt/QF1+e3jvGFxerdcmUJGSc5R2Nu03afCZUnly9Ht+7fzw5OuPh
WFbgvh06GyGBJucgrY6aoy+StMqS1/mPm0J+bPe4UUcNia4o0UFTp9kUjz+t
m82Kf+Jjnlzm6y7HuU+OD48PZXt4Eez7rx4/PUssFd7c3Eymtq3xHG0xfWf1
TVXS1wd2IpN1NqcGHl5cnX8dTfUZ9VrNtsmTd2uiwirPbh0yXv2k8RRdutBR
zDa8Dgf88vel9PV9bvvSUdm5v5x1tc78WDf25OSUNxYsIp29zbuENj3dJr9L
m0I2487Fq8e/25ddv3/vwRGTwfCjytCmBe/oJdEEb5O8+8XhvVO8e7mmh9My
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
efarvTltTb73QTsPXIsT838BDIZKXbPEAAA=

-->

</rfc>
