<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-scone-protocol-10" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="SCONE Protocol">Standard Communication with Network Elements (SCONE) Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-scone-protocol-10"/>
    <author fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <author fullname="Christian Huitema">
      <organization>Private Octopus Inc.</organization>
      <address>
        <email>huitema@huitema.net</email>
      </address>
    </author>
    <author fullname="奥 一穂" asciiFullname="Kazuho Oku">
      <organization>Fastly</organization>
      <address>
        <email>kazuhooku@gmail.com</email>
      </address>
    </author>
    <author fullname="Matt Joras">
      <organization>Meta</organization>
      <address>
        <email>matt.joras@gmail.com</email>
      </address>
    </author>
    <author fullname="Marcus Ihlar">
      <organization>Ericsson</organization>
      <address>
        <email>marcus.ihlar@ericsson.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="28"/>
    <area>Web and Internet Transport</area>
    <workgroup>SCONE</workgroup>
    <keyword>locomotive</keyword>
    <keyword>pastry</keyword>
    <abstract>
      <?line 62?>

<t>This document describes a protocol where on-path network elements
can communicate their perspective on the maximum sustainable throughput
for QUIC flows to endpoints. This throughput advice suggests an
upper bound on long-term average throughput, independent of and
complementary to real-time congestion control signals.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-scone.github.io/scone/draft-ietf-scone-protocol.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-scone-protocol/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        SCONE Working Group mailing list (<eref target="mailto:scone@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/scone/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/scone/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-scone/scone"/>.</t>
    </note>
  </front>
  <middle>
    <?line 71?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Many networks have known rate limits or apply these limits
by policy to constrain data rates.
This is often done without any ability to indicate rate limits to applications.
The result can be that application performance is degraded,
because throughput limits can manifest in ways that are incompatible with the
rate estimation or congestion control algorithms used at endpoints.</t>
      <t>Having the network indicate what throughput limits apply, in a way that is
accessible to endpoints, allows applications to use this information when
adapting their send rate.</t>
      <t>The Standard Communication with Network Elements (SCONE) protocol
is negotiated by QUIC endpoints.
SCONE provides a means for a network to signal its present best estimate
for maximum sustainable throughput,
or throughput advice,
associated with the flows of UDP datagrams that QUIC exchanges.</t>
      <t>Any network function that is able to update the content of UDP datagrams
qualifies as a network element that can use SCONE packets
to provide throughput advice to QUIC endpoints.</t>
      <t>Networks with rate limits can use SCONE to send throughput advice
to cooperating endpoints to limit overall network usage.
Where congestion control signals --
such as Explicit Congestion Notification (ECN) <xref target="ECN"/>, delays and loss --
operate on a timescale of a round trip time,
throughput advice operates over a much longer period.</t>
      <t>This has benefits in some networks
as endpoints can adapt network usage to better suit network conditions.
For example, radio networks and battery-powered devices
perform better with short, bursty exchanges,
rather than constant transmission at a fixed rate.</t>
      <t>For endpoints, SCONE throughput advice makes network policies visible,
which can reduce wasteful probing beyond those limits.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>QUIC endpoints can negotiate the use of SCONE by including a transport parameter
(<xref target="tp"/>) in the QUIC handshake.  Endpoints then occasionally send SCONE packets,
which are always coalesced with ordinary QUIC packets that they send.</t>
      <t>Networks that have rate limiting policies, or known throughput constraints,
can detect flows that include SCONE packets.
The network, via an on-path network element, can indicate a maximum
sustainable throughput by modifying the SCONE packet as it transits the
network element.</t>
      <t>The propagation of SCONE packets,
including the throughput advice that is updated by a network element,
is shown in <xref target="f-scone"/>.</t>
      <figure anchor="f-scone">
        <name>Propagation of SCONE signal</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="504" viewBox="0 0 504 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 40,80 L 40,176" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
              <path d="M 144,32 L 144,80" fill="none" stroke="black"/>
              <path d="M 184,80 L 184,176" fill="none" stroke="black"/>
              <path d="M 224,32 L 224,80" fill="none" stroke="black"/>
              <path d="M 280,32 L 280,80" fill="none" stroke="black"/>
              <path d="M 320,80 L 320,176" fill="none" stroke="black"/>
              <path d="M 368,32 L 368,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 144,32 L 224,32" fill="none" stroke="black"/>
              <path d="M 280,32 L 368,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 144,80 L 224,80" fill="none" stroke="black"/>
              <path d="M 280,80 L 368,80" fill="none" stroke="black"/>
              <path d="M 40,112 L 64,112" fill="none" stroke="black"/>
              <path d="M 152,112 L 176,112" fill="none" stroke="black"/>
              <path d="M 184,128 L 216,128" fill="none" stroke="black"/>
              <path d="M 280,128 L 312,128" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,128 308,122.4 308,133.6" fill="black" transform="rotate(0,312,128)"/>
              <polygon class="arrowhead" points="184,112 172,106.4 172,117.6" fill="black" transform="rotate(0,176,112)"/>
              <g class="text">
                <text x="44" y="52">QUIC</text>
                <text x="184" y="52">Network</text>
                <text x="324" y="52">QUIC</text>
                <text x="44" y="68">Sender</text>
                <text x="184" y="68">Element</text>
                <text x="324" y="68">Receiver</text>
                <text x="108" y="116">SCONE(?)</text>
                <text x="256" y="116">SCONE(advice)</text>
                <text x="96" y="132">+QUIC</text>
                <text x="248" y="132">+QUIC</text>
                <text x="372" y="148">Validate</text>
                <text x="428" y="148">QUIC</text>
                <text x="476" y="148">packet</text>
                <text x="352" y="164">and</text>
                <text x="396" y="164">record</text>
                <text x="452" y="164">advice</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+--------+       +---------+      +----------+
|  QUIC  |       | Network |      |   QUIC   |
| Sender |       | Element |      | Receiver |
+---+----+       +----+----+      +----+-----+
    |                 |                |
    +--- SCONE(?) --->|  SCONE(advice) |
    |    +QUIC        +---- +QUIC ---->|
    |                 |                |  Validate QUIC packet
    |                 |                |  and record advice
    |                 |                |
]]></artwork>
        </artset>
      </figure>
      <t>QUIC endpoints that receive SCONE packets observe the indicated
version and extract the rate signal. They record any throughput advice
only if the coalesced QUIC packet is successfully processed;
see <xref target="recv-advice"/>.</t>
      <t>Throughput advice only applies to the direction and path for which it is
received.  A connection that migrates or uses multipath
<xref target="QUIC-MP"/>
cannot assume that throughput advice from one path applies to new paths.
Advice for the client-to-server direction and the server-to-client direction of
each path are independent, and are expected to be different, for reasons including
asymmetric link capacity and path diversity.
Applications can use SCONE in either or both directions
of each path at the discretion of endpoints.</t>
    </section>
    <section anchor="applicability">
      <name>Applicability</name>
      <t>This protocol can provide throughput advice only for QUIC flows
where endpoints send SCONE packets (<xref target="packet"/>).</t>
      <t>The operation of the SCONE protocol depends on network elements
that are able to modify packets as they are forwarded.
This provides endpoints strong evidence that the network
element has the power to apply a rate limiting policy; though see <xref target="security"/> for
potential limitations on this.</t>
      <t>The throughput advice that this protocol carries is independent of congestion
signals, limited to a single path and UDP packet flow, unidirectional, and
strictly advisory.</t>
      <t>A companion document <xref target="SCONE-MAN"/>
addresses applicability, operational, and deployment considerations in more detail.</t>
      <section anchor="not-cc">
        <name>Independent of Congestion Signals</name>
        <t>SCONE throughput advice is not a substitute for congestion feedback or congestion control.
They are complementary.
Congestion signals,
such as acknowledgments or ECN markings <xref target="ECN"/><xref target="WHY-ECN"/>,
provide real-time information on loss and delay
for a network path.
A congestion controller needs to detect changed conditions
and change sending behavior more quickly than SCONE allows.</t>
        <t>In comparison, SCONE throughput advice operates over a much longer period.
SCONE provides an explicit signal
regarding potential throughput constraints on a path.
This allows applications to set throughput targets quickly,
without waiting to estimate achievable throughput from observed performance.</t>
        <t>Congestion signals can indicate a throughput limit
that is different from the signaled throughput advice.
Endpoints cannot assume that the rate indicated in throughput advice is achievable if congestion
signals indicate otherwise.  Congestion could be experienced at a different
point on the network path than the network element that signals throughput advice.
Therefore, endpoints need to respect the send rate constraints that are set by a
congestion controller.</t>
        <t>Networks can use SCONE to communicate throughput advice
for reasons other than rate limiting policies.
For example, a network element in an access network
could provide reduced throughput advice
to guide application use of network capacity
during periods of unusually high usage.</t>
        <t>Throughput advice can indicate temporary increases in available capacity
or temporarily reduced capacity.
This includes persistent overuse, equipment faults, or other transient issues.
Providing advice is applicable if increases or reductions
are expected to last for more than one monitoring period; see <xref target="time"/>.</t>
      </section>
      <section anchor="unspecified-scope">
        <name>Unspecified Scope</name>
        <t>Just because a network element can set throughput advice,
that does not prove that the flow can achieve that rate.
Nor is it a commitment to providing that throughput.
It is a hint that exceeding that rate is unlikely to be successful,
from the perspective of a specific network element.</t>
        <t>Throughput advice is signaled for a specific flow, but the underlying throughput
constraint could pertain to a collection of flows, rather than a single flow.
The scope of the underlying throughput constraint is not carried in the signal.</t>
        <t>For instance, policy limits might apply at a network subscription level,
such that multiple flows receive the same signal
and combined usage contributes to a shared capacity limit.</t>
        <t>Endpoints can therefore be more confident in the throughput signal
as an indication of the maximum achievable throughput
than as any indication of expected throughput.
In addition to endpoints respecting congestion signals (see <xref target="not-cc"/>),
networks might need to monitor and enforce policies,
even where applications attempt to follow advice (see <xref target="policing"/>),
since the combined usage of multiple flows might exceed the shared capacity limit.</t>
        <t>The advised throughput will likely only be achievable
when the application is the only entity consuming bandwidth
in the scope of the underlying constraint.
In the presence of multiple flows,
achievable throughput could be lower
than indicated by the throughput advice,
with the throughput limited by the congestion controller or application rate control algorithm.</t>
        <t>This implies that signals can most usefully be applied to a downlink flow
in access networks, close to an endpoint. In that case, capacity is less likely
to be split between multiple active flows.</t>
      </section>
      <section anchor="per-flow-signal">
        <name>Per-Flow Signal</name>
        <t>The same address tuple
(IP version, source and destination IP addresses and UDP ports)
might be used for multiple QUIC connections.
A single signal might be lost
or only reach a single application endpoint.
Network elements can apply SCONE throughput advice
to all QUIC connections that include SCONE packets
to ensure that advice is received by all application endpoints.</t>
        <t>The signaled advice applies to the flow of packets
on the same address tuple for the duration of
the current monitoring period, unless it is updated
earlier or the flow ends; see <xref target="time"/> for details on
the monitoring period.</t>
        <t>Rate limiting policies often apply on the level of a device or subscription,
but endpoints cannot assume that this is the case.
A separate signal can be sent for each flow.</t>
        <t>When network elements provide throughput advice to a QUIC flow
that encapsulates tunneled flows (such as <xref target="CONNECT-UDP"/>)
they can only provide the advice to the outermost flow.
Endpoints can apply the throughput advice to packets in flows
that are subsequently encapsulated,
but following that advice can have privacy implications;
see <xref target="active-attacks"/>.</t>
      </section>
      <section anchor="unidirectional-signal">
        <name>Unidirectional Signal</name>
        <t>Throughput advice is signaled with SCONE packets
that are transmitted as part of the flow that the advice applies to.
Carrying signals in the affected flow,
in the same way that ECN signals are conveyed,
ensures that there is no ambiguity about what flow is affected.
However, this means that the endpoint that receives throughput advice
is not the endpoint that needs to adapt its sending behavior.</t>
        <t>A receiving endpoint might need to communicate the value it receives
to the sending peer in order to ensure that the limit is respected.
This document does not define how that communication occurs
as this is specific to the application in use.</t>
      </section>
      <section anchor="advisory-signal">
        <name>Advisory Signal</name>
        <t>Throughput advice indicates what one part of the network
expects to be achievable for flows that transit that portion of the network.
It is possible that very different throughput is achievable --
either higher or lower than the advice --
as determined by congestion control.
Endpoints that receive this signal therefore need to treat the information as advisory.</t>
        <t>The fact that an endpoint requests throughput advice does not necessarily mean
that it will adhere to advice; in some cases, the endpoint cannot. For
example, a flow could initially be used to serve video chunks, with the client
selecting chunks of different bitrates based on received advice, but later switch to a
bulk download that cannot be similarly controlled. Composite flows
from multiple applications, such as tunneled flows, might only have a subset of
the involved applications that are capable of handling SCONE signals. Therefore,
when a network element detects that throughput exceeds the advertised throughput advice,
it might apply rate limiting.</t>
        <t>Network conditions and rate-limit policies can change
in ways that make previously signaled advice obsolete.
For example, routing changes can cause a flow to move to a different network path.
There are no guarantees that updated advice will be sent at such events.</t>
      </section>
      <section anchor="application-use-of-advice">
        <name>Application Use of Advice</name>
        <t>Applications that choose to follow throughput advice
do so in the way that best suits their needs.</t>
        <t>The most obvious way to follow throughput advice is to
inform the sending peer of the advice so that the peer
can adjust sending rates as necessary.
This document does not provide specific guidance on how applications
might adapt their use of network capacity in response to advice.</t>
        <t>Some applications offer options for rate control
that can offer improved performance when following advice.
For instance, real-time and streaming video applications
can often dynamically adapt their network usage.
Typical HTTP Live Streaming <xref target="HLS"/>
or Dynamic Adaptive Streaming over HTTP <xref target="DASH"/>
clients are provided with manifests that allow them to
adjust the bitrate and quality of media segments
based on available network capacity.
Low priority bulk transfer applications, such as software updates,
might also choose to follow advice.</t>
        <t>Following throughput advice could
reduce the impact of an application on other network users,
reserves capacity for high-priority activities,
and could avoid potential enforcement action by the network; see <xref target="policing"/>.</t>
      </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="BCP14"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>In SCONE:</t>
      <ul spacing="normal">
        <li>
          <t>a "network element" is any device in the network
that can produce throughput advice.</t>
        </li>
        <li>
          <t>"Throughput advice" refers the information communicated
to endpoints by network elements
in the form of a rate signal; see <xref target="rate-signal"/>.</t>
        </li>
        <li>
          <t>A "monitoring period" is the time over which rate signals
apply; see <xref target="time"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="packet">
      <name>SCONE Packet</name>
      <t>A SCONE packet is a QUIC long header packet that follows the QUIC invariants;
see <xref section="5.1" sectionFormat="of" target="INVARIANTS"/>.
It only includes the header, with no payload.</t>
      <t><xref target="fig-scone-packet"/> shows the format of the SCONE packet using the conventions
from <xref section="4" sectionFormat="of" target="INVARIANTS"/>.</t>
      <figure anchor="fig-scone-packet">
        <name>SCONE Packet Format</name>
        <sourcecode type="artwork"><![CDATA[
SCONE Packet {
  Header Form (1) = 1,
  Reserved (1),
  Rate Signal High Bits (6),
  Version (32) = 0x6f7dc0fd or 0xef7dc0fd,
  Destination Connection ID Length (8),
  Destination Connection ID (0..2040),
  Source Connection ID Length (8),
  Source Connection ID (0..2040),
}
]]></sourcecode>
      </figure>
      <!--
https://martinthomson.github.io/quic-pick/#seed=draft-ietf-scone-protocol-version;field=version;codepoint=0x6f7dc0fd
Plus https://github.com/ietf-wg-scone/scone/issues/45
-->

<t>The most significant bit (0x80) of the packet indicates that this is a QUIC long
header packet.  The next bit (0x40) is reserved and can be set according to
<xref target="QUIC-BIT"/>.</t>
      <t>The Rate Signal High Bits field consists of the low six bits (0x3f) of the
first byte. Together with the most significant bit of the Version field,
this forms the 7-bit Rate Signal. Values for the Rate Signal are described in
<xref target="rate-signal"/>.</t>
      <t>The Version field contains either 0x6f7dc0fd or 0xef7dc0fd. The only difference
between these two values is the most significant bit, which also contributes to
the Rate Signal. All other bits are identical, which facilitates detection and
modification of SCONE packets.</t>
      <t>The Destination Connection ID field <bcp14>MUST</bcp14> be set to the same value
as the Destination Connection ID field of the other packets in the same datagram;
see <xref section="12.2" sectionFormat="of" target="QUIC"/>.</t>
      <t>The Source Connection ID field is set to match the Source Connection ID field of
any packet that follows.  If the next packet in the datagram does not have a
Source Connection ID field, which is the case for packets with a short header
(<xref section="5.2" sectionFormat="of" target="INVARIANTS"/>), the Source Connection ID field <bcp14>MUST</bcp14> be empty
and the Source Connection ID Length field <bcp14>MUST</bcp14> be 0.</t>
      <t>SCONE packets <bcp14>MUST</bcp14> be coalesced with other QUIC packets
(see <xref section="12.2" sectionFormat="of" target="QUIC"/>)
and <bcp14>MUST</bcp14> be included as the first packet in a datagram.
This is primarily to simplify the process of updating throughput advice
in network elements.
This is also necessary in many cases for QUIC versions 1 and 2
because packets with a short header cannot precede any other packets.</t>
      <t>A sender <bcp14>MUST NOT</bcp14> include more than one SCONE packet in a datagram.</t>
      <section anchor="rate-signal">
        <name>Rate Signals</name>
        <t>A Rate Signal is a 7-bit unsigned integer (0-127). The high six bits are the
Rate Signal High Bits, and the least significant bit is the most significant
bit of the Version field.</t>
        <t>When sent by a QUIC endpoint, the Rate Signal is set to 127.  Receiving a value
of 127 indicates that throughput advice is unknown, either because network
elements on the path are not providing advice or they do not support SCONE. All
other values (0 through 126) represent the ceiling of rates advised by the
network element(s) on the path.</t>
        <t>Throughput advice follows a logarithmic scale defined as:</t>
        <ul spacing="normal">
          <li>
            <t>Base rate (b_min) = 100 kbit/s (100,000 bits per second)</t>
          </li>
          <li>
            <t>Bitrate at value n = b_min * 10^(n/20)</t>
          </li>
        </ul>
        <t>where n is an integer between 0 and 126 represented by the Rate Signal.</t>
        <t><xref target="ex-rates"/> lists some of the values for signals
and the corresponding bitrate for each.</t>
        <table anchor="ex-rates">
          <name>Examples of SCONE signals and corresponding rates</name>
          <thead>
            <tr>
              <th align="left">Bitrate</th>
              <th align="left">Rate Signal</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">100 kbit/s</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">112 kbit/s</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">126 kbit/s</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">141 kbit/s</td>
              <td align="left">3</td>
            </tr>
            <tr>
              <td align="left">1 Mbit/s</td>
              <td align="left">20</td>
            </tr>
            <tr>
              <td align="left">1.12 Mbit/s</td>
              <td align="left">21</td>
            </tr>
            <tr>
              <td align="left">10 Mbit/s</td>
              <td align="left">40</td>
            </tr>
            <tr>
              <td align="left">11.2 Mbit/s</td>
              <td align="left">41</td>
            </tr>
            <tr>
              <td align="left">100 Mbit/s</td>
              <td align="left">60</td>
            </tr>
            <tr>
              <td align="left">112 Mbit/s</td>
              <td align="left">61</td>
            </tr>
            <tr>
              <td align="left">1 Gbit/s</td>
              <td align="left">80</td>
            </tr>
            <tr>
              <td align="left">1.12 Gbit/s</td>
              <td align="left">81</td>
            </tr>
            <tr>
              <td align="left">10 Gbit/s</td>
              <td align="left">100</td>
            </tr>
            <tr>
              <td align="left">11.2 Gbit/s</td>
              <td align="left">101</td>
            </tr>
            <tr>
              <td align="left">100 Gbit/s</td>
              <td align="left">120</td>
            </tr>
            <tr>
              <td align="left">112 Gbit/s</td>
              <td align="left">121</td>
            </tr>
            <tr>
              <td align="left">199.5 Gbit/s</td>
              <td align="left">126</td>
            </tr>
            <tr>
              <td align="left">Unknown</td>
              <td align="left">127</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="time">
        <name>Monitoring Period</name>
        <t>The time over which throughput advice applies is defined to be
a period of 67 seconds.</t>
        <t>Protocol participants can use a different period,
depending on their role.
Senders can limit their send rate over any time period
up to 67 seconds.
Network elements can monitor and apply limits to send rates
using time period of at least 67 seconds.</t>
        <t>The choice of 67 seconds is a compromise between competing interests.
Longer periods allow applications more flexibility
in terms of how to allocate bandwidth over time.
Shorter periods allow networks to administer policies more tightly,
or react more quickly to changes in their capacity.
A shorter period also allows applications
to increase send rates sooner
when rates increase.</t>
        <t>The choice of 67 seconds, as a prime number,
also helps avoid synchronization with other periodic
effects that are commonly measured in whole seconds.
This includes segment length or key frame intervals in video applications,
but also includes timers for Network Address Translation (NAT) devices;
see <xref section="4.3" sectionFormat="of" target="RFC4787"/>.
Any repeating phenomenon at a 67-second interval is therefore
unlikely to be due to other periodic effects.</t>
      </section>
      <section anchor="recv-advice">
        <name>Endpoint Processing of SCONE Packets</name>
        <t>Processing a SCONE packet involves reading the value from the Rate Signal field.
However, throughput advice <bcp14>MUST</bcp14> be ignored
unless another packet from the same datagram is successfully processed.
A SCONE packet therefore always needs to be coalesced
with other QUIC packets;
see <xref target="off-path"/> for why this is necessary.</t>
        <t>What successful processing means depends on
the QUIC version associated with the coalesced packets,
but this minimally includes successfully authenticating the packet as valid.
SCONE packets <bcp14>MUST</bcp14> be ignored if the QUIC packets that follow
are discarded or ignored by the endpoint,
which especially includes packets that are discarded as potential duplicates.</t>
        <t>A SCONE packet is defined by the use of the long header bit (0x80 in the first
byte) and the SCONE protocol version (0x6f7dc0fd or 0xef7dc0fd in the next four
bytes). The 7-bit Rate Signal can be extracted by combining the low 6 bits
of the first byte with the most significant bit of the version field. A SCONE
packet <bcp14>MUST</bcp14> be discarded if the Destination Connection ID is not consistent with
those coalesced packets, as specified in <xref target="packet"/>. Similarly, if the Source
Connection ID is inconsistent, the SCONE packet <bcp14>MAY</bcp14> be discarded.</t>
        <t>When discarding a SCONE packet due to inconsistent Connection IDs, endpoints <bcp14>MAY</bcp14>
also discard the QUIC packets that were coalesced into the same datagram.</t>
        <t>A receiver <bcp14>MAY</bcp14> discard a datagram that contains more than one SCONE packet.
A receiver <bcp14>MUST</bcp14> discard a SCONE packet if the rate signal is unknown (127).</t>
        <t>If a connection uses multiple Differentiated Services Code Point (DSCP) markings <xref target="RFC2474"/>,
the throughput advice that is received on datagrams with one marking
might not apply to datagrams that have different markings.</t>
      </section>
      <section anchor="algorithm">
        <name>Following Throughput Advice</name>
        <t>Endpoints that receive throughput advice can advise their peer of the limit
so that the peer might limit the amount of data it sends
over any monitoring period (<xref target="time"/>).
Alternatively, the endpoint might change its own behavior
to effect a similar outcome indirectly,
which might use flow control or changes to request patterns.</t>
        <t>An endpoint that receives throughput advice
might receive multiple different values.
Where advice is reported to applications,
endpoints <bcp14>MUST</bcp14> report the lowest throughput advice
received during the previous monitoring period; see <xref target="time"/>.</t>
        <t>After a monitoring period (<xref target="time"/>)
without receiving any throughput advice,
the previous advice expires.
Endpoints can remove any constraints
that resulted from the expired throughput advice.
This does not mean that there are no limits,
either in policy or due to network conditions,
only that these limits are now unknown.
Other constraints on usage will still apply,
which necessarily includes congestion control
and might include other, application-specific constraints.</t>
        <t>Allowing advice to expire
ensures that changes in routing
do not cause stale advice to persist indefinitely
when network elements on a new path do not provide advice.</t>
        <t>This approach ensures that network elements
are able to reduce the frequency with which they send updated signals
to as low as once per monitoring period.
However, applying signals at a low frequency
risks endpoints discarding throughput advice
if no SCONE packet is available for providing updated advice (<xref target="apply"/>),
or packets carrying advice are lost.
Sending the signal multiple times
per monitoring period
increases the likelihood that the signal is received.</t>
      </section>
    </section>
    <section anchor="tp">
      <name>Negotiating SCONE</name>
      <t>A QUIC endpoint indicates that it is able to receive SCONE packets by
including the scone_supported transport parameter (0x219e).</t>
      <t>Each endpoint independently indicates willingness to receive SCONE packets.
An endpoint that does not include the scone_supported transport parameter
can send SCONE packets if their peer includes the transport parameter.</t>
      <t>The scone_supported transport parameter <bcp14>MUST</bcp14> be empty.
Receiving a non-zero-length scone_supported transport parameter <bcp14>MUST</bcp14> be treated
as a connection error of type TRANSPORT_PARAMETER_ERROR;
see <xref section="20.1" sectionFormat="of" target="QUIC"/>.</t>
      <!--
https://martinthomson.github.io/quic-pick/#seed=draft-ietf-scone-protocol-tp;field=tp;codepoint=0x219e;size=2
-->

<t>This transport parameter is valid for QUIC versions 1 <xref target="QUIC"/> and 2
<xref target="QUICv2"/> and any other version that recognizes the versions,
transport parameters, and frame types registries established in Sections <xref target="QUIC" section="22.2" sectionFormat="bare"/>, <xref target="QUIC" section="22.3" sectionFormat="bare"/>, and <xref target="QUIC" section="22.4" sectionFormat="bare"/> of <xref target="QUIC"/>.</t>
      <t>Endpoints <bcp14>MUST NOT</bcp14> remember whether the scone_supported transport parameter was present
on the previous connection when using 0-RTT;
see <xref section="7.4.1" sectionFormat="of" target="QUIC"/>.
That is, SCONE packets cannot be sent on a connection
until the transport parameter is received.</t>
      <section anchor="indication">
        <name>Indicating Support on New Flows</name>
        <t>All new flows that are initiated by a client that supports SCONE
<bcp14>MUST</bcp14> include bytes with values 0xc8 and 0x13
as the last two bytes of the payload of the UDP datagrams
that commence a new flow,
if the QUIC version in use permits the inclusion of data after packets.</t>
        <t>For example, in QUIC version 1,
these datagrams contain QUIC packets with a long header,
including a length prefix (<xref section="17.2" sectionFormat="of" target="QUIC"/>).
The UDP datagrams sent by a client can contain:
one or more QUIC version 1 Initial packets,
zero or more 0-RTT packets,
padding or other data that is discarded on receipt,
and the indication bytes (0xc8, 0x13) as the final bytes of the UDP payload.</t>
        <t>The SCONE indication bytes <bcp14>MUST</bcp14> be sent in every datagram
until the client receives any datagram from the server,
at which point the client can reasonably expect that the indication was received.</t>
        <!--
This indicator is derived from the first two bytes of:
https://martinthomson.github.io/quic-pick/#seed=draft-ietf-scone-protocol-indication;field=version;codepoint=0xc813e2b1
-->

<t>A client that uses a QUIC version that sends length-delimited packets during the handshake,
which includes QUIC versions 1 <xref target="QUIC"/> and 2 <xref target="QUICv2"/>,
can include an indicator of SCONE support
outside of the QUIC packets at the end of datagrams that start a flow.
The handshakes of these protocols ensures that
the indication can be included in every datagram the client sends
until it receives a response -- of any kind -- from the server.</t>
      </section>
      <section anchor="indicator-limits">
        <name>Limitations of Indication</name>
        <t>This indication does not mean that SCONE signals will be respected,
only that the client is able to negotiate SCONE.
A server might not support SCONE
and either endpoint might choose not to send SCONE packets.
Finally, applications might be unable to apply throughput advice
or choose to ignore it.</t>
        <t>There is a non-negligible risk of collision with other protocols
or even QUIC usage without SCONE indications.
The indicator is just two bytes,
which could be sent by chance on non-SCONE flows.
This means that the indication alone is not sufficient to indicate
that a flow is QUIC with the potential for SCONE support.</t>
        <t>Despite these limitations,
having an indication might allow network elements to change their starting posture
with respect to their enforcement of their rate limit policies.</t>
      </section>
      <section anchor="indications-for-migrated-flows">
        <name>Indications for Migrated Flows</name>
        <t>In QUIC version 1 and 2,
the two byte indicator (<xref target="indication"/>)
cannot be used on migration to a new path.</t>
        <t>Sending a SCONE packet for the first few packets on a new path
gives network elements on that path the ability
to recognize the flow as being able to receive throughput advice.
The SCONE packet also gives the network element an opportunity
to provide throughput advice for the new flow.</t>
        <t>To enable this indication,
even if an endpoint would not otherwise send SCONE packets,
endpoints can send a SCONE packet
any time they send a QUIC PATH_CHALLENGE or PATH_RESPONSE frame.
This applies to both client and server endpoints,
but only if the peer has sent the transport parameter; see <xref target="tp"/>.</t>
      </section>
      <section anchor="avoiding-ossification-when-reading-the-indicator">
        <name>Avoiding Ossification When Reading the Indicator</name>
        <t>A network element could classify all 5-tuples where the first observed UDP
datagram ends in the indicator bytes as potential SCONE.
However, this is not a strong indicator (see <xref target="indicator-limits"/>),
so network elements are encouraged to
apply further criteria to further reduce the set of flows that are identified
as potentially supporting SCONE to reduce the likelihood of false positives.
However, it <bcp14>SHOULD NOT</bcp14> apply criteria that reduce the ability of new QUIC
versions to employ SCONE. SCONE operates independently of any specific QUIC
version, so any criteria should consult the QUIC version invariants in
<xref target="INVARIANTS"/>.</t>
      </section>
    </section>
    <section anchor="network-deployment">
      <name>Network Deployment</name>
      <t>QUIC endpoints can enable the use of the SCONE protocol
by sending SCONE packets (<xref target="packet"/>).
Network elements can then update
the Rate Signal field (<xref target="apply"/>)
based on network policies or information about available capacity.</t>
      <section anchor="apply">
        <name>Applying Throughput Advice Signals</name>
        <t>A network element detects a SCONE packet by observing that a packet has a QUIC
long header and one of the SCONE protocol versions (0x6f7dc0fd or 0xef7dc0fd).</t>
        <t>A network element then conditionally replaces the most significant bit of the
Version field and the Rate Signal High Bits field with values of its choosing.</t>
        <t>A network element might receive a packet that already includes a rate signal.
The network element replaces the rate signal if it wishes to signal a lower
value for throughput advice;
otherwise, the original values are retained,
preserving the signal from the network element with the lower policy.
A network element <bcp14>MUST NOT</bcp14> replace a rate signal with a higher or unknown value.</t>
        <t>The following pseudocode indicates how a network element might detect a SCONE
packet and replace the existing rate signal (<tt>packet_signal</tt>) with a new rate
signal (<tt>target_signal</tt>) that encodes the throughput advice of this network
element.</t>
        <sourcecode type="pseudocode"><![CDATA[
is_long = (packet[0] & 0x80) == 0x80
packet_version = ntohl(packet[1:5])  # convert network to host endian
if is_long and ((packet_version & 0x7fffffff) == 0x6f7dc0fd):
  packet_signal = ((packet[0] & 0x3f) << 1) | (packet_version >> 31)
  if target_signal < packet_signal:
    packet[0] = (packet[0] & 0xc0) | (target_signal >> 1)
    packet[1] = (packet[1] & 0x7f) | ((target_signal & 1) << 7)
]]></sourcecode>
        <t>Once the throughput advice is updated,
the network element updates the UDP checksum for the datagram.
An incremental update process is described in <xref target="RFC1624"/>
and <xref section="8.1" sectionFormat="of" target="RFC8200"/> includes additional information relating to IPv6.</t>
        <section anchor="when-to-avoid-updating-throughput-advice">
          <name>When To Avoid Updating Throughput Advice</name>
          <t>A network element <bcp14>MUST NOT</bcp14> alter datagrams to add SCONE packets
or synthesize datagrams that contain SCONE packets.
The latter will not be accepted and the former,
even if they do not exceed the path MTU as a result,
can be detected by applications and could be ignored.
This document does not define a mechanism to support detection,
but one might be added in future.</t>
          <t>Network elements <bcp14>MUST</bcp14> only update the content of datagrams
on a given address tuple
a few times each monitoring period.
Network elements <bcp14>MAY</bcp14> update more often
immediately after a change in their throughput advice,
to reduce the reaction time from senders.
If too many datagrams are altered,
that could interfere with UDP protocols that are not QUIC;
see <xref target="other-protocols"/>.</t>
        </section>
        <section anchor="ensuring-throughput-advice-availability">
          <name>Ensuring Throughput Advice Availability</name>
          <t>To avoid throughput advice expiring,
a network element needs to ensure that it updates throughput advice in SCONE packets
with no more than a monitoring period (<xref target="time"/>) between each update.
Because this depends on the availability of SCONE packets
and packet loss can cause signals to be missed,
network elements might need to update more often.
Ideally, network elements update advice in SCONE packets
at least twice per monitoring period,
to match endpoint behavior (see <xref target="extra-packets"/>).</t>
          <t>At the start of a flow, network elements are encouraged to update the rate
signal of the first few SCONE packets it observes so that endpoints can obtain
throughput advice early.</t>
          <t>Senders that send a SCONE packet
or network elements that update SCONE packets
every 20–30 seconds are likely sufficient to ensure that throughput advice is not lost.
To reduce the risk of synchronization across multiple senders,
which could cause network elements to miss updates,
senders can include a small random delay.</t>
        </section>
      </section>
      <section anchor="monitoring">
        <name>Monitoring Flows</name>
        <t>Providing throughput advice is optional for any network.
A network that updates SCONE packets to provide throughput advice might,
also optionally, choose to monitor flows
to determine whether applications are following advice.</t>
        <t>This section outlines a method
that a network element could use
to determine whether a flow exceeds the value from provided throughput advice.
Network deployments that choose to monitor
are free to follow any monitoring regime that suits their needs.</t>
        <t>This documented approach to monitoring is largely illustrative;
there is no interoperability impact
from choosing an alternative approach.
However, monitoring any more strictly than the following
could mean that an application
might be incorrectly classified as not following advice.
A looser monitoring approach,
such as monitoring over a longer time window
than the monitoring period (67s)
or using a higher rate than is signaled,
has no risk of incorrect classification.</t>
        <t>When a network changes the throughput advice
it intends to provide,
applications need time to adjust their sending behavior.
As a result, any monitoring needs to allow time
for SCONE packets to be updated,
for those packets to be received by endpoints,
and for applications to adapt.</t>
        <t>A network element can then monitor affected flows
to determine whether the provided throughput advice
was followed.</t>
        <t>The simplest monitoring approach bases monitoring
on the maximum value
that the network element was configured to apply to SCONE packets
during the preceding two monitoring periods.
This allows an additional monitoring period
to compensate for additional delays
as SCONE packets are not delivered reliably.
Relative to an additional monitoring period,
other delays in propagating throughput advice
are expected to be negligible.
If the network element cannot update the throughput advice in every SCONE packet
(or can only do so periodically), a longer period might be used.</t>
        <section anchor="deployment-of-monitoring-functions">
          <name>Deployment of Monitoring Functions</name>
          <t>Any monitoring and policy enforcement could be implemented
in different network elements than the ones that signal throughput advice.
This enables more flexible allocation of responsibilities
between nodes in the same administrative domain.</t>
          <t>SCONE packets can cross administrative boundaries,
which means that network elements might observe throughput advice
on SCONE packets that have transited other networks.
A network element <bcp14>MUST NOT</bcp14> enforce throughput limits
based on throughput advice that is observed in SCONE packets
received from other entities.
Any enforcement action needs to be the result of configuration
or other authorized administrative action,
not unauthenticated network signals.
Unlike endpoints,
network elements do not have the capability to validate other QUIC packets
contained in the same datagram; see <xref target="fake-packets"/>.</t>
        </section>
        <section anchor="policing">
          <name>Flows That Exceed Throughput Advice</name>
          <t>A network could deploy policy enforcement that drops or delays packets
to ensure that applications do not exceed throughput limits set in policy.</t>
          <t>SCONE allows networks to provide advice to applications,
so that there is less need to enforce throughput limits on flows.
Strict enforcement through dropping or delaying packets
can be inefficient
and lead to poor application performance.</t>
          <t>Some applications will not support SCONE.
Other applications either will not
or cannot
follow throughput advice.</t>
          <t>Networks can monitor flows to determine if applications follow advice;
see <xref target="monitoring"/>.
A network could choose to either disable or loosen policy enforcement
for flows where SCONE is active,
but re-enable or tighten enforcement if monitoring indicates
that throughput advice is not being respected.</t>
        </section>
      </section>
    </section>
    <section anchor="endpoint-usage">
      <name>Endpoint Usage</name>
      <t>The SCONE protocol defines two versions (0x6f7dc0fd and 0xef7dc0fd)
that combined carry throughput advice that covers a range of bitrates
between 100 kbit/s and 199.5 Gbit/s.</t>
      <section anchor="extra-packets">
        <name>Providing Opportunities to Apply Throughput Advice Signals</name>
        <t>Endpoints that wish to offer network elements the option to provide throughput advice
signals can send SCONE packets at any time.  This is a decision that a sender
makes when constructing datagrams.</t>
        <t>As specified in <xref target="packet"/>, endpoints include a SCONE packet as the first
packet in a datagram, coalesced with additional packets.</t>
        <t>Upon confirmation that the peer is willing to receive SCONE packets, an endpoint
<bcp14>SHOULD</bcp14> include SCONE packets in the first few UDP datagrams that it sends. Doing
so increases the likelihood of eliciting early throughput advice from network
elements, allowing applications to apply that advice from the early stages of the
data transfer.</t>
        <t>After that, endpoints that seek to receive throughput advice on a flow <bcp14>MUST</bcp14> send
a SCONE packet at least twice each monitoring period; see <xref target="time"/>.</t>
        <t>Sending SCONE packets more often might be necessary to:</t>
        <dl>
          <dt>Avoid missing advice:</dt>
          <dd>
            <t>If SCONE packets are not sent, updated, and received
for an entire monitoring period,
an application might assume that no throughput advice is being provided.</t>
          </dd>
          <dt>Reduce latency:</dt>
          <dd>
            <t>The time between SCONE packets determines the maximum delay
between changes in throughput advice
and when that advice can be received and acted upon.</t>
          </dd>
        </dl>
        <t>A sender can track the receipt of the coalesced QUIC packet
and send another SCONE packet when loss is detected.
However, it is likely simpler to send SCONE packets more often.</t>
        <t>Sending a SCONE packet every 20–30 seconds
is likely sufficient to ensure that throughput advice is not lost,
though endpoints might send a packet every few seconds
to improve responsiveness.
This period could be determined by how quickly an application
is able to respond to a change in throughput advice.</t>
        <t>For example, a streaming application
that fetches video segments that are 5 seconds in length
might send SCONE packets on a similar cadence.
A real-time conferencing application might send more often.
In either case, the length of the monitoring period (<xref target="time"/>)
limits how fast any application can react.</t>
        <t>Though sending SCONE packets more than once each round trip time
might help reduce exposure to packet loss,
it is better to spread updates over time
rather than to send multiple SCONE packets in less frequent bursts.</t>
        <t>The main cost associated with sending SCONE packets
is the reduction in available space in datagrams
for application data.</t>
        <t>A sender <bcp14>MUST NOT</bcp14> send a SCONE packet
unless a QUIC packet needs to be sent for other reasons.
It is safe to allow throughput advice to lapse
if the connection is otherwise idle,
whereas induced activity wastes resources
by keeping connections alive unnecessarily.</t>
        <t>A network element that wishes to signal updated throughput advice waits for the
next SCONE packet in the desired direction; see <xref target="apply"/>.</t>
      </section>
      <section anchor="feedback">
        <name>Feedback To Sender About Signals</name>
        <t>Information about throughput advice is intended for the sending application.  Any
signal from network elements can be propagated to the receiving application
using an implementation-defined mechanism.</t>
        <t>This document does not define a means for indicating what was received.
The expectation is that any signal is propagated to the application
for handling, rather than being handled automatically by the transport layer.
How a receiving application communicates throughput advice to a
sending application will depend on the application in use.</t>
        <t>Different applications can choose different approaches. For example,
in an application where a receiver drives rate adaptation, it might
not be necessary to define additional signaling.</t>
        <t>A sender can use any acknowledgment mechanism provided by the QUIC version in
use to learn whether datagrams containing SCONE packets were likely received.
This might help inform whether to send additional SCONE packets in the event
that a datagram is lost.  For instance, if a UDP datagram carrying both a
SCONE packet and an ack-eliciting QUIC packet is acknowledged, the sender
knows the SCONE packet was also received.  However, rather than relying
solely on transport-layer acknowledgments, an application-layer mechanism
might better indicate what has been received and acted upon.</t>
        <t>SCONE packets could be stripped from datagrams in the network, which cannot be
reliably detected.  This could result in a sender falsely believing that no
network element applied throughput advice.
Senders will therefore proceed as though there was no advice.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>SCONE throughput advice is not authenticated.  Throughput advice
might be incorrectly set in order to encourage endpoints to behave in ways that
are not in their interests.  Endpoints can ignore limits,
though that can have consequences; see <xref target="policing"/>.
The congestion controller employed by a sender provides
real-time information about the rate at which the network path is delivering
data.</t>
      <t>Similarly, if there is a strong need to ensure that throughput advice is respected,
network elements cannot assume that the signaled advice will be respected by
endpoints.</t>
      <section anchor="off-path">
        <name>Off-Path Adversaries</name>
        <t>The modification of packets provides endpoints proof that a network element is
in a position to drop datagrams and could apply a rate limit policy.
<xref target="recv-advice"/> states that endpoints only accept signals if the datagram
contains a packet that it accepts to prevent an off-path attacker from inserting
spurious throughput advice.</t>
        <t>Some off-path attackers could be able to both
observe traffic and inject packets. Attackers with such capabilities could
observe packets sent by an endpoint, create datagrams coalescing an
arbitrary SCONE packet and the observed packet, and send these datagrams
such that they arrive at the peer endpoint before the original
packet. Spoofed packets that seek to advertise a higher limit
than might otherwise be permitted also need to bypass any
rate limiters. The attacker will thus get arbitrary SCONE packets accepted by
the peer, with the result being that the endpoint receives a false
or misleading rate limit.</t>
        <t>The recipient of throughput advice therefore cannot guarantee that
the signal was not generated by an on-path network element.</t>
        <t>The capabilities required of an off-path attacker are substantially
similar to those of on-path elements.
An off-path attacker can generate throughput advice
that will be accepted by an endpoint
if it has the ability to damage packets
in a way that could be able to affect throughput capacity of the flow.
The one exception is an off-path attacker
that is only capable of generating spoofed copies of packets
with modified throughput rates
that reach endpoints ahead of the original.</t>
      </section>
      <section anchor="fake-packets">
        <name>Fake SCONE Packets</name>
        <t>Attackers that can inject packets could compose arbitrary "SCONE-like" packets
by selecting a pair of IP addresses and ports, an arbitrary rate signal, a
valid SCONE version number, an arbitrary "destination
connection ID", and an arbitrary "source connection ID".
A coalesced "1RTT" packet will start with
a plausible first octet, and continue with the selected destination connection
ID followed by a sufficiently long series of random bytes, mimicking the
content of an encrypted packet.</t>
        <t>Endpoints will reject such packets because they do not contain valid QUIC packets,
but network elements cannot detect this.
All the network elements between the injection point and the destination
will have to process these packets.</t>
        <t>Attackers could send a high volume of these "fake" SCONE packets in
a denial of service (DOS) attempt against network elements. The attack will
force the intermediaries to process the fake packets. If network elements
are keeping state for ongoing SCONE flows, this might exhaust memory resources.
The mitigation is the same as for other distributed DOS attacks: limit
the rate of SCONE packets that a network element is willing to process;
possibly, implement logic to distinguish valid SCONE packets from
fake packets; or, use generic protection against Distributed DOS attacks.</t>
        <t>Attackers could also try to craft the fake SCONE packets in ways that trigger
a processing error at network elements. For example, they might pick connection
identifiers of arbitrary length. Network elements can mitigate these attacks
with an implementation that fully conforms to the specification of <xref target="packet"/>.</t>
      </section>
      <section anchor="other-protocols">
        <name>Damage to Other Protocols</name>
        <t>Network elements that update SCONE packet fields might do that for datagrams
exchanged in other protocols.
If the first five bytes of the datagram match
the QUIC long header byte and SCONE version,
the network element might modify the signal,
resulting in damage to those protocols.</t>
        <t>The most serious damage occurs when every datagram matches
and is subsequently modified,
because that could mean that the protocol is
effectively unable to operate end-to-end.</t>
        <t>To avoid unrecoverable damage to non-QUIC protocols,
network elements only update a limited number of datagrams
in each monitoring period; see <xref target="apply"/>.</t>
        <t>In addition, some heuristics might be used
to detect SCONE-compatible QUIC flows.
This includes identification of a QUIC handshake on the flow,
the presence of indications (<xref target="indication"/>),
or other heuristics.
If these heuristics indicate a non-QUIC flow,
the safest option is
for network elements to disable updating of datagrams.</t>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>The focus of this analysis is the extent to which observing SCONE
packets could be used to gain information about endpoints.
This might be leaking details of how applications using QUIC
operate or leaks of endpoint identity when using additional
privacy protection, such as a VPN.</t>
      <t>Any network element that can observe the content of that packet can read the
throughput advice that was applied.  Any signal is visible on the path, from the point
at which it is applied to the point at which it is consumed at an endpoint.
On path elements can also alter the SCONE signal to try trigger specific
reactions and gain further knowledge.</t>
      <t>In the general case of a client connected to a server through the
Internet, SCONE does not provide much advantage to attackers.
The identities of the clients and servers are already visible through their
IP addresses. Traffic analysis tools already provide more information than
the throughput advice set by SCONE.</t>
      <t>There are two avenues of attack that require more analysis:</t>
      <ul spacing="normal">
        <li>
          <t>that the passive observation of SCONE packets might help identify or
distinguish endpoints; and</t>
        </li>
        <li>
          <t>that active manipulation of SCONE signals might help reveal the
identity of endpoints that are otherwise hidden behind VPNs or proxies.</t>
        </li>
      </ul>
      <section anchor="passive-attacks">
        <name>Passive Attacks</name>
        <t>If only a few clients and server pairs negotiate the usage of SCONE, the
occasional observation of SCONE packets will "stick out". That observation
could be combined with observation of timing and volume of traffic to
help identify the endpoint or categorize the application that they
are using.</t>
        <t>A variation of this issue occurs if SCONE is widely implemented, but
only used in some specific circumstances. In that case, observation of
SCONE packets reveals information about the state of the endpoint.</t>
        <t>If multiple servers are accessed through the same front facing server,
Encrypted Client Hello (ECH) can prevent outside parties from
identifying which specific server a client is using. However, if only
a few of these servers use SCONE, any SCONE packets
will help identify which specific server a client is using.</t>
        <t>This issue will be mitigated if SCONE becomes widely implemented, and
if the usage of SCONE is not limited to the type of applications
that make active use of the signal.</t>
        <t>QUIC implementations are therefore encouraged to make the feature available
unconditionally.  Endpoints might send SCONE packets whenever a peer can accept
them.</t>
      </section>
      <section anchor="active-attacks">
        <name>Active Attacks</name>
        <t>Suppose a configuration in which multiple clients use a VPN or proxy
service to access the same server. The attacker sees the IP addresses
in the packets behind VPN and proxy and also between the users and the VPN,
but it does not know which VPN address corresponds to what user address.</t>
        <t>Suppose now that the attacker selects a flow on the link between the
VPN/proxy and server. The attacker applies throughput advice to SCONE packets
in that flow. The attacker chooses a bandwidth that is
lower than the "natural" bandwidth of the connection. A reduction
in the rate of flows between client and VPN/proxy might allow
the attacker to link the altered flow to the client.</t>
        <figure anchor="f-vpn">
          <name>Client identification attack on VPN or proxy</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="472" viewBox="0 0 472 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 8,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 8,192" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,64" fill="none" stroke="black"/>
                <path d="M 80,96 L 80,128" fill="none" stroke="black"/>
                <path d="M 80,160 L 80,192" fill="none" stroke="black"/>
                <path d="M 200,64 L 200,160" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,160" fill="none" stroke="black"/>
                <path d="M 312,144 L 312,176" fill="none" stroke="black"/>
                <path d="M 368,80 L 368,144" fill="none" stroke="black"/>
                <path d="M 440,80 L 440,144" fill="none" stroke="black"/>
                <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
                <path d="M 88,48 L 136,48" fill="none" stroke="black"/>
                <path d="M 8,64 L 80,64" fill="none" stroke="black"/>
                <path d="M 200,64 L 264,64" fill="none" stroke="black"/>
                <path d="M 152,80 L 192,80" fill="none" stroke="black"/>
                <path d="M 368,80 L 440,80" fill="none" stroke="black"/>
                <path d="M 8,96 L 80,96" fill="none" stroke="black"/>
                <path d="M 272,94 L 360,94" fill="none" stroke="black"/>
                <path d="M 272,98 L 360,98" fill="none" stroke="black"/>
                <path d="M 88,112 L 192,112" fill="none" stroke="black"/>
                <path d="M 272,110 L 360,110" fill="none" stroke="black"/>
                <path d="M 272,114 L 360,114" fill="none" stroke="black"/>
                <path d="M 8,128 L 80,128" fill="none" stroke="black"/>
                <path d="M 272,126 L 360,126" fill="none" stroke="black"/>
                <path d="M 272,130 L 360,130" fill="none" stroke="black"/>
                <path d="M 152,144 L 192,144" fill="none" stroke="black"/>
                <path d="M 368,144 L 440,144" fill="none" stroke="black"/>
                <path d="M 8,160 L 80,160" fill="none" stroke="black"/>
                <path d="M 200,160 L 264,160" fill="none" stroke="black"/>
                <path d="M 88,174 L 136,174" fill="none" stroke="black"/>
                <path d="M 88,178 L 136,178" fill="none" stroke="black"/>
                <path d="M 8,192 L 80,192" fill="none" stroke="black"/>
                <path d="M 136,192 L 152,224" fill="none" stroke="black"/>
                <path d="M 136,48 L 152,80" fill="none" stroke="black"/>
                <path d="M 136,176 L 152,144" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="368,128 356,122.4 356,133.6" fill="black" transform="rotate(0,360,128)"/>
                <polygon class="arrowhead" points="368,112 356,106.4 356,117.6" fill="black" transform="rotate(0,360,112)"/>
                <polygon class="arrowhead" points="368,96 356,90.4 356,101.6" fill="black" transform="rotate(0,360,96)"/>
                <polygon class="arrowhead" points="320,144 308,138.4 308,149.6" fill="black" transform="rotate(270,312,144)"/>
                <polygon class="arrowhead" points="280,128 268,122.4 268,133.6" fill="black" transform="rotate(180,272,128)"/>
                <polygon class="arrowhead" points="280,112 268,106.4 268,117.6" fill="black" transform="rotate(180,272,112)"/>
                <polygon class="arrowhead" points="280,96 268,90.4 268,101.6" fill="black" transform="rotate(180,272,96)"/>
                <polygon class="arrowhead" points="200,144 188,138.4 188,149.6" fill="black" transform="rotate(0,192,144)"/>
                <polygon class="arrowhead" points="200,112 188,106.4 188,117.6" fill="black" transform="rotate(0,192,112)"/>
                <polygon class="arrowhead" points="200,80 188,74.4 188,85.6" fill="black" transform="rotate(0,192,80)"/>
                <polygon class="arrowhead" points="144,192 132,186.4 132,197.6" fill="black" transform="rotate(243.43494882292202,136,192)"/>
                <g class="text">
                  <text x="44" y="52">Client</text>
                  <text x="232" y="100">VPN</text>
                  <text x="44" y="116">Client</text>
                  <text x="232" y="116">/</text>
                  <text x="404" y="116">Server</text>
                  <text x="232" y="132">Proxy</text>
                  <text x="44" y="180">Client</text>
                  <text x="248" y="196">Apply</text>
                  <text x="316" y="196">throughput</text>
                  <text x="388" y="196">advice</text>
                  <text x="444" y="196">signal</text>
                  <text x="152" y="244">Observe</text>
                  <text x="212" y="244">change</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+--------+
| Client |------.
+--------+       \      +-------+
                  '---->|       |            +--------+
+--------+              |  VPN  |<==========>|        |
| Client |------------->|   /   |<==========>| Server |
+--------+              | Proxy |<==========>|        |
                  .---->|       |     ^      +--------+
+--------+       /      +-------+     |
| Client |======'                     |
+--------+      ^           Apply throughput advice signal
                 \
                  \
               Observe change
]]></artwork>
          </artset>
        </figure>
        <t>An attacker that can manipulate SCONE headers might
cause an observable change in sending behavior; see <xref target="f-vpn"/>.
Though clients that use a VPN or proxy might choose to disable SCONE,
removing SCONE signals is of little help against this form of attack.
Lost or ECN-marked packets are likely to produce a congestion control response,
which are alternative methods available to an attacker
seeking to match flows.</t>
        <t>An effective, but wasteful, defense is to provide cover traffic
between the client and intermediary
to mask changes in sending rate on tunneled flows.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document registers new QUIC versions (<xref target="iana-version"/>) and a QUIC
transport parameter (<xref target="iana-tp"/>).</t>
      <section anchor="iana-version">
        <name>SCONE Versions</name>
        <t>This document registers the following entries to the "QUIC Versions" registry
maintained at <eref target="https://www.iana.org/assignments/quic">https://www.iana.org/assignments/quic</eref>, following the guidance
from <xref section="22.2" sectionFormat="of" target="QUIC"/>.</t>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>0x6f7dc0fd</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>permanent</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF (iesg@ietf.org)</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>QUIC Working Group (quic@ietf.org)</t>
          </dd>
          <dt>Notes:</dt>
          <dd>
            <t>SCONE Protocol - Even Signal Values</t>
          </dd>
        </dl>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>0xef7dc0fd</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>permanent</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF (iesg@ietf.org)</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>QUIC Working Group (quic@ietf.org)</t>
          </dd>
          <dt>Notes:</dt>
          <dd>
            <t>SCONE Protocol - Odd Signal Values</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-tp">
        <name>scone_supported Transport Parameter</name>
        <t>This document registers the scone_supported transport parameter in the "QUIC
Transport Parameters" registry maintained at
<eref target="https://www.iana.org/assignments/quic">https://www.iana.org/assignments/quic</eref>, following the guidance from <xref section="22.3" sectionFormat="of" target="QUIC"/>.</t>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>0x219e</t>
          </dd>
          <dt>Parameter Name:</dt>
          <dd>
            <t>scone_supported</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>Permanent</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF (iesg@ietf.org)</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>QUIC Working Group (quic@ietf.org)</t>
          </dd>
          <dt>Notes:</dt>
          <dd>
            <t>(none)</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="QUIC">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="INVARIANTS">
          <front>
            <title>Version-Independent Properties of QUIC</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the properties of the QUIC transport protocol that are common to all versions of the protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8999"/>
          <seriesInfo name="DOI" value="10.17487/RFC8999"/>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
        <reference anchor="QUIC-BIT">
          <front>
            <title>Greasing the QUIC Bit</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes a method for negotiating the ability to send an arbitrary value for the second-most significant bit in QUIC packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9287"/>
          <seriesInfo name="DOI" value="10.17487/RFC9287"/>
        </reference>
        <reference anchor="QUICv2">
          <front>
            <title>QUIC Version 2</title>
            <author fullname="M. Duke" initials="M." surname="Duke"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies QUIC version 2, which is identical to QUIC version 1 except for some trivial details. Its purpose is to combat various ossification vectors and exercise the version negotiation framework. It also serves as a template for the minimum changes in any future version of QUIC.</t>
              <t>Note that "version 2" is an informal name for this proposal that indicates it is the second version of QUIC to be published as a Standards Track document. The protocol specified here uses a version number other than 2 in the wire image, in order to minimize ossification risks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9369"/>
          <seriesInfo name="DOI" value="10.17487/RFC9369"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="DASH" target="https://www.iso.org/standard/83314.html">
          <front>
            <title>Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 1: Media presentation description and segment formats</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="August"/>
          </front>
          <seriesInfo name="ISO/IEC" value="23009-1:2022"/>
        </reference>
        <reference anchor="ECN">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3168"/>
          <seriesInfo name="DOI" value="10.17487/RFC3168"/>
        </reference>
        <reference anchor="QUIC-MP">
          <front>
            <title>Managing multiple paths for a QUIC connection</title>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization>Uber Technologies Inc.</organization>
            </author>
            <author fullname="Quentin De Coninck" initials="Q." surname="De Coninck">
              <organization>University of Mons (UMONS)</organization>
            </author>
            <author fullname="Olivier Bonaventure" initials="O." surname="Bonaventure">
              <organization>UCLouvain and WELRI</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="17" month="March" year="2026"/>
            <abstract>
              <t>   This document specifies a multipath extension for the QUIC protocol
   to enable the simultaneous usage of multiple paths for a single
   connection.  It introduces explicit path identifiers to create,
   delete, and manage multiple paths.  This document does not specify
   address discovery or management, nor how applications using QUIC
   schedule traffic over multiple paths.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-21"/>
        </reference>
        <reference anchor="SCONE-MAN">
          <front>
            <title>Applicability &amp; Manageability Considerations for SCONE</title>
            <author fullname="Sanjay Mishra" initials="S." surname="Mishra">
              <organization>Verizon</organization>
            </author>
            <author fullname="Zaheduzzaman Sarker" initials="Z." surname="Sarker">
              <organization>Nokia</organization>
            </author>
            <author fullname="Anoop Tomar" initials="A." surname="Tomar">
              <organization>Meta</organization>
            </author>
            <author fullname="Khurram Abbas" initials="K." surname="Abbas">
              <organization>Verizon</organization>
            </author>
            <date day="20" month="June" year="2026"/>
            <abstract>
              <t>   This document describes the Applicability and Manageability
   considerations for providing throughput guidance to application
   endpoints.  This guidance is specifically addressed within the
   context of telecommunications service provider networks utilizing the
   Standard Communication with Network Elements (SCONE) protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scone-applicability-manageability-02"/>
        </reference>
        <reference anchor="WHY-ECN">
          <front>
            <title>The Benefits of Using Explicit Congestion Notification (ECN)</title>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="M. Welzl" initials="M." surname="Welzl"/>
            <date month="March" year="2017"/>
            <abstract>
              <t>The goal of this document is to describe the potential benefits of applications using a transport that enables Explicit Congestion Notification (ECN). The document outlines the principal gains in terms of increased throughput, reduced delay, and other benefits when ECN is used over a network path that includes equipment that supports Congestion Experienced (CE) marking. It also discusses challenges for successful deployment of ECN. It does not propose new algorithms to use ECN nor does it describe the details of implementation of ECN in endpoint devices (Internet hosts), routers, or other network devices.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8087"/>
          <seriesInfo name="DOI" value="10.17487/RFC8087"/>
        </reference>
        <reference anchor="CONNECT-UDP">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9298"/>
          <seriesInfo name="DOI" value="10.17487/RFC9298"/>
        </reference>
        <reference anchor="HLS">
          <front>
            <title>HTTP Live Streaming</title>
            <author fullname="R. Pantos" initials="R." role="editor" surname="Pantos"/>
            <author fullname="W. May" initials="W." surname="May"/>
            <date month="August" year="2017"/>
            <abstract>
              <t>This document describes a protocol for transferring unbounded streams of multimedia data. It specifies the data format of the files and the actions to be taken by the server (sender) and the clients (receivers) of the streams. It describes version 7 of this protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8216"/>
          <seriesInfo name="DOI" value="10.17487/RFC8216"/>
        </reference>
        <reference anchor="RFC4787">
          <front>
            <title>Network Address Translation (NAT) Behavioral Requirements for Unicast UDP</title>
            <author fullname="F. Audet" initials="F." role="editor" surname="Audet"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document defines basic terminology for describing different types of Network Address Translation (NAT) behavior when handling Unicast UDP and also defines a set of requirements that would allow many applications, such as multimedia communications or online gaming, to work consistently. Developing NATs that meet this set of requirements will greatly increase the likelihood that these applications will function properly. 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="127"/>
          <seriesInfo name="RFC" value="4787"/>
          <seriesInfo name="DOI" value="10.17487/RFC4787"/>
        </reference>
        <reference anchor="RFC2474">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
        <reference anchor="RFC1624">
          <front>
            <title>Computation of the Internet Checksum via Incremental Update</title>
            <author fullname="A. Rijsinghani" initials="A." role="editor" surname="Rijsinghani"/>
            <date month="May" year="1994"/>
            <abstract>
              <t>This memo describes an updated technique for incremental computation of the standard Internet checksum. It updates the method described in RFC 1141. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1624"/>
          <seriesInfo name="DOI" value="10.17487/RFC1624"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
      </references>
    </references>
    <?line 1303?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t><contact fullname="Jana Iyengar"/> made significant contributions to the original TRAIN
specification that forms the basis for a large part of this document.
The following people also contributed significantly
to the development of the protocol: <contact fullname="Alan Frindell"/>,
<contact fullname="Andrew Yourtchenko"/>, <contact fullname="Gorry Fairhurst"/>, <contact fullname="Ionuț Mihalcea"/>,
<contact fullname="Kevin Smith"/>, <contact fullname="Martin Duke"/>, and <contact fullname="Zaheduzzaman Sarker"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
lAMdZZeoAeCaT8z/AX/+flsuywAA

-->

</rfc>
