<?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 sortfefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-kazuho-ccwg-rapid-start-00" category="std" consensus="true" tocInclude="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>Rapid Startup of Congestion Control</title>
    <seriesInfo name="Internet-Draft" value="draft-kazuho-ccwg-rapid-start-00"/>
    <author fullname="奥 一穂" asciiFullname="Kazuho Oku">
      <organization>Fastly</organization>
      <address>
        <email>kazuhooku@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="03"/>
    <workgroup>ccwg</workgroup>
    <keyword>internet-draft</keyword>
    <abstract>
      <?line 24?>

<t>This document defines Rapid Start, a congestion-control startup algorithm that
grows the window by 3× per RTT until queue buildup is observed, so that a sender
can reach the path BDP faster than with classic 2× slow start. When congestion
is observed, Rapid Start immediately scales the window relative to the bytes
that have passed through the bottleneck and then hands over to normal recovery
and congestion avoidance.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Congestion Control Working Group Working Group mailing list (ccwg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccwg/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/kazuho/draft-kazuho-ccwg-rapid-start"/>.</t>
    </note>
  </front>
  <middle>
    <?line 34?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>New transport connections do not know the available bandwidth or the
bandwidth–delay product (BDP) of the path, so TCP and QUIC start from an initial
window and use an exponential startup (“slow start”;
<xref section="3.1" sectionFormat="of" target="RFC5681"/>, <xref section="7.3.1" sectionFormat="of" target="RFC9002"/>) to probe for the
bottleneck. Classic slow start doubles the congestion window once per RTT. This
is safe, but on high-RTT or high-BDP paths it can still take a considerable
amount of time to reach the path BDP. It is a poor fit for short-lived
connections such as HTTP, where many connections complete while still in the
startup phase.</t>
      <t>Rapid Start keeps this IW-based probing model but increases the congestion
window by 3× per RTT while an RTT-sized observation window shows no queueing, so
that the sender reaches the path BDP in fewer RTTs than with 2× slow start. Once
queue buildup is observed in that window, Rapid Start stops using 3× growth and
reverts to 2× growth. If actual congestion is signaled (for example, by packet
loss or ECN), Rapid Start does not simply apply a fixed multiplicative decrease;
instead it scales the window based on the amount of data that has passed the
bottleneck in that round and then hands control over to normal recovery and
congestion avoidance.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="algorithm">
      <name>Algorithm</name>
      <t>This section describes the algorithm used by Rapid Start.</t>
      <section anchor="rapid-start-phase">
        <name>Rapid Start Phase</name>
        <t>When the path appears not to be building a queue, the sender uses a more
aggressive startup increase than classic slow start.</t>
        <t>Whether the path is "not building a queue" is determined by comparing the floor
RTT of the most recent round trip with the connection's minimum RTT.</t>
        <t>Let:</t>
        <ul spacing="normal">
          <li>
            <t><tt>min_rtt</tt> be the minimum RTT observed for the connection so far; and</t>
          </li>
          <li>
            <t><tt>rtt_floor</tt> be the minimum RTT sample observed during the last round trip
(i.e., within the most recent interval of length min_rtt).</t>
          </li>
        </ul>
        <t>If <tt>rtt_floor</tt> is no greater than <tt>min(min_rtt + 4 ms, min_rtt * 1.10)</tt>, the
sender increases the congestion window (cwnd) by 2 bytes for every byte that is
newly acknowledged, which results in a 3× growth of cwnd per round-trip time.</t>
        <t>If <tt>rtt_floor</tt> is greater than this threshold, the sender <bcp14>SHOULD</bcp14> increase the
congestion window as classic slow start does; i.e., by 1 byte for every byte
that is newly acknowledged, which results in a 2× growth of cwnd per round-trip
time.</t>
        <t>The additive term (+4 ms) and the multiplicative term (×1.10) are <bcp14>RECOMMENDED</bcp14>
defaults that provide tolerance for typical jitter while keeping Rapid Start out
of the range where early queueing-detection algorithms such as HyStart++
<xref target="RFC9406"/> are known to trigger. Therefore, HyStart++ can be used in
conjunction with Rapid Start.</t>
      </section>
      <section anchor="pacing-requirement">
        <name>Pacing Requirement</name>
        <t>Rapid Start uses a more aggressive growth factor than classic slow start. When
such growth is used, sending the initial congestion window as a short burst can
make the sender observe a bottleneck overflow earlier than it would under evenly
paced transmission. To ensure that Rapid Start observes the path's queueing
behavior rather than sender-side burstiness, the sender <bcp14>SHOULD</bcp14> pace the packets
over approximately one RTT when filling the connection's congestion window for
the first time.</t>
        <t>One way to accomplish that is to use Careful Resume
<xref target="CAREFUL-RESUME"/>, which requires that all
packets sent in its Unvalidated Phase be paced based on <tt>current_rtt</tt>,
regardless of previous knowledge. For connections that have no prior knowledge
of the path (i.e., no previously saved CC parameters applicable to the 4-tuple),
the sender <bcp14>SHOULD</bcp14> limit the initial jump window (<tt>jump_cwnd</tt>) to at most
<tt>2 * IW</tt>. With this bound, the required pacing rate
(<tt>pacing_rate = jump_cwnd / min_rtt</tt>) does not exceed the pacing rate that would
be used by classic slow start with pacing, so Rapid Start does not create a
larger burst than existing paced startup.</t>
      </section>
      <section anchor="congestion-handling">
        <name>Congestion Handling</name>
        <t>When Rapid Start observes the first packet loss or an explicit congestion
signal (e.g., ECN-CE), the sender enters the recovery period. The purpose of
this period is (1) to drain the queue and (2) after the more aggressive startup,
to bring the congestion window back in line with the actual BDP of the path.</t>
        <t>When entering the recovery period, the sender scales the current congestion
window by a silence factor. This momentarily stops transmission so that the
bottleneck queue can drain by a controlled amount.</t>
        <sourcecode type="pseudocode"><![CDATA[
cwnd *= silence_factor
]]></sourcecode>
        <t>During the recovery period, whenever new data is acknowledged, the sender
reduces the congestion window in proportion to the amount that has been newly
acknowledged:</t>
        <sourcecode type="pseudocode"><![CDATA[
cwnd -= ack_factor * bytes_newly_acked
]]></sourcecode>
        <t>Likewise, whenever packet loss is confirmed during the recovery period, the
sender reduces the congestion window in proportion to the amount of data lost:</t>
        <sourcecode type="pseudocode"><![CDATA[
cwnd -= loss_factor * bytes_newly_lost
]]></sourcecode>
        <t>This approach ensures that, by the end of the recovery period,  the congestion
window becomes a fraction of the full BDP (the sum of the idle BDP and the
bottleneck queue size), while keeping the silence period short enough that the
sender is likely to resume transmission before the bottleneck is fully drained,
even if the congestion window had to be reduced significantly to compensate for
the aggressive ramp-up.</t>
        <t>The sender <bcp14>SHOULD NOT</bcp14> reduce the congestion window below</t>
        <sourcecode type="pseudocode"><![CDATA[
cwnd_before_loss * (silence_factor - 1/3 * ack_factor - 2/3 * loss_factor)
]]></sourcecode>
        <t>because, if the losses are caused purely by tail drops at the bottleneck queue,
the loss ratio is unlikely to exceed the reciprocal of the most aggressive
growth factor.</t>
        <t>Separately, the sender <bcp14>MUST NOT</bcp14> reduce the congestion window below the minima
specified by <xref target="RFC5681"/> or <xref target="RFC9002"/>.</t>
        <t>The sender <bcp14>MAY</bcp14> stop reducing the congestion window once it reaches the initial
window multiplied by the window decrease factor. Doing so preserves classic slow
start's aggressiveness on connections with tiny BDPs as the sender transitions
to congestion avoidance.</t>
        <section anchor="deriving-the-reduction-factors">
          <name>Deriving the Reduction Factors</name>
          <t>The reduction factors are constants derived from the multiplicative window
decrease factor (beta), which is used in the congestion avoidance phase. The
factors are calculated as:</t>
          <sourcecode type="pseudocode"><![CDATA[
K               = 11/18
silence_factor  = beta + K * (1 - beta)
ack_factor      = K * (1 - beta)
loss_factor     = beta + K * (1 - beta)
]]></sourcecode>
          <t>Specifically, when <tt>beta</tt> is 0.5, the values are:</t>
          <sourcecode type="pseudocode"><![CDATA[
silence_factor  = 29/36
ack_factor      = 11/36
loss_factor     = 29/36
]]></sourcecode>
          <t>When <tt>beta</tt> is 0.7 (i.e., that of CUBIC <xref target="RFC9438"/>), the values are:</t>
          <sourcecode type="pseudocode"><![CDATA[
silence_factor  = 53/60
ack_factor      = 11/60
loss_factor     = 53/60
]]></sourcecode>
          <t>The formula guarantees the following properties:</t>
          <ul spacing="normal">
            <li>
              <t>When the loss ratio is 2/3, the duration of the silence period is <tt>1 - beta</tt>
relative to the full BDP, the same as during the congestion avoidance phase.</t>
            </li>
            <li>
              <t>At the end of the recovery period, the congestion window becomes as large as
the full BDP multiplied by beta, the same as at the end of the recovery period
during the congestion avoidance phase.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="limitations">
      <name>Limitations</name>
      <t>To estimate the BDP during the first recovery period, Rapid Start depends on the
transport protocol's accurately and promptly reporting the traversal of each
sent packet, even when the packet loss ratio is high. QUIC, with its explicit
packet numbers and ACK frames capable of reporting many gaps, meets this
criterion. However, with TCP, there can be issues producing a reliable estimate.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5681">
          <front>
            <title>TCP Congestion Control</title>
            <author fullname="M. Allman" initials="M." surname="Allman"/>
            <author fullname="V. Paxson" initials="V." surname="Paxson"/>
            <author fullname="E. Blanton" initials="E." surname="Blanton"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document defines TCP's four intertwined congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery. In addition, the document specifies how TCP should begin transmission after a relatively long idle period, as well as discussing various acknowledgment generation methods. This document obsoletes RFC 2581. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5681"/>
          <seriesInfo name="DOI" value="10.17487/RFC5681"/>
        </reference>
        <reference anchor="RFC9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9406">
          <front>
            <title>HyStart++: Modified Slow Start for TCP</title>
            <author fullname="P. Balasubramanian" initials="P." surname="Balasubramanian"/>
            <author fullname="Y. Huang" initials="Y." surname="Huang"/>
            <author fullname="M. Olson" initials="M." surname="Olson"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document describes HyStart++, a simple modification to the slow start phase of congestion control algorithms. Slow start can overshoot the ideal send rate in many cases, causing high packet loss and poor performance. HyStart++ uses increase in round-trip delay as a heuristic to find an exit point before possible overshoot. It also adds a mitigation to prevent jitter from causing premature slow start exit.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9406"/>
          <seriesInfo name="DOI" value="10.17487/RFC9406"/>
        </reference>
        <reference anchor="CAREFUL-RESUME">
          <front>
            <title>Convergence of Congestion Control from Retained State</title>
            <author fullname="Nicolas Kuhn" initials="N." surname="Kuhn">
              <organization>Thales Alenia Space</organization>
            </author>
            <author fullname="Emile Stephan" initials="E." surname="Stephan">
              <organization>Orange</organization>
            </author>
            <author fullname="Gorry Fairhurst" initials="G." surname="Fairhurst">
              <organization>University of Aberdeen</organization>
            </author>
            <author fullname="Raffaello Secchi" initials="R." surname="Secchi">
              <organization>University of Aberdeen</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="1" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies a cautious method for Internet transports
   that enables fast startup of congestion control for a wide range of
   connections, known as "Careful Resume".  It reuses a set of computed
   congestion control parameters that are based on previously observed
   path characteristics between the same pair of transport endpoints.
   These parameters are saved, allowing them to be later used to modify
   the congestion control behaviour of a subsequent connection.

   It describes assumptions and defines requirements for how a sender
   utilises these parameters to provide opportunities for a connection
   to more rapidly get up to speed and rapidly utilise available
   capacity.  It discusses how use of this method impacts the capacity
   at a shared network bottleneck and the safe response that is needed
   after any indication that the new rate is inappropriate.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-careful-resume-24"/>
        </reference>
        <reference anchor="RFC9438">
          <front>
            <title>CUBIC for Fast and Long-Distance Networks</title>
            <author fullname="L. Xu" initials="L." surname="Xu"/>
            <author fullname="S. Ha" initials="S." surname="Ha"/>
            <author fullname="I. Rhee" initials="I." surname="Rhee"/>
            <author fullname="V. Goel" initials="V." surname="Goel"/>
            <author fullname="L. Eggert" initials="L." role="editor" surname="Eggert"/>
            <date month="August" year="2023"/>
            <abstract>
              <t>CUBIC is a standard TCP congestion control algorithm that uses a cubic function instead of a linear congestion window increase function to improve scalability and stability over fast and long-distance networks. CUBIC has been adopted as the default TCP congestion control algorithm by the Linux, Windows, and Apple stacks.</t>
              <t>This document updates the specification of CUBIC to include algorithmic improvements based on these implementations and recent academic work. Based on the extensive deployment experience with CUBIC, this document also moves the specification to the Standards Track and obsoletes RFC 8312. This document also updates RFC 5681, to allow for CUBIC's occasionally more aggressive sending behavior.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9438"/>
          <seriesInfo name="DOI" value="10.17487/RFC9438"/>
        </reference>
      </references>
    </references>
    <?line 252?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>"SUSS: Improving TCP Performance by Speeding Up Slow-Start" (Mahdi Arghavani,
et. al.) advocates a similar approach that increases the congestion window by 4×
per round-trip, using a predictive mechanism coupled with HyStart. Compared to
SUSS, Rapid Start is simpler and allows reuse of existing mechanisms and
specifications such as pacing, HyStart++, and Careful Resume. Rapid Start also
specifies how the congestion window should be decreased upon congestion,
allowing a smooth transition to congestion avoidance.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
9yTLiI80vEPeSTv+C22oC9VlJQAA

-->

</rfc>
