<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-lai-ccwg-lsncc-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- 
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
-->

  <front>
    <title abbrev="cca_analysis">Analysis for the Adverse Effects of LEO Mobility on Internet Congestion Control</title>
    <seriesInfo name="Internet-Draft" value="draft-lai-ccwg-lsncc-00"/>
    <author fullname="Zeqi Lai">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>30 ShuangQing Ave</street>
         <city>Beijing</city>
          <region/>
          <code>100089</code>
          <country>China</country>
        </postal>
        <email>zeqilai@tsinghua.edu.cn</email>
     </address>
    </author>
    <author fullname="Zonglun Li">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>30 ShuangQing Ave</street>
         <city>Beijing</city>
          <region/>
          <code>100089</code>
          <country>China</country>
        </postal>
        <email>lzl24@mails.tsinghua.edu.cn</email>
     </address>
    </author>
    <author fullname="Qian Wu">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>30 ShuangQing Ave</street>
         <city>Beijing</city>
          <region/>
          <code>100089</code>
          <country>China</country>
        </postal>
        <email>wuqian@cernet.edu.cn</email>
     </address>
    </author>
    <author fullname="Hewu Li">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <street>30 ShuangQing Ave</street>
         <city>Beijing</city>
          <region/>
          <code>100089</code>
          <country>China</country>
        </postal>
        <email>lihewu@cernet.edu.cn</email>
     </address>
    </author>
    <author fullname="Qi Zhang">
      <organization>Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <region/>
          <country>China</country>
        </postal>
        <email>zhangqi@zgclab.edu.cn</email>
     </address>
    </author>
  
    <date year="2024"/>
    <area>General</area>
    <workgroup>Congestion Control Working Group</workgroup>

    <keyword>LEO satellite network, congestion control</keyword>

    <abstract>
      <t>This document provides a performance analysis on various congestion control algorithms(CCAs) in an operational low-earth orbit (LEO) satellite network (LSN). Internet CCAs are expected to perform well in any Internet path, including those paths with LEO satellite links. Our analysis results reveal that existing CCAs struggle to deal with the drastic network variations caused by the mobility of LEO satellites, resulting in poor link utilization or high latency. Further, this document discusses the key challenges of achieving high throughput and low latency for end-to-end connections over an LSN, and provides useful information when the LSN-specific congestion control principles for the Internet is standardized in the future.</t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
      <t>Low-earth-orbit (LEO) satellite networks (LSNs) are evolving rapidly in recent years, thanks to the fast deployment of mega-constellations such as SpaceX's Starlink, Eutelsat OneWeb and Amazon Kuiper Project. Emerging LSNs aim to provide broadband coverage and low-latency services globally, and are carrying an increasing amount of Internet traffic. For example, Starlink, the largest operational LSN today, has attracted more than 4 million customers worldwide on 7 continents as of September 2024.</t>

      <t>One key property differentiating LSNs with other existing terrestrial networks is that: a portion of the network infrastructure are moving at a high velocity related to the earth surface. Hence, for a network path through an LSN, a subset of its intermediate links continuously change over time, imposing substantial challenges on existing Internet congestion control algorithms (CCAs). </t>
        
      <t>On the one hand, the unique LEO mobility not only results in rapidly varying satellite link capacity, but also involves frequent non-congestion RTT variations (e.g. caused by path fluctuations) and bursty packet losses (e.g. due to ground-satellite handovers). On the other hand, existing end-to-end CCAs leverage the network performance changes observed on the sender to infer congestion, but they are unable to discriminate whether a network variation is exactly caused by a congestion event (e.g. queuing at the bottleneck link) or not. As will be shown in this document, the frequent non-congestion network variations caused by LEO mobility often mislead existing CCAs such as TCP Cubic<xref target="RFC9438"></xref>, Vegas<xref target="vegas_cc"></xref>, Copa<xref target="copa_cc"></xref> etc, and further result in self-restrained CCA performance.</t>
        
      <t>This document advocates that CCAs in LSNs require more effective indicators that can help the sender discriminate non-congestion performance changes and estimate network conditions more accurately. On our further investigation, we find that the unique LEO mobility is managed and scheduled by a special feature called "LEO reconfiguration" in LSNs, which is closely related to the non-congestion network variations, and thus is a potential indicator for discriminating non-congestion network variations (e.g. link capacity and propagation RTT changes due to LEO mobility). </t>
        
      <t>The aim of the document is to describe the new challenges involved by the new characteristics of the emerging LSNs, and provide suggestions based on our insights obtained from an operational LSN. We hope this document will be an useful source when new LSN-specific congestion control principles for the Internet is needed to be standardized in the future.</t>
      
      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" 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>
      </section>
    </section>
    
    <section>
      <name>Characteristics of LEO Satellite Networks</name>
      <figure anchor="Emerging_LSN_architecture">
        <name>Emerging LSN architecture.</name>
          <artwork align="center" name="Emerging_LSN_architecture" type="ascii-art" alt=""><![CDATA[
                        Outgoing Satellite  Incoming Satellite
 high-speed movement        +-----------+   +-----------+   +-----------+           
     related to    <--------| Satellite |---| Satellite |---| Satellite |---     
the earth surface(~7.5km/s) +-----+-----+   +------+----+   +-----+-----+                  
                                      |  \  /  |   
             frequent space-ground    |   \/   |                    
             handovers due to LEO     |   /\   |                         
              satellite mobility      |  /  \  |    
                                      | /    \ |        
 +----+----+    +---+---+    +----+----+    +---+---+    +--------+--------+ 
 |  User   |--->|  Home |--->|Satellite|    |Ground |--->|Point-of Presence|
 | Terminal|<---| Router|<---| Terminal|    |Station|<---|   and Internet  |        
 +---------+    +---+---+    +----+----+    +---+---+    +--------+--------+ 
             ]]></artwork>
          </figure>

      <section>
        <name>LSN Architecture</name>
        <t><xref target="Emerging_LSN_architecture"></xref> plots a typical architecture of emerging LSNs. Overall, the entire LSN can be divided into a space segment which consists of a considerable number of LEO satellites, together with a terrestrial segment that contains many geo-distributed ground stations around the world. On the user side, to access the LSN, a user needs to purchase and deploy a dedicated satellite terminal (i.e. a dish), together with a home router which connects to the user's terminal (e.g. a smartphone or a laptop) via a WiFi or Ethernet interface. On the ground station side, the LSN exchanges traffic with the terrestrial Internet through a set of geographically distributed gateways behind ground stations. When the LSN provides Internet services for terrestrial users, user traffic is forwarded to LEO satellites via the satellite terminal, then to a ground station, and finally to the gateway and terrestrial Internet (and vice versa). If the user is close to an available ground station, satellites can use the well-known "bent-pipe" routing mechanism to transparently forward user traffic to the corresponding ground station. Otherwise, for users in remote areas far away from available ground stations, the LSN can exploit inter-satellite links (ISLs) to route user traffic to the ground station.</t>
      </section>

      <section>
        <name>Low Orbit Altitude, Low Latency and High Throughput</name>
        <t>Low latency in LSNs results from their proximity to earth, minimizing the ground-to-satellite distance data packets must travel. This allows for quicker response time, essential for applications like gaming and video conferencing. High throughput is achieved through the use of high-speed Ka-/Ku-band spectrum, and the use of multiple satellites working together in a mesh network, enabling large amounts of data to be transmitted simultaneously. This combination of low latency and high throughput positions LEO networks as a competitive alternative to traditional broadband options, especially in remote areas. </t>
      </section>

      <section>
        <name>LEO Mobility</name>
        <t>Unlike traditional geostationary (GEO) satellite networks, one key property of emerging LSNs is that: a portion of the network infrastructure, i.e. LEO satellite routers, are moving at a high velocity related to the earth. Such unique LEO mobility can result in a series of network instability issues such as handovers (i.e. ground nodes have to frequently disconnect with the outgoing satellite, and connect to a new incoming satellite), channel quality variations and link rate adaptation, and path fluctuations which can further affect the performance of end-to-end connections.</t>
      </section>
    </section>
    
        
    <section>
      <name>Impacts of LEO Mobility on Internet Congestion Control</name>

      <section>
        <name>Principles of Today's Internet Congestion Control</name>
        <t>Internet congestion control is vital for maintaining network performance and stability. Typically, congestion control uses feedback loops to manage data flow. The sender adjusts its sending rate based on time-varying network conditions, ensuring efficient use of available bandwidth without overwhelming the network. In particular, congestion control algorithms (CCAs) detect network congestion through monitoring the performance changes observed on the sender, based on certain indicators such as packet loss, increased latency. Based on the different principles used for congestion detection and rate adaptation, existing CCAs generally can be classified by the following categories.</t>
      
        <section>
          <name>Loss-based CCAs</name>
          <t>Loss-based CCAs, such as TCP Reno <xref target="RFC5681"></xref> and Cubic <xref target="RFC9438"></xref>, primarily detect packet loss as a signal of network congestion. Loss-based CCAs identify congestion through packet loss, often using acknowledgments (ACKs) from the receiver. If packets are not acknowledged within a certain timeframe, the sender infers congestion. Upon detecting packet loss, loss-based CCAs reduce the congestion window size, which limits the amount of unacknowledged data in transit, thus decreasing the sending rate.</t>
        </section>

        <section>
          <name>Delay-based CCAs</name>
          <t>Delay-based CCAs such as Vegas <xref target="vegas_cc"></xref> and Copa <xref target="copa_cc"></xref> focus on monitoring changes in network delay as a signal of congestion, rather than relying solely on packet loss. In delay-based CCAs, the sender continuously measures round-trip time (RTT) to detect increases in latency, which can indicate congestion before packet loss occurs. When increased delay is detected, the sender adjusts its transmission rate, often by decreasing the congestion window, to alleviate potential congestion. Delay-based CCAs aim to react to congestion signals proactively, adjusting data rates to prevent packet loss rather than responding to it after the fact. </t>
        </section>

        <section>
          <name>Model-based CCAs</name>
          <t>Model-based CCAs employ mathematical and statistical models to predict network behavior and optimize data transmission. They often begin with modeling the network's dynamics, including bandwidth, delay, and packet loss, to understand how traffic interacts with these factors. Continuous data collection on network performance helps update the model, allowing for dynamic adjustments based on current conditions. Instead of reacting solely to congestion signals like packet loss, model-based control predicts congestion based on trends in delay and other metrics, allowing for proactive rate adjustments. For example, Google's BBR<xref target="cardwell2016bbr"></xref> models the bottleneck bandwidth and round-trip time to estimate the optimal sending rate. At runtime, BBR continuously monitors the conditions of the network path, adjusting its model based on real-time measurements of bandwidth and delay. By maintaining the sending rate close to the estimated bandwidth without causing excessive queuing delays, BBR optimizes throughput while minimizing latency.</t>
        </section>

        <section>
          <name>Learning-based CCAs</name>
          <t>Recent learning-based CCAs such as PCC-VIVACE<xref target="dong2018pcc"></xref> leverages machine learning techniques to optimize data transmission by predicting and adapting to network conditions. Instead of relying solely on predefined algorithms, learning-based CCAs analyze historical network data to identify patterns and make informed decisions. Relevant features include packet loss, throughput, and round-trip time (RTT) extracted from network measurements to serve as input for machine learning models. The trained model can adjust the sending rate in real time based on current network conditions, continuously learning and refining its predictions as it receives new data.</t>
        </section>
      </section>

      <section>
        <name>LEO Mobility Breaks the Fundamental Assumptions of Congestion Control</name>
        <t>However, the unique characteristics of LEO networks introduced in Section 2 will bring significant challenges to existing CCAs. Although the low orbital altitude and high-speed satellite links bring low latency and high bandwidth to LSN, the LEO mobility also involves very frequent network variations because LEO satellites are constantly moving, causing endless ground-to-satellite handovers and link rate adaptations. For example, through a measurement based on Starlink, the largest operational LSN currently, we find that from an average perspective Starlink performs quite well: the average uplink/downlink capacity can reach about 30/300Mbps while the average RTT is about 27ms in a vantage point in Europe. However, due to the LEO mobility, end-to-end connections through Starlink suffer from drastic network variations over time. The maximum network capacity can drastically fluctuate between 10Mbps and 65Mbps in three minutes. RTT drastically changes over time. Even at low data rates below network capacity, end-to-end flows can experience unpredictable bursts of packet loss during data transmission. These specific features of LSNs could break the fundamental assumptions of existing CCAs: packet loss may not be caused by congestion, but by LEO satellite handovers. The delay increase observed from the sender may be due to changes of the end-to-end path, rather than queueing on the bottleneck link. All delays, bandwidths, and packet loss rates change unpredictably over time, and it is difficult to learn deterministic principles from their changes.</t>
      </section>
    </section>

    <section>
      <name>A Case Study: Congestion Control Performance in Starlink</name>
      <t>To quantitatively understand the performance of different CCAs in real-world operational LSNs, we conduct a performance study of several kinds of representative CCAs based on an operational LSN. Specifically, we evaluate: (i) loss-based CCAs, Reno <xref target="RFC5681"></xref> and Cubic<xref target="RFC9438"></xref> which use packet losses as the signal for adjusting data sending rate; (ii) delay-based CCAs, Vegas<xref target="vegas_cc"></xref> and Copa<xref target="copa_cc"></xref>, which exploit measured delay to estimate network congestion and adjust sending rate; (iii) model-based CCAs, Google BBRv1/v3<xref target="I-D.ietf-ccwg-bbr"></xref>, which frequently measure the bottleneck bandwidth and minimal RTT to model the bandwidth-delay product (BDP) of the path, and accordingly regulates sending rate; and (iv) learning-based CCA, PCC-VIVACE<xref target="dong2018pcc"></xref>, which can automatically adapt itself to various conditions based on a utility function without manually tuning. We describe our case-by-case observations and corresponding analysis as follows.</t>
      
      <table>
        <thead>
          <tr>
            <th>Algorithm</th>
            <th>Average Throughput (Mbps)</th>
            <th>Average RTT (ms)</th>
            <th>90th RTT (ms)</th>
            <th>95th RTT (ms)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Reno</td>
            <td>10.89</td>
            <td>26.81</td>
            <td>30.08</td>
            <td>31.89</td>
          </tr>
          <tr>
            <td>Cubic</td>
            <td>10.56</td>
            <td>27.27</td>
            <td>30.90</td>
            <td>32.77</td>
          </tr>
          <tr>
            <td>Vegas</td>
            <td>4.53</td>
            <td>28.32</td>
            <td>31.77</td>
            <td>33.31</td>
          </tr>
          <tr>
            <td>Copa</td>
            <td>6.85</td>
            <td>39.87</td>
            <td>43.46</td>
            <td>44.71</td>
          </tr>
          <tr>
            <td>BBRv1</td>
            <td>22.79</td>
            <td>47.90</td>
            <td>73.02</td>
            <td>89.79</td>
          </tr>
          <tr>
            <td>BBRv3</td>
            <td>16.52</td>
            <td>26.13</td>
            <td>35.35</td>
            <td>48.29</td>
          </tr>
          <tr>
            <td>PCC-Vivace</td>
            <td>17.15</td>
            <td>97.08</td>
            <td>171.33</td>
            <td>207.26</td>
          </tr>
        </tbody>
      </table>      

      <t>Reno and Cubic. End-to-end connections experience non-congestion packet losses over the unstable LEO satellite links. It is a well-known limitation that Cubic and Reno can not discriminate such non-congestion packet losses. As a result, TCP Reno and Cubic mistakenly think network is congested and shrink their congestion window conservatively when non-congestion packet losses occur, causing self-limited throughput.</t>
      <t>Vegas and Copa. Delay-based CCAs rely on a basic assumption that the increase in RTT observed by the sender may reflect queuing at the bottleneck link. However, delay-based CCAs can be seriously misled in LSNs because it is difficult for them to distinguish whether the observed RTT changes are caused by congestive queuing or by path fluctuations due to LEO mobility. Specifically, Vegas detects congestion by increasing RTTs, and we observe that Vegas is frequently misled by these non-congestion RTT increases in LSNs, resulting in severe throughput degradation. Similarly, Copa is a recent delay-based CCA that converges on a target sending rate 1/(sigma * Dq) where Dq is the measured queuing delay and sigma is a constant. Copa adjusts the congestion window in the direction of this target rate, and estimates the queuing delay as Dq = RTTstanding - RTTmin, where RTTstanding is the smallest RTT observed over a recent short time-window and RTTmin is the smallest RTT observed over a long period of time (e.g. 10 seconds). We find that as the environmental RTT fluctuates frequently and drastically, Copa usually overestimates Dq and then limits its sending rate. When the environmental RTT suddenly increases to a new level, although Copa's RTTstanding estimation can be updated in time, it still takes a long time for Copa's RTTmin estimation to converge to the correct value. Therefore, as the environmental RTT changes drastically, Copa frequently underestimates RTTmin, and then overestimates Dq which is calculated by RTTstanding - RTTmin. As a result, Copa mistakenly infers that there is congestion in the network and limits its sending rate, and achieves low link utilization and self-limited throughput.</t>
      <t>BBR frequently probes the network for its propagation RTT (pRTT) and bottleneck bandwidth (bBW), and then adjusts sending rate to match the bandwidth-delay product (BDP). We identify several issues in different versions of BBR.</t> 

      <t>BBRv1 experiences bBW overestimation and pRTT underestimation under the drastic network variations caused by LEO mobility. First, BBRv1 estimates bBW by the maximum delivery rate (deliveryRate) over a 10-RTT window. When the link capacity fluctuates drastically, such a maximum filter always over-estimates bBW. Note that BBRv1's sending rate is set by the estimated bBW multiplied by a factor called pacing_gain and the data in flight is capped by cwnd=2 * BDP. When the link capacity fluctuates, because bBW is overestimated, BBRv1 overshoots the link capacity until the data in flight reaches 2 * BDP, resulting in high queuing delay especially when the link capacity significantly slumps. Second, BBRv1 estimates pRTT by the minimum observed RTT over a 10-second window. Thus, when the RTT increases due to LEO mobility rather than congestion, BBRv1 under-estimates pRTT. However, because bBW is overestimated most of the time, while pRTT is underestimated much less often, in our experiments we observe that in most cases the BDP is still overestimated.</t>
        
      <t>BBRv3 has made several modifications upon BBRv1. One important aspect is that BBRv3 estimates bBW as the minimum value of two new parameters bw_high and bw_low. Specifically, bw_high is calculated by the maximum delivery rate over a short window, while  bw_low is set to an extremely high value when there is no packet loss, but is set to max(latest_deliveryRate, 0.7*bw_high) if packet loss >0. In other words, BBRv3 suppresses the sending rate in case of packet loss. The original intention of this change is that when packet loss occurs, it may indicate congestion, so BBRv3 should reduce the sending rate. However, in our experiments, we observe that due to random packet losses in LEO satellite links, BBRv3 avoids overshooting the link but is less resilient to non-congestion loss as compared to BBRv1. As a result, BBRv3 can only achieve about 60-70% link utilization under lossy Starlink condition.</t>
      <t>PCC-VIVACE. Recent CCAs like VIVACE try to learn from the observed network conditions based on a utility function, and accordingly estimate a proper sending rate. Specifically, VIVACE's utility function is calculated based on the sending rate contribution, latency penalty (calculated by RTT gradient) and loss penalty in each measurement interval. We observe two performance issues in VIVACE. First, non-congestion RTT increase caused by LEO mobility can amplify latency penalty and result in inaccurate utility estimation. Second, VIVACE incorporates a dynamic change boundary omega to limit the rate change in a certain range. The original intention of omega is to avoid drastic rate change that overshoots the link capacity, but such a boundary also leads to slow rate convergence in Starlink as the link capacity changes rapidly. As a result, VIVACE: (i) under-utilizes the network when the link capacity drastically increases or when the propagation RTT suddenly increases due to LEO mobility; and (ii)  overshoots the network when the link capacity drastically decreases, causing high queuing delay.</t>
      <t>The fundamental challenge. Based on our analysis we find that it is quite challenging for existing CCAs to detect network congestion promptly and accurately in an LSN with drastic, multi-dimensional network variations induced by LEO mobility. Essentially, every CCA relies on certain network models and assumptions, based on which the CCA infers network conditions and whether congestion occurs. However, these fundamental assumptions they used become inaccurate in emerging LSNs. Link capacity, RTT and loss rate can change frequently and drastically in LSNs, mixing both congestion and non-congestion variations, and existing CCAs can easily be misled by these non-congestion signals. Considering the fundamental challenge is that it is hard for end-to-end CCAs to discriminate whether the observed performance changes are caused by congestion or not, we argue that CCAs in LSNs require some effective indicators which can implicitly help end host discriminate non-congestion performance changes.</t>
    </section>

    <section>
      <name>Potential Mitigations</name>
      <section>
        <name>Explicit notifications for network variance discrimination</name>
        <t>Through our in-depth analysis, we found that the main reason for the performance degradation of existing CCAs in the LSN environment is that these CCAs running on the end system cannot distinguish whether an observed network performance change is caused by network congestion or non-network congestion factors. A possible way to improve the performance of CCAs is to explicitly inform the sender of the packet loss caused by satellite handovers or the delay increase caused by path changes directly from the network side through explicit notifications. This can avoid CCAs on the sender side from misjudging the changes in network conditions.</t>
      </section>    
      <section>
        <name>Cross-layer optimization</name>
        <t>In conventional networks like WiFi and cellular networks in which the link capacity may rapidly change over time, one classic optimization method is to directly use the underlying channel information to estimate bandwidth changes more accurately and timely, thereby improving the performance of end-to-end congestion control. For example, ExLL <xref target="park2018exll"></xref> is a congestion control for LTE networks and it exploits cellular bandwidth inference to achieve low latency. CQIC <xref target="lu2015cqic"></xref>, CLAW <xref target="xie2017accelerating"></xref> and piStream <xref target="xie2015pistream"></xref> use PHY-layer information to accurately and timely estimate traditional cellular and WiFi networks. PropRate <xref target="leong2017tcp"></xref> adjusts sending rate by directly monitoring the bottleneck buffer size in cellular networks. PBE-CC <xref target="xie2020pbe"></xref> leverages PHY-layer measurements to precisely react to capacity variations. The similar cross-layer optimizations might also be available if the satellite network operators expose sufficient programmable interfaces for system and application developers.</t>
      </section>    
      <section>
        <name>Multipath enhancement</name>
        <t>Multi-path transmission can also significantly enhance CCAs in LSNs by improving reliability, throughput, and resilience. By utilizing multiple LSN paths or an LSN path and a cellular path simultaneously, networks can aggregate bandwidth, leading to higher overall data rates and improved performance for users. If one path encounters issues (packet loss), data can still be transmitted via alternative paths, enhancing overall network reliability. </t>
      </section>    
    </section>

    <section>
      <name>Conclusion</name>
      <t>In this document, we provide a performance analysis on various CCAs in an operational LEO satellite network (LSN). Our analysis results reveal that existing CCAs struggle to deal with the drastic network variations caused by the mobility of LEO satellites, resulting in poor link utilization or high latency. Further, this document discusses the key challenges of achieving high throughput and low latency for end-to-end connections over an LSN, and provides useful information when the LSN-specific congestion control principles for the Internet is standardized in the future.</t>
    </section>    
    
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document includes no request to IANA.</t>
    </section>
    
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>This document does not represent a change to any aspect of the TCP/IP protocol suite and therefore does not directly impact Internet security.</t>
    </section>
    
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <reference anchor="RFC9293">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <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="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>
        <name>Informative References</name>
        <!-- <reference anchor="cubic_cc"><front><title>CUBIC: a new TCP-friendly high-speed TCP variant</title><author surname="Ha" fullname="Sangtae Ha" /><author surname="Rhee" fullname="Injong Rhee" /><author surname="Xu" fullname="Lisong Xu" /><date year="2008" month="jul" /></front></reference> -->
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ccwg-bbr.xml"/>
        <reference anchor="copa_cc"><front><title>Copa: Practical Delay-Based Congestion Control for the Internet</title><author surname="Arun" fullname="Venkat Arun" /><author surname="Balakrishnan" fullname="Hari Balakrishnan" /><date year="2018" /></front></reference>
        <reference anchor="vegas_cc"><front><title>TCP Vegas: New techniques for congestion detection and avoidance</title><author surname="Brakmo" fullname="Lawrence S Brakmo" /><author surname="O'malley" fullname="Sean W O'malley" /><author surname="Peterson" fullname="Larry L Peterson" /><date year="1994" /></front></reference>
        <reference anchor="cardwell2016bbr"><front><title>BBR: Congestion-based congestion control: Measuring bottleneck bandwidth and round-trip propagation time</title><author surname="Cardwell" fullname="Neal Cardwell" /><author surname="Cheng" fullname="Yuchung Cheng" /><author surname="Gunn" fullname="C Stephen Gunn" /><author surname="Yeganeh" fullname="Soheil Hassas Yeganeh" /><author surname="Jacobson" fullname="Van Jacobson" /><date year="2016" /></front></reference>
        <reference anchor="dong2018pcc"><front><title>PCC Vivace:Online-Learning Congestion Control</title><author surname="Dong" fullname="Mo Dong" /><author surname="Meng" fullname="Tong Meng" /><author surname="Zarchy" fullname="Doron Zarchy" /><author surname="Arslan" fullname="Engin Arslan" /><author surname="Gilad" fullname="Yossi Gilad" /><author surname="Godfrey" fullname="Brighten Godfrey" /><author surname="Schapira" fullname="Michael Schapira" /><date year="2018" /></front></reference>
        <reference anchor="park2018exll"><front><title>ExLL: An extremely low-latency congestion control for mobile cellular networks</title><author surname="Park" fullname="Shinik Park" /><author surname="Lee" fullname="Jinsung Lee" /><author surname="Kim" fullname="Junseon Kim" /><author surname="Lee" fullname="Jihoon Lee" /><author surname="Ha" fullname="Sangtae Ha" /><author surname="Lee" fullname="Kyunghan Lee" /><date year="2018" /></front></reference>
        <reference anchor="lu2015cqic"><front><title>CQIC: Revisiting cross-layer congestion control for cellular networks</title><author surname="Lu" fullname="Feng Lu" /><author surname="Du" fullname="Hao Du" /><author surname="Jain" fullname="Ankur Jain" /><author surname="Voelker" fullname="Geoffrey M Voelker" /><author surname="Snoeren" fullname="Alex C Snoeren" /><author surname="Terzis" fullname="Andreas Terzis" /><date year="2015" /></front></reference>
        <reference anchor="xie2017accelerating"><front><title>Accelerating mobile web loading using cellular link information</title><author surname="Xie" fullname="Xiufeng Xie" /><author surname="Zhang" fullname="Xinyu Zhang" /><author surname="Zhu" fullname="Shilin Zhu" /><date year="2017" /></front></reference>
        <reference anchor="xie2015pistream"><front><title>piStream: Physical layer informed adaptive video streaming over LTE</title><author surname="Xie" fullname="Xiufeng Xie" /><author surname="Zhang" fullname="Xinyu Zhang" /><author surname="Kumar" fullname="Swarun Kumar" /><author surname="Li" fullname="Li Erran Li" /><date year="2015" /></front></reference>
        <reference anchor="leong2017tcp"><front><title>TCP congestion control beyond bandwidth-delay product for mobile cellular networks</title><author surname="Leong" fullname="Wai Kay Leong" /><author surname="Wang" fullname="Zixiao Wang" /><author surname="Leong" fullname="Ben Leong" /><date year="2017" /></front></reference>
        <reference anchor="xie2020pbe"><front><title>PBE-CC: Congestion control via endpoint-centric, physical-layer bandwidth measurements</title><author surname="Xie" fullname="Yaxiong Xie" /><author surname="Yi" fullname="Fan Yi" /><author surname="Jamieson" fullname="Kyle Jamieson" /><date year="2020" /></front></reference> 
      </references>
    </references>

    <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <!-- <t>This template uses extracts from templates written by Pekka Savola, Elwyn Davies and 
        Henrik Levkowetz. [REPLACE]</t> -->
    </section>
    
    <section anchor="Contributors" numbered="false">
      <name>Contributors</name>
      <t>Thanks to all of the contributors.</t>
    </section>
    
 </back>
</rfc>
