<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-scone-protocol-04" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SCONE Protocol">Standard Communication with Network Elements (SCONE) Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-scone-protocol-04"/>
    <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="2025" month="December" day="14"/>
    <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 give endpoints their perspective on what the maximum achievable
throughput might be for QUIC flows.</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 69?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Many networks have known, concrete rate limits, or apply these limits
by policy to constrain data rates.
This is often done without any indication to applications.
The result can be that application performance is degraded,
as the manner in which rate limits are enforced can be incompatible with the
rate estimation or congestion control algorithms used at endpoints.</t>
      <t>Having the network indicate what its rate limiting policy is, 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 networks to signal the maximum available sustained 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 participate in SCONE
and provide throughput advice to QUIC endpoints.</t>
      <t>Networks with rate limiting policies can use SCONE to send throughput advice
to cooperating endpoints to limit overall network usage.
Where congestion control signals -- such as ECN, delays and loss --
operate on a time scale 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 coalesce a SCONE
packet with ordinary QUIC packets that they send.</t>
      <t>Network elements that have rate limiting policies can detect flows that include
SCONE packets.  The network element can indicate a maximum sustained 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 added,
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="472" viewBox="0 0 472 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 120,32 L 120,80" fill="none" stroke="black"/>
              <path d="M 160,80 L 160,176" fill="none" stroke="black"/>
              <path d="M 200,32 L 200,80" fill="none" stroke="black"/>
              <path d="M 248,32 L 248,80" fill="none" stroke="black"/>
              <path d="M 288,80 L 288,176" fill="none" stroke="black"/>
              <path d="M 336,32 L 336,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 120,32 L 200,32" fill="none" stroke="black"/>
              <path d="M 248,32 L 336,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 120,80 L 200,80" fill="none" stroke="black"/>
              <path d="M 248,80 L 336,80" fill="none" stroke="black"/>
              <path d="M 40,112 L 64,112" fill="none" stroke="black"/>
              <path d="M 128,112 L 152,112" fill="none" stroke="black"/>
              <path d="M 160,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 256,128 L 280,128" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="288,128 276,122.4 276,133.6" fill="black" transform="rotate(0,280,128)"/>
              <polygon class="arrowhead" points="160,112 148,106.4 148,117.6" fill="black" transform="rotate(0,152,112)"/>
              <g class="text">
                <text x="44" y="52">QUIC</text>
                <text x="160" y="52">Network</text>
                <text x="292" y="52">QUIC</text>
                <text x="44" y="68">Sender</text>
                <text x="160" y="68">Element</text>
                <text x="292" y="68">Receiver</text>
                <text x="96" y="116">SCONE</text>
                <text x="228" y="116">SCONE+advice</text>
                <text x="96" y="132">+QUIC</text>
                <text x="224" y="132">+QUIC</text>
                <text x="340" y="148">Validate</text>
                <text x="396" y="148">QUIC</text>
                <text x="444" y="148">packet</text>
                <text x="320" y="164">and</text>
                <text x="364" y="164">record</text>
                <text x="412" y="164">rate</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 rate
    |              |               |
]]></artwork>
        </artset>
      </figure>
      <t>QUIC endpoints that receive modified SCONE packets observe the indicated
version, process the QUIC packet, and then record the indicated rate.</t>
      <t>Throughput advice only apply to the direction and path for which they are
received.  A connection that migrates or uses multipath
<xref target="QUIC-MP"/>
cannot assume that throughput advice from one path apply 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 may choose to utilize
SCONE in either or both direction(s) of each path as they see fit.</t>
    </section>
    <section anchor="applicability">
      <name>Applicability</name>
      <t>This protocol only works for flows that use the SCONE packet (<xref target="packet"/>).</t>
      <t>The protocol requires that packets are modified as they transit a
network element, which 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 signal that this protocol carries is independent of congestion
signals, limited to a single path and UDP packet flow, unidirectional, and
strictly advisory.</t>
      <section anchor="not-cc">
        <name>Independent of Congestion Signals</name>
        <t>Throughput advice signals are not a substitute for congestion feedback or congestion control.
Congestion signals,
such as acknowledgments or ECN markings <xref target="ECN"/><xref target="WHY-ECN"/>,
provide information on loss and delay
that indicate the real-time condition of a network path.
Congestion signals might indicate a throughput limit
that is different from the signaled throughput advice.</t>
        <t>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 throughput advice to guide application use of network capacity,
in any way that is separate from any signals
that are intended to influence congestion response.</t>
        <t>In addition to rate limiting policies,
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>Modifying a packet does not prove that the throughput that is indicated would be
achievable.  A signal that is sent for a specific flow is likely enforced at a
different scope.  The extent of that scope 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,
but usage all contributes to a shared policy 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"/>).</t>
        <t>The advised throughput will likely only be achievable
when the application is the only user of throughput
within the scope that the advice applies to.
In the presence of other flows,
congestion limits are likely to determine actual throughput.</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 UDP address tuple 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 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 UDP 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>
      </section>
      <section anchor="undirectional-signal">
        <name>Undirectional 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 might need 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 signaling 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 them; in some cases, the endpoint cannot. For
example, a flow may initially be used to serve video chunks, with the client
selecting appropriate chunks based on received advice, but later switch to a
bulk download for which bitrate adaptation 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 switch to applying its policies for non-SCONE flows,
using congestion control signals.</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="following-advice">
        <name>Following Advice</name>
        <t>The SCONE throughput advice is advisory (see <xref target="advisory-signal"/>).
Applications that chose to follow it will do so in the way that best suits their needs.</t>
        <t>The most obvious way to keep within the limits set by throughput advice is to
inform the sending peer of the limit so that the peer can do whatever rate
limiting is necessary.  Alternatively, a receiver can control the release of
flow control credit (see <xref section="4" sectionFormat="of" target="QUIC"/>) to indirectly limit the sending
rate of a peer.</t>
        <t>Some applications offer options for rate control that can offer superior outcomes.
Most video applications,
especially real-time and streaming video applications,
can adapt their use of network bandwidth.
For instance, typical HTTP Live Streaming <xref target="HLS"/> or DASH <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.</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?>

</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"/>.</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>This packet includes a Destination Connection ID field that is set to the same
value as 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 is empty.</t>
      <t>SCONE packets <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>
      <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 Kbps</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 potential 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 Kbps</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">112 Kbps</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">126 Kbps</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">141 Kbps</td>
              <td align="left">3</td>
            </tr>
            <tr>
              <td align="left">1 Mbps</td>
              <td align="left">20</td>
            </tr>
            <tr>
              <td align="left">1.12 Mbps</td>
              <td align="left">21</td>
            </tr>
            <tr>
              <td align="left">10 Mbps</td>
              <td align="left">40</td>
            </tr>
            <tr>
              <td align="left">11.2 Mbps</td>
              <td align="left">41</td>
            </tr>
            <tr>
              <td align="left">100 Mbps</td>
              <td align="left">60</td>
            </tr>
            <tr>
              <td align="left">112 Mbps</td>
              <td align="left">61</td>
            </tr>
            <tr>
              <td align="left">1 Gbps</td>
              <td align="left">80</td>
            </tr>
            <tr>
              <td align="left">1.12 Gbps</td>
              <td align="left">81</td>
            </tr>
            <tr>
              <td align="left">10 Gbps</td>
              <td align="left">100</td>
            </tr>
            <tr>
              <td align="left">11.2 Gbps</td>
              <td align="left">101</td>
            </tr>
            <tr>
              <td align="left">100 Gbps</td>
              <td align="left">120</td>
            </tr>
            <tr>
              <td align="left">112 Gbps</td>
              <td align="left">121</td>
            </tr>
            <tr>
              <td align="left">199.5 Gbps</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.
Also, when circumstances change,
applications are better able recover
without exceeding limits for a significant time
if they have exceeded limits.</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 middleboxes; 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="endpoint-processing-of-scone-packets">
        <name>Endpoint Processing of SCONE Packets</name>
        <t>Processing a SCONE packet involves reading the value from the Rate Signal field.
However, this value <bcp14>MUST NOT</bcp14> be used unless another packet from the same
datagram is successfully processed.  Therefore, a SCONE packet always needs to
be coalesced with other QUIC packets.</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>MAY</bcp14> be discarded, along with any packets that come after it in the same
datagram, if the Source Connection ID is not consistent with those coalesced
packets, as specified in <xref target="packet"/>.</t>
        <t>A SCONE packet is discarded if the rate signal is unknown (127).</t>
        <t>A SCONE packet <bcp14>MUST</bcp14> be discarded if the Destination Connection ID does not match
one recognized by the receiving endpoint.</t>
        <t>If a connection uses multiple 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.
If advice is applied by applications,
applications <bcp14>MUST</bcp14> apply the lowest throughput advice
received during any monitoring period; see <xref target="time"/>.</t>
        <t>After a monitoring period (<xref target="time"/>)
without receiving throughput advice,
any previous advice expires.
Endpoints can remove any constraints
placed on throughput based on receiving 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>The relatively long duration of the monitoring period
means that this is preferable to disabling sending completely.
The cost is that loss of information about recent send rate
might result in temporarily exceeding the rates indicated by throughput advice.
In comparison,
applications retain throughput usage state
when throughput advice increases.</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 throughput advice being reset
if no SCONE packet is available for applying signals (<xref target="apply"/>),
or the rewritten packets are lost.
Sending the signal multiple times
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>
      <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 datagrams
that commence a new flow if the protocol permits it.
This indication <bcp14>MUST</bcp14> be sent in every datagram
until the client receives any datagram from the server,
at which point the client can be confident 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 includes length-delimited packets,
which includes QUIC versions 1 <xref target="QUIC"/> and 2 <xref target="QUICv2"/>,
can include an indicator of SCONE support
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="limitations-of-indication">
        <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>This indication being just two bytes
means that there is a non-negligible risk of collision with other protocols
or even QUIC usage without SCONE indications.
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>Applications <bcp14>MAY</bcp14> decide to indicate support for SCONE on new flows,
including when migrating to a new path (see <xref section="9" sectionFormat="of" target="QUIC"/>).
In QUIC version 1 and 2,
the two byte indicator cannot be used.</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
and also gives the network element an opportunity to provide that throughput advice.</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>
    <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 use SCONE and replace
the Rate Signal field (<xref target="apply"/>)
according to their policies.</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.</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])
if is_long and (packet_version & 0x7fffffff) == SCONE_VERSION_BITS:
  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 << 7)
]]></sourcecode>
        <t>Once the throughput advice signal is updated,
the network element updates the UDP checksum for the datagram.</t>
        <t>To avoid throughput advice expiring,
a network element needs to ensure that it sends updated rate signals
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 is likely sufficient to ensure that throughput advice is not lost.
To reduce the risk of synchronization across multiple senders,
which may cause network elements to miss updates,
senders can include a small random delay.</t>
        <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>
      </section>
      <section anchor="monitoring">
        <name>Monitoring Flows</name>
        <t>Sending throughput advice is optional for any network.
A network that sends 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 advice is being followed.
Network deployments that choose to monitor
are free to follow any monitoring regime that suits their needs.</t>
        <t>This monitoring algorithm is guidance only.
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 value
it intends to signal,
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 throughput advice it provided
was followed.</t>
        <t>A network element <bcp14>SHOULD</bcp14> base its monitoring
on the maximum value that was configured to apply
during the preceding two monitoring periods.
If the network element cannot update the throughput advice in every SCONE packet
(or can do so only infrequently), a longer period might be used
to account for the possibility that the updated SCONE packets are lost.
This allows applications time to receive advice
and adapt their sending rate.</t>
        <t>Any monitoring and policy enforcement could be implemented
in different network elements than the ones that signal throughput advice.
However, network elements <bcp14>MUST NOT</bcp14> enforce throughput based on throughput advice
found in SCONE packets received from other entities, because 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 stricter limits,
which can be inefficient and lead to worse application performance,
are not necessary in all cases.</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 anchor="version-interaction">
      <name>Version Interaction</name>
      <t>The SCONE protocol defines two versions (0x6f7dc0fd and 0xef7dc0fd) that cover
different ranges of bitrates. This design allows for:</t>
      <ul spacing="normal">
        <li>
          <t>Support for both very low bitrates (down to 100 Kbps) and very high bitrates
(up to 199.5 Gbps)</t>
        </li>
        <li>
          <t>Graceful handling of network elements that might only recognize one version.</t>
        </li>
      </ul>
      <section anchor="extra-packets">
        <name>Providing Opportunities to Apply Throughput Advice Signals</name>
        <t>Endpoints that wish to offer network elements the option to add throughput advice
signals can send SCONE packets at any time.  This is a decision that a sender
makes when constructing datagrams.</t>
        <t>When sending SCONE packets, endpoints <bcp14>MUST</bcp14> include the 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 incorrectly assume that no 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 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 throughout 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.
That is, the expectation is that any signal is propagated to the application
for handling, not handled automatically by the transport layer.
How a receiving application communicates the throughput advice signal 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. However, rather than relying on transport signals, an
application might be better able to indicate what has been received and
processed.</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 a throughput advice signal.
Senders will therefore proceed as though there was no advice.</t>
      </section>
      <section anchor="interactions-with-congestion-control">
        <name>Interactions with Congestion Control</name>
        <t>SCONE and congestion control both provide the application with estimates
of a path capacity. They are complementary. Congestion control algorithms
are typically designed to quickly detect and react to congestion, i.e., to
the "minimum" capacity of a path. SCONE informs the endpoint
of the maximum capacity of a path based on network rate limit policy,
network conditions, or a combination of the two.</t>
        <t>Consider for example a path in which the bottleneck router implements
some form of Early Congestion Notification <xref target="ECN"/>.
If the path capacity diminishes, queues will build up and the router
will immediately start increasing the rate at which packets are marked
as "Congestion Experienced". The receiving endpoint will notice these marks,
and inform its peer. The incoming congestion will be detected in
1 round trip time (RTT). This scenario will play out whatever the reason
for the change in capacity, whether due to increased competition between
multiple applications or, for example, to a change in capacity of a wireless
channel.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</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="extra-packets"/> 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 signals.</t>
      <t>Some off-path attackers may 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 a throughput advice signal therefore cannot guarantee that
the signal was generated by an on-path network element. However,
the capabilities required of an off-path attacker are substantially
similar to those of on path elements.</t>
      <t>The actual value of the throughput advice signal is not authenticated.  Any signal
might be incorrectly set in order to encourage endpoints to behave in ways that
are not in their interests.  Endpoints are free to ignore limits that they think
are incorrect.  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="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 implementations that fully conforms to the specification of <xref target="packet"/>.</t>
      </section>
      <section anchor="damage-to-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.
This could result in damage to those protocols.</t>
        <t>The most serious damage occurs when every datagram is modified,
because that could mean that the protocol is
effectively unable to operate end-to-end.</t>
        <t>To that end, 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.</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, we believe that 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 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) may be used to prevent outside parties to
identify 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 signals 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>
        <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>
        <t>An attacker that can manipulate SCONE headers can also simulate
congestion signals by dropping packets or by setting the ECN CE bit.
That will also likely result in changes in the congestion response by
the affected client.</t>
        <t>A VPN or proxy could defend against this style of attack by removing SCONE (and
ECN) signals. There are few reasons to provide per-flow throughput advice signals in
that situation.  Endpoints might also either disable this feature or ignore any
signals when they are aware of the use of a VPN or proxy.</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 - Low Range</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 - High Range</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>Date:</dt>
          <dd>
            <t>This date</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="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="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="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 Tessares</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="8" month="December" year="2025"/>
            <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 proposes a standard way to create, delete, and manage
   paths using identifiers.  It 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-18"/>
        </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="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="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>
      </references>
    </references>
    <?line 1149?>

<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="Gorry Fairhurst"/>, <contact fullname="Kevin Smith"/>, and <contact fullname="Zaheduzzaman Sarker"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
