<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.39 (Ruby 2.7.4) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-ccwg-rfc5033bis-05" category="bcp" consensus="true" submissionType="IETF" obsoletes="5033" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="New CC Algorithms">Specifying New Congestion Control Algorithms</title>

    <author initials="M." surname="Duke" fullname="Martin Duke" role="editor">
      <organization>Google LLC</organization>
      <address>
        <email>martin.h.duke@gmail.com</email>
      </address>
    </author>
    <author initials="G." surname="Fairhurst" fullname="Godred Fairhurst" role="editor">
      <organization>University of Aberdeen</organization>
      <address>
        <email>gorry@erg.abdn.ac.uk</email>
      </address>
    </author>

    <date year="2024" month="May" day="01"/>

    <area>General</area>
    <workgroup>CCWG</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 99?>

<t>Introducing new or modified congestion control algorithms in the global Internet
has possible ramifications to both the flows using the proposed congestion
control algorithms and to flows using a standardized congestion control
algorithm. Therefore, the IETF must proceed with caution when evaluating
proposals for alternate congestion control. The goal of this document is to
provide guidance for considering standardization of a proposed congestion
control algorithm at the IETF. It obsoletes RFC5033 to reflect changes in the
congestion control landscape.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ccwg-rfc5033bis/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Congestion Control Working Group (ccwg) Working Group mailing list (<eref target="mailto:ccwg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccwg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ccwg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-ccwg/rfc5033bis"/>.</t>
    </note>


  </front>

  <middle>


<?line 110?>

<section anchor="introduction"><name>Introduction</name>

<t>This document provides guidelines for the IETF to use when evaluating a proposed
congestion control algorithm that differs from the general congestion control
principles outlined in <xref target="RFC2914"/>. The guidance is intended to be useful to
authors proposing congestion control algorithms and for the IETF community when
evaluating whether a proposal is appropriate for publication in the RFC series
and for deployment in the Internet.</t>

<t>This document obsoletes <xref target="RFC5033"/>, which was published in 2007 as a Best
Current Practice to evaluate proposed congestion control algorithms as
Experimental or Proposed Standard RFCs.</t>

<t>The IETF specifies standard Internet congestion control algorithms in the RFC-series.
These congestion control algorithms can suffer performance challenges when used in
various environments (e.g., high-speed networks, cellular and WiFi wireless
technologies, and long distance satellite links), and also when flows carry
specific workloads (Voice over IP (VoIP), gaming, and videoconferencing).</t>

<t>When <xref target="RFC5033"/> was published in 2007, TCP <xref target="RFC9293"/> was the dominant
consumer of IETF congestion control work,
and proposals were typically discussed in the Internet
Congestion Control Research Group (ICCRG). Around the same time,
the Datagram Congestion Control
Protocol (DCCP) <xref target="RFC4340"/> was developed as a method for defining new
congestion control algorithms for datagram traffic.
The Stream Control Transmission Protocol (SCTP)
<xref target="RFC9260"/> re-used TCP congestion control algorithms.</t>

<t>Since then, many conditions have changed. The set of protocols using congestion control
algorithms has grown to include QUIC <xref target="RFC9000"/>, RTP Media Congestion
Avoidance Techniques (RMCAT) (e.g., <xref target="RFC8836"/>) and beyond.
Some proponents of alternative congestion control algorithms now have the
opportunity to test and deploy at scale without IETF review. There is more
interest in specialized use cases, such as data centers (e.g., <xref target="RFC8257"/>),
and in support for a variety of upper layer protocols/applications, e.g.,
real-time protocols. Finally, the community has gained much more experience
with indications of congestion beyond packet loss.</t>

<t>Multicast congestion control is a considerably less mature field of study and
is not in the scope of this document. However, <xref section="4" sectionFormat="of" target="RFC8085"/> provides
additional guidelines for multicast and broadcast usage of UDP.</t>

<t>Congestion control algorithms have been developed outside of the IETF, including
at least two that saw large scale deployment: CUBIC <xref target="HRX08"/> and Bottleneck
Bandwidth and Round-trip propagation time (BBR) <xref target="BBR-draft"/>.</t>

<t>CUBIC was documented in a research publication in 2007 <xref target="HRX08"/>, and was then
adopted as the default congestion control algorithm for the TCP implementation
in Linux. It was already used in a significant fraction of TCP connections over
the Internet before being documented in an Informational Internet-Draft in
2015, published as an Informational RFC in 2017 as <xref target="RFC8312"/> and then as a
Proposed Standard in 2023 <xref target="RFC9438"/>.</t>

<t>At the time of writing, BBR is being developed as an internal research project
by Google, with the first implementation contributed to Linux kernel 4.19 in
2016. It was described in an IRTF Internet-Draft in 2018, and that Internet-
Draft is regularly updated to document the evolving versions of the algorithm
<xref target="BBR-draft"/>. BBR is currently widely used for Google services using either
TCP or QUIC, and is also widely deployed outside of Google.</t>

<t>We cannot say now whether the original authors of <xref target="RFC5033"/> expected that
developers would be waiting for IETF review before widely deploying a
new congestion control algorithm over the Internet, but the examples of CUBIC
and BBR teach us that deployment of new algorithms is not, in fact, gated by the
publication of the algorithm as an RFC.</t>

<t>Nevertheless, a specification for a congestion control algorithm provides a number of
advantages:</t>

<t><list style="symbols">
  <t>It can help implementers, operators, and other interested parties
develop a shared understanding of how the algorithm works and how it is
expected to behave in various scenarios and configurations.</t>
  <t>It can help potential contributors understand the algorithm,
which can make it easier for them to suggest improvements and/or identify
limitations. Furthermore, the specification can help multiple contributors
align on a consensus change to the algorithm.</t>
  <t>A specification that is accessible to anyone can circumvent the issue that
some implementers may be unable to read open source reference implementations
due to the constraints of some open source licenses.</t>
</list></t>

<t>Beyond helping develop specific algorithm proposals, guidelines can also serve
as a reminder to potential inventors and developers of the multiple facets of
the congestion control problem.</t>

<t>The evaluation guidelines in this document are intended to be consistent with
the congestion control principles from <xref target="RFC2914"/> of preventing congestion
collapse, considering fairness, and optimizing a flow's own performance in terms
of throughput, delay, and loss. <xref target="RFC2914"/> also discusses the goal of avoiding
a congestion control "arms race" among competing transport protocols.</t>

<t>This document does not give hard-and-fast requirements for an appropriate
congestion control algorithm. Rather, the document provides a set of criteria
that should be considered and weighed by the developers of alternative
algorithms and by the IETF in the context of each proposal.</t>

<t>The high-order criterion for advancing any proposal within the IETF is a serious
scientific study of the pros and cons that occurs when the proposal is
considered for publication by the IETF, or before it is deployed at large scale.</t>

<t>After initial studies, authors are encouraged to write a specification of their
proposal for publication in the RFC series. This allows others to understand and
investigate the wealth of proposals in this space.</t>

<t>This document is intended to reduce the barriers to entry for new congestion
control work to the IETF. As such, proponents of new congestion control
algorithms ought not to interpret these criteria as a checklist of requirements
before approaching the IETF. Instead, proponents are encouraged to think about
these issues beforehand, and have the willingness to do the work implied by the
remainder of this document.</t>

</section>
<section anchor="guidelines-for-authors-about-document-status"><name>Guidelines for Authors about Document Status</name>

<t>This document applies to proposals for congestion control algorithms that
seek Experimental or Standards Track status. Evaluation of both cases involves
the same questions, but with different expectations for both the answers and the
degree of certainty of those answers.</t>

<t>Congestion control algorithms without empirical evidence of Internet-scale
deployment SHOULD seek Experimental status.</t>

<t>Congestion control algorithms with a
record of measured Internet-scale deployment MAY directly seek the Standards
Track if there is solid data that reflects that it is safe, and the design is
stable, guided by the considerations in <xref target="general-use"/>. However, the existence
of this data does not waive the other considerations in this document.</t>

<t>Experimental specifications SHOULD NOT be deployed as a default. They SHOULD
only be deployed in situations where they are being actively measured, and where
it is possible to deactivate them if there are signs of pathological behavior.</t>

<t>Each published congestion control algorithm is REQUIRED to include a statement
in the abstract indicating whether or not there is IETF consensus that the
proposed congestion control algorithm is considered safe for use on the
Internet. Each published algorithm is also required to include a statement in
the abstract describing environments where the protocol is not recommended for
deployment. There can be environments where the congestion control algorithm is
deemed safe for use, but it is still is not recommended for use because it
does not perform well for the user.</t>

<t>As examples of such statements, <xref target="RFC3649"/> specifies HighSpeed TCP and
includes a statement in the abstract stating that the proposed congestion
control algorithm is Experimental, but may be deployed in the Internet. In
contrast, the Quick-Start document <xref target="RFC4782"/> includes a paragraph in the
abstract stating that the mechanism is only being proposed for use in
controlled environments. The abstract specifies environments where the Quick-
Start request could give false positives (and therefore would be unsafe for
incremental deployment where some routers forward, but do not process the
option). The abstract also specifies environments where packets containing the
Quick-Start request could be dropped in the network; in such an environment,
Quick-Start would not be unsafe to deploy, but deployment is not recommended
because it could lead to unnecessary delays for the connections attempting to
use Quick-Start. The Quick-Start method is discussed as an example in
<xref target="RFC9049"/>.</t>

<t>Although out of the scope of this document, proponents of a new algorithm could
alternatively seek publication as an Informational or Experimental RFC via the
Internet Research Task Force (IRTF). In general, these algorithms are expected
to be less mature than ones that follow the procedures in this document. Authors
documenting deployed congestion control algorithms that cannot be changed by
IETF or IRTF review are invited to publish as an Informational RFC via the
Independent Stream Editor (ISE).</t>

</section>
<section anchor="specification-of-requirements"><name>Specification of Requirements</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 anchor="controlled-environments"><name>Specifying Algorithms for Use in Controlled Environments</name>

<t>Algorithms can be designed for general Internet deployment or for use in
controlled environments <xref target="RFC8799"/>. Within a controlled environment,
an operator can ensure that flows
are isolated from other Internet flows, or they might
allow these flows to share resources with other Internet flows.
A data center is an example of a controlled environment, which often deploys
fabrics with rich signalling from switches to endpoints.</t>

<t>Algorithms that
rely on specific functions or configurations in the network need to provide a
reference or specification for these functions (an RFC or another stable
specification). The IETF will need to assess whether the relevant working group
is able to review the proposed new algorithm and whether there is sufficient
experience to understand any dependent functions.</t>

<t>In evaluating a new proposal for use in a controlled environment, the IETF needs
to understand the usage, e.g., how the usage is scoped to the controlled
environment, whether the algorithm will share resources with Internet traffic,
and consider what could happen if used in a protocol that is bridged across an
Internet path. Algorithms that are designed to be confined to a controlled
environment and are not intended for use in the general Internet, might instead
seek real-world data for those environments. In such cases, the evaluation
criteria in the remainder of this document might not apply.</t>

</section>
<section anchor="evaluation-criteria"><name>Evaluation Criteria</name>

<t>As noted above, authors are expected to do a well-rounded evaluation of the pros
and cons of congestion control algorithms that are brought to the IETF. The
following guidelines are designed to help authors and the IETF community.
Concerns that fall outside the scope of these guidelines are certainly possible;
these guidelines should not be considered an all-encompassing check-list.</t>

<t>When considering a proposed congestion control algorithm, the community MUST
consider the following criteria. These criteria will be evaluated in various
domains (see <xref target="general-use"/> and <xref target="special-cases"/>).</t>

<section anchor="single-algorithm-behavior"><name>Single Algorithm Behavior</name>

<t>The criteria in this section evaluate the congestion control algorithm when one
or more flows using that algorithm share a bottleneck link (i.e., with no flows
using a differing congestion control algorithm).</t>

<section anchor="protection-against-congestion-collapse"><name>Protection Against Congestion Collapse</name>

<t>A congestion control algorithm should either stop sending when the packet drop
rate exceeds some threshold <xref target="RFC3714"/>, or should include some notion of "full
backoff". For "full backoff", at some point the algorithm would reduce the
sending rate to one packet per round-trip time and then exponentially backoff
the time between single packet transmissions if the congestion persists. Exactly
when either "full backoff" or a pause in sending comes into play will be
algorithm-specific.  However, as discussed in <xref target="RFC2914"/> and <xref target="RFC8961"/>,
this requirement is crucial to protect the network in times of extreme
(persistent) congestion.</t>

<t>If full backoff is used, this test does not require that the mechanism must be
identical to that of TCP (<xref target="RFC6298"/>, <xref target="RFC8961"/>). For example, this does
not preclude full backoff mechanisms that would give flows with different round-
trip times comparable capacity during backoff.</t>

</section>
<section anchor="protection-against-bufferbloat"><name>Protection Against Bufferbloat</name>

<t>A congestion control algorithm should try to avoid maintaining excessive queues
in the network. Exactly how the algorithm achieves this is algorithm-specific,
but see <xref target="RFC8961"/> and <xref target="RFC8085"/> for requirements.</t>

<t>Bufferbloat <xref target="Bufferbloat"/> refers to the building of excessive queues in the
network. Many network routers are configured with very large buffers. The
standards-track Reno <xref target="RFC5681"/> and CUBIC <xref target="RFC9438"/> congestion control
algorithms send at progressively higher rates until a First-In First-Out (FIFO)
buffer completely fills, and packet losses then occur. Every connection passing
through that bottleneck experiences increased latency due to the high buffer
occupancy. This adds unwanted latency that negatively impacts highly interactive
applications such as videoconferencing or games, but it also affects routine web
browsing and video playing.</t>

<t>This problem has been widely discussed since 2011 <xref target="Bufferbloat"/>, but was not
discussed in the Congestion Control Principles published in September 2002
<xref target="RFC2914"/>. The Reno and CUBIC congestion control algorithms do not address
this problem, but a new congestion control algorithm has the opportunity to improve the
state of the art.</t>

</section>
<section anchor="protection-against-high-packet-loss"><name>Protection Against High Packet Loss</name>

<t>A congestion control algorithm should try to avoid causing excessively high
rates of packet loss. To accomplish this, it should avoid excessive increases in
sending rate, and reduce its sending rate if experiencing high packet loss.</t>

<t>The first version of the BBR algorithm <xref target="BBRv1-draft"/> failed this requirement.
Experimental evaluation <xref target="BBRv1-Evaluation"/> showed that it caused a sustained
rate of packet loss when multiple BBRv1 flows shared a bottleneck and the buffer
size was less than roughly one and a half BDP. This was unsatisfactory, and
indeed further versions have fixed this aspect of BBR <xref target="BBR-draft"/>.</t>

<t>This requirement does not imply that the algorithm should react to packet losses
in exactly the same way as current standards-track congestion control algorithms
(e.g., <xref target="RFC5681"/>).</t>

</section>
<section anchor="fairness-within-the-proposed-congestion-control-algorithm"><name>Fairness within the Proposed Congestion Control Algorithm</name>

<t>When multiple competing flows all use the same proposed congestion control
algorithm, the proposal should explore how the capacity is shared among the
competing flows. Capacity fairness can be important when a small number of
similar flows compete to fill a bottleneck. However, it can also not be useful,
for example, when comparing flows that seek to send at different rates, or if
some of the flows do not last sufficiently long to approach asymptotic behavior.</t>

</section>
<section anchor="short-flows"><name>Short Flows</name>

<t>A great deal of congestion control analysis concerns the steady-state behavior
of long flows. However, many Internet flows are relatively short-lived.
Many short-lived flows today remain in the "slow
start" mode of operation <xref target="RFC5681"/> that commonly features exponential
congestion window growth because the flow
never experiences congestion (e.g., packet loss).</t>

<t>A proposed congestion control algorithm MUST consider how new and short-lived
flows affect long-lived flows, and vice versa.</t>

</section>
</section>
<section anchor="mixed-algorithm-behavior"><name>Mixed Algorithm Behavior</name>

<t>Mixed algorithm behavior criteria evaluate the interaction of the proposed
congestion control algorithm with commonly deployed congestion control
algorithms.</t>

<t>In contexts where differing congestion control algorithms are used, it is
important to understand whether the proposed congestion control algorithm could
result in more harm than previous standards-track algorithms (e.g.,
<xref target="RFC5681"/>, <xref target="RFC9002"/>, <xref target="RFC9438"/>) to flows sharing a common bottleneck.
The measure of harm is not restricted to unequal capacity, but ought also to
consider metrics such as the introduced latency, or an increase in packet loss.
An evaluation MUST assess the potential to cause starvation, including
assurance that a loss of all feedback (e.g., detected by expiry of a
retransmission time out) results in backoff.</t>

<section anchor="existing-general-purpose-transports"><name>Existing General-Purpose Transports</name>

<t>A proposed congestion control algorithm SHOULD be evaluated when competing using
standard IETF congestion controls, e.g. <xref target="RFC5681"/>, <xref target="RFC9002"/>,
<xref target="RFC9438"/>. A proposed congestion control algorithm that has a significantly
negative impact on flows using standard congestion control might be suspect, and
this aspect should be part of the community's decision making with regards to
the suitability of the proposed congestion control algorithm. The community
should also consider other non-standard congestion control algorithms that are
known to be widely deployed.</t>

<t>Note that this guideline is not a requirement for strict Reno- or CUBIC-
friendliness as a prerequisite for a proposed congestion control mechanism to
advance to Experimental or Standards Track status. As an example, HighSpeed TCP
is a congestion control mechanism specified as Experimental, that is not TCP-
friendly in all environments. When a new congestion control algorithm is
deployed, the existing major algorithm deployments need to be considered to
avoid severe performance degradation. Note that this guideline does not
constrain the interaction with non-best-effort flows.</t>

<t>As an example from an Experimental RFC, fairness with standard TCP is discussed
in Sections 4 and 6 of <xref target="RFC3649"/> (HighSpeed TCP) and using spare capacity is
discussed in Sections 6, 11.1, and 12 of <xref target="RFC3649"/>.</t>

</section>
<section anchor="real-time-protocols"><name>Real-Time Protocols</name>

<t>General-purpose protocols need to coexist in the Internet with real-time
congestion control algorithms, which, in general, have finite throughput
requirements (i.e., do not seek to utilize all available capacity) and more
strict latency bounds.</t>

<t><xref target="RFC8868"/> provides suggestions for real-time congestion control design and
<xref target="RFC8867"/> suggests test cases. <xref target="RFC9392"/> describes some considerations
for the RTP Control Protocol (RTCP). In particular, real-time flows
can use less frequent feedback (acknowledgement) than that provided by reliable transports.
This document does not change the informational status of those RFCs.</t>

<t>A proposed congestion control algorithm SHOULD consider coexistence with widely
deployed real-time congestion control algorithms. Regrettably, at the time of
writing (2024), many algorithms with detailed public specifications are not
widely deployed, while many widely deployed real-time congestion control
algorithms have incomplete public specifications. It is hoped that this
situation will change.</t>

<t>To the extent that behavior of widely deployed algorithms is understood,
proponents of a proposed congestion control algorithm can analyze and simulate
a proposal's interaction with those algorithms. To the extent they are not, experiments
can be conducted where possible.</t>

<t>Real-time flows can be directed into distinct queues via Differentiated Services
Code Points (DSCP) or other mechanisms, which can substantially reduce the
interplay with other traffic. However, a proposal targeting general Internet use
can not assume this is always the case.</t>

<t><xref target="circuit-breakers"/> describes the impact of network transport circuit breaker
algorithms. <xref target="RFC8083"/> also defines a minimal set of RTP circuit breakers that
operate end-to-end across a path. This identifies conditions under which a sender needs to
stop transmitting media data to protect the network from excessive congestion.
It is expected that, in the absence of long-lived excessive congestion, RTP
applications running on best-effort IP networks will be able to operate without
triggering these circuit breakers.</t>

</section>
<section anchor="short-and-long-flows"><name>Short and Long Flows</name>

<t>The effect on short-lived and long-lived flows using other common congestion
control algorithms MUST be evaluated, as in <xref target="short-flows"/>.</t>

</section>
</section>
<section anchor="other-criteria"><name>Other Criteria</name>

<section anchor="differences-with-congestion-control-principles"><name>Differences with Congestion Control Principles</name>

<t>A proposed congestion control algorithm SHOULD include a clear
explanation of any deviations from <xref target="RFC2914"/> and <xref target="RFC7141"/>.</t>

</section>
<section anchor="incremental-deployment"><name>Incremental Deployment</name>

<t>The proposed congestion control algorithm ought to discuss whether it allows for
incremental deployment in the targeted environment. For a mechanism targeted for
deployment in the current Internet, it would be helpful for the proposal to
discuss what is known (if anything) about the correct operation of the
mechanisms with some of the equipment in the current Internet, e.g., routers,
transparent proxies, WAN optimizers, intrusion detection systems, home routers,
and the like.</t>

<t>Similarly, if the proposed congestion control algorithm is intended only for
specific environments (and not the global Internet), the proposal SHOULD
consider how this intention is to be realised.  The community will have to
address the question of whether the scope can be enforced by stating the
restrictions, or whether additional protocol mechanisms are required to enforce
this scoping.  The answer will necessarily depend on the proposed change.</t>

<t>As an example from an Experimental RFC, deployment issues are discussed in
Sections 10.3 and 10.4 of <xref target="RFC4782"/> (Quick-Start).</t>

</section>
</section>
</section>
<section anchor="general-use"><name>General Use</name>

<t>The criteria in <xref target="evaluation-criteria"/> will be evaluated in the following
scenarios. Unless a proposed congestion control specification explicitly forbids
use on the public Internet, the community MUST find that it meets the criteria
in these scenarios for the proposed congestion control algorithm to progress.</t>

<t>The evaluation in each scenario SHOULD occur over a representative range of
bandwidths, delays, and queue depths. Of course, the set of parameters
representative of the public Internet will change over time.</t>

<t>These criteria are intended to capture a statistically dominant set of Internet
conditions. In the case that a proposed congestion control algorithm has been
tested at Internet scale, the results from that deployment are often useful for
answering these questions.</t>

<section anchor="paths-with-tail-drop-queues"><name>Paths with Tail-drop Queues</name>

<t>The performance of a congestion control algorithm is affected by the queue
discipline applied at the bottleneck link. The drop-tail queue discipline (using
a FIFO buffer) MUST be evaluated. See <xref target="aqm"/> for evaluation of other queue
disciplines.</t>

</section>
<section anchor="tunnel-behavior"><name>Tunnel Behavior</name>

<t>When a proposed congestion control algorithm relies on explicit signals from the
path, the proposal MUST consider the effect of traffic passing through a tunnel,
where routers may not be aware of the flow.</t>

<t>The design of tunnels and similar encapsulations might need to consider nested
congestion control interactions. For example, when ECN is used by both an
IP and lower layer technology <xref target="ECN-Encaps"/>.</t>

</section>
<section anchor="wired-paths"><name>Wired Paths</name>

<t>Wired networks are usually characterized by extremely low rates of packet loss
except for those due to queue drops. They tend to have stable aggregate
capacity, usually higher than other types of links, and low non-queueing delay.
Because the properties are relatively simple, wired links are typically used as a
"baseline" case even if they are not always the bottleneck link in the modern
Internet.</t>

</section>
<section anchor="wireless-paths"><name>Wireless Paths</name>

<t>While the early Internet was dominated by wired links, the properties of
wireless links have become extremely important to Internet performance. In
particular, a proposed congestion control algorithm should be evaluated in
situations where some packet losses are due to radio effects, rather than router
queue drops; the link capacity varies over time due to changing link conditions;
and media access delays and link-layer retransmission lead to increased jitter
in round-trip times. See <xref target="RFC3819"/> and Section 16 of <xref target="Tools"/> for further
discussion of wireless properties.</t>

</section>
</section>
<section anchor="special-cases"><name>Special Cases</name>

<t>The criteria in <xref target="evaluation-criteria"/> will be evaluated in the following
scenarios, unless the proposed congestion control algorithm specifically
excludes its use in a scenario. For these specific use-cases, the community MAY
allow a proposal to progress even if the criteria indicate an unsatisfactory
result for these scenarios.</t>

<t>In general, measurements from Internet-scale deployments might not expose the
properties of operation in each of these scenarios, because they are not as
ubiquitous as the General Use scenarios.</t>

<section anchor="aqm"><name>Active Queue Management (AQM)</name>

<t>The proposed congestion control algorithm SHOULD be evaluated under a variety of
bottleneck queue disciplines. The effect of an AQM discipline can be hard to
detect by Internet evaluation. At a minimum, a proposal should reason about an
algorithm's response to various AQM disciplines. Simulation or empirical results
are, of course, valuable.</t>

<t>Among the AQM techniques that might have an impact on a proposed congestion
control algorithm are Flow Queue CoDel (FQ-CoDel) <xref target="RFC8290"/>; Proportional Integral Controller
Enhanced (PIE) <xref target="RFC8033"/>; and Low Latency, Low Loss, and Scalable Throughput
(L4S) <xref target="RFC9332"/>.</t>

<t>A proposed congestion control algorithm that sets one of the two Explicit
Congestion Transport (ECT) codepoints in the IP header can gain the benefits of
receiving Explicit Congestion Notification (ECN) Congestion Experienced (CE)
signals from an on-path AQM <xref target="RFC8087"/>. Use of ECN <xref target="RFC3168"/>, <xref target="RFC9332"/>
requires the congestion control algorithm to react when it receives a packet
with an ECN-CE marking. This reaction needs to be evaluated to confirm that the
algorithm conforms with the requirements of the ECT codepoint that was used.</t>

<t>Note that evaluation of AQM techniques -- as opposed to their impact on a
specific proposed congestion control algorithm -- is out of scope of this
document. <xref target="RFC7567"/> describes design considerations for AQMs.</t>

<section anchor="circuit-breakers"><name>Operation with the Envelope set by Network Circuit Breakers</name>

<t>Some equipment in the network uses an automatic mechanism to continuously
monitor the use of resources by a flow or aggregate set of flows <xref target="RFC8084"/>.
Such a network transport circuit breaker can automatically detect excessive
congestion, and when detected, it can terminate (or significantly reduce the
rate of) the flow(s). A well-designed congestion control algorithm ought to
react before the flow uses excessive resources, and therefore will operate
within the envelope set by network transport circuit breaker algorithms.</t>

</section>
</section>
<section anchor="delay"><name>Paths with Varying Delay</name>

<t>An Internet Path can include simple links, where the minimum delay is the
propagation delay, and any additional delay can be attributed to link buffering.
This cannot be assumed. An Internet Path can also include complex subnetworks
where the minimum delay changes over various time scales, resulting in a non-
stationary minimum delay.</t>

<t>This occurs when a subnet changes the forwarding path to optimise capacity,
resilience, etc. It could also arise when a subnet uses a capacity management
method where the available resource is periodically distributed among the active
nodes. A node might then have to buffer data until an assigned transmission
opportunity or until the physical path changes (e.g., when the length of a
wireless path changes, or the physical layer changes its mode of operation).
Variation also arises when traffic with a higher priority DSCP pre-empts
transmission of traffic with a lower class. In these cases, the delay varies as
a function of external factors, and attempting to infer congestion from an
increase in the delay results in reduced throughput. This variation in the
delay over short timescales (jitter) might not be distinguishable from jitter
that results from other effects.</t>

<t>A proposed congestion control algorithm SHOULD be evaluated to ensure its
operation is robust when there is a significant change in the minimum delay.</t>

</section>
<section anchor="internet-of-things"><name>Internet of Things</name>

<t>The "Internet of Things" (IoT) is a broad concept, but when evaluating a
proposed congestion control algorithm, it is often associated with unique
characteristics:
IoT nodes might be more constrained in power, CPU, or other parameters than
conventional Internet hosts. This might place limits on the complexity of any
given algorithm. These power and radio constraints might make the volume of
control packets in a given algorithm a key evaluation metric.</t>

<t>Extremely low-power links can lead to very low throughput and a low bandwidth-
delay product, well below the standard operating range of most Internet flows.</t>

<t>Furthermore, many IoT applications do not a have a human in the loop, and
therefore can have weaker latency constraints because they do not relate to a
user experience. Congestion control algorithm can still need to share the
path with other flows with different constraints.</t>

</section>
<section anchor="paths-with-high-delay"><name>Paths with High Delay</name>

<t>A proposed congestion control algorithm ought not to presume that all general
Internet paths have a low delay. Some paths include links that contribute much
more delay than for a typical Internet path. Satellite links often have delays
longer than typical for wired paths <xref target="RFC2488"/> and high delay bandwidth
products <xref target="RFC3649"/>.</t>

<t>Paths can also present a variable delay as described in <xref target="delay"/>.</t>

</section>
<section anchor="misbehaving-nodes"><name>Misbehaving Nodes</name>

<t>A proposed congestion control algorithm SHOULD explore how the algorithm
performs with non-compliant senders, receivers, or routers.  In addition, the
proposal should explore how a proposed congestion control algorithm performs
with outside attackers.  This can be particularly important for proposed
congestion control algorithms that involve explicit feedback from routers along
the path.</t>

<t>As an example from an Experimental RFC, performance with misbehaving nodes and
outside attackers is discussed in Sections 9.4, 9.5, and 9.6 of <xref target="RFC4782"/>.
This includes discussion of misbehaving senders and receivers; collusion between
misbehaving routers; misbehaving middleboxes; and the potential use of Quick-
Start to attack routers or to tie up available Quick-Start bandwidth.</t>

</section>
<section anchor="extreme-packet-reordering"><name>Extreme Packet Reordering</name>

<t>A proposed congestion control algorithm ought not to presume that all general
Internet paths reliably deliver packets in order. <xref target="RFC4653"/> discusses the
effect of extreme packet reordering.</t>

</section>
<section anchor="transient-events"><name>Transient Events</name>

<t>A proposed congestion control algorithm SHOULD consider how the proposed
congestion control algorithm would perform in the presence of transient events
such as sudden onset of congestion, a routing change, or a mobility event.
Routing changes, link disconnections, intermittent link connectivity, and
mobility are discussed in more detail in Section 16 of <xref target="Tools"/>.</t>

<t>As an example from an Experimental RFC, response to transient events is
discussed in <xref section="9.2" sectionFormat="of" target="RFC4782"/>.</t>

<section anchor="sudden-changes-in-the-path"><name>Sudden changes in the Path</name>

<t>An IETF transport is not tied to a specific Internet path or type of path. The
set of routers that form a path can and do change with time. This will cause the
properties of the path to change with respect to time. A proposed congestion
control algorithm MUST evaluate the impact of changes in the path, and be robust
to changes in path characteristics on the interval of common Internet re-routing
intervals.</t>

</section>
</section>
<section anchor="multipath-transport"><name>Multipath Transport</name>

<t>Multipath transport protocols permit more than one path to be differentiated and
used by a single connection at the sender. A multipath sender can schedule which
packets travel on which of its active paths. This enables a tradeoff in
timeliness and reliability. There are various ways that multipath techniques can
be used.</t>

<t>One example use is to provide fail-over from one path to another when the
original path is no longer viable, or provides inferior performance.  Designs
need to independently track the congestion state of each path, and demonstrate
independent congestion control for each path being used. Authors of a proposed
multipath congestion control algorithm that implements path fail-over MUST
evaluate the harm resulting from a change in the path, and show that this does
not result in flow starvation. Synchronisation of failover (e.g., where multiple
flows change their path on similar timeframes) can also contribute to harm
and/or reduce fairness. These effects also ought to be evaluated.</t>

<t>Another example use is concurrent multipath, where the transport protocol
simultaneously schedules a flow to aggregate the capacity across multiple paths.
The Internet provides no guarantee that different paths (e.g., using different
endpoint addresses) are disjoint. This introduces additional implications: A congestion
control algorithm proposal MUST evaluate the potential harm to other flows when
the multiple paths share a common congested bottleneck or share resources that
are coupled between different paths, such as an overall capacity limit). A proposal
SHOULD consider the potential for harm to other flows. Synchronisation of
congestion control mechanisms (e.g., where multiple flows change their behaviour
on similar timeframes) can also contribute to harm and/or reduce fairness. These
effects also ought to be evaluated.</t>

<t>At the time of writing (2024), there are currently no Standards Track RFCs for
concurrent multipath, but there is an Experimental RFC <xref target="RFC6356"/> that
specifies a concurrent multipath congestion control algorithm for MPTCP
<xref target="RFC8684"/>.</t>

</section>
<section anchor="data-centers"><name>Data Centers</name>

<t>Data centers are characterized by very low latencies (&lt; 2 ms). Many workloads
involve bursty traffic where many nodes complete a task at the same time. As a
controlled environment, data centers often deploy fabrics that employ rich
signalling from switches to endpoints. Furthermore, the operator can often limit
the number of operating congestion control algorithms.</t>

<t>For these reasons, data center congestion controls are often distinct from those
running elsewhere on the Internet (see <xref target="controlled-environments"/>.  A proposed
congestion control need not coexist well with all other algorithms if it is
intended for data centers, but the proposal SHOULD indicate which are expected
to safely coexist with it.</t>

</section>
</section>
<section anchor="security-considerations"><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.  The
implementation of various facets of the Internet's current congestion control
algorithms do have security implications (e.g., as outlined in <xref target="RFC5681"/>).</t>

<t>The IETF process that results in publication needs to ensure that these security
implications are considered. Proposed congestion control algorithms therefore
ought to be mindful of pitfalls, and SHOULD examine any potential security
issues that may arise.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor="RFC2914">
  <front>
    <title>Congestion Control Principles</title>
    <author fullname="S. Floyd" initials="S." surname="Floyd"/>
    <date month="September" year="2000"/>
    <abstract>
      <t>The goal of this document is to explain the need for congestion control in the Internet, and to discuss what constitutes correct congestion control. 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="41"/>
  <seriesInfo name="RFC" value="2914"/>
  <seriesInfo name="DOI" value="10.17487/RFC2914"/>
</reference>

<reference anchor="RFC8085">
  <front>
    <title>UDP Usage Guidelines</title>
    <author fullname="L. Eggert" initials="L." surname="Eggert"/>
    <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
    <author fullname="G. Shepherd" initials="G." surname="Shepherd"/>
    <date month="March" year="2017"/>
    <abstract>
      <t>The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms. This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP. Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t>
      <t>Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic. They may also need to implement additional mechanisms, depending on how they use UDP.</t>
      <t>Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t>
      <t>This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="145"/>
  <seriesInfo name="RFC" value="8085"/>
  <seriesInfo name="DOI" value="10.17487/RFC8085"/>
</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>

<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>

<reference anchor="RFC8961">
  <front>
    <title>Requirements for Time-Based Loss Detection</title>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <date month="November" year="2020"/>
    <abstract>
      <t>Many protocols must detect packet loss for various reasons (e.g., to ensure reliability using retransmissions or to understand the level of congestion along a network path). While many mechanisms have been designed to detect loss, ultimately, protocols can only count on the passage of time without delivery confirmation to declare a packet "lost". Each implementation of a time-based loss detection mechanism represents a balance between correctness and timeliness; therefore, no implementation suits all situations. This document provides high-level requirements for time-based loss detectors appropriate for general use in unicast communication across the Internet. Within the requirements, implementations have latitude to define particulars that best address each situation.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="233"/>
  <seriesInfo name="RFC" value="8961"/>
  <seriesInfo name="DOI" value="10.17487/RFC8961"/>
</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="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="RFC8083">
  <front>
    <title>Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions</title>
    <author fullname="C. Perkins" initials="C." surname="Perkins"/>
    <author fullname="V. Singh" initials="V." surname="Singh"/>
    <date month="March" year="2017"/>
    <abstract>
      <t>The Real-time Transport Protocol (RTP) is widely used in telephony, video conferencing, and telepresence applications. Such applications are often run on best-effort UDP/IP networks. If congestion control is not implemented in these applications, then network congestion can lead to uncontrolled packet loss and a resulting deterioration of the user's multimedia experience. The congestion control algorithm acts as a safety measure by stopping RTP flows from using excessive resources and protecting the network from overload. At the time of this writing, however, while there are several proprietary solutions, there is no standard algorithm for congestion control of interactive RTP flows.</t>
      <t>This document does not propose a congestion control algorithm. It instead defines a minimal set of RTP circuit breakers: conditions under which an RTP sender needs to stop transmitting media data to protect the network from excessive congestion. It is expected that, in the absence of long-lived excessive congestion, RTP applications running on best-effort IP networks will be able to operate without triggering these circuit breakers. To avoid triggering the RTP circuit breaker, any Standards Track congestion control algorithms defined for RTP will need to operate within the envelope set by these RTP circuit breaker algorithms.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8083"/>
  <seriesInfo name="DOI" value="10.17487/RFC8083"/>
</reference>

<reference anchor="RFC7141">
  <front>
    <title>Byte and Packet Congestion Notification</title>
    <author fullname="B. Briscoe" initials="B." surname="Briscoe"/>
    <author fullname="J. Manner" initials="J." surname="Manner"/>
    <date month="February" year="2014"/>
    <abstract>
      <t>This document provides recommendations of best current practice for dropping or marking packets using any active queue management (AQM) algorithm, including Random Early Detection (RED), BLUE, Pre- Congestion Notification (PCN), and newer schemes such as CoDel (Controlled Delay) and PIE (Proportional Integral controller Enhanced). We give three strong recommendations: (1) packet size should be taken into account when transports detect and respond to congestion indications, (2) packet size should not be taken into account when network equipment creates congestion signals (marking, dropping), and therefore (3) in the specific case of RED, the byte- mode packet drop variant that drops fewer small packets should not be used. This memo updates RFC 2309 to deprecate deliberate preferential treatment of small packets in AQM algorithms.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="41"/>
  <seriesInfo name="RFC" value="7141"/>
  <seriesInfo name="DOI" value="10.17487/RFC7141"/>
</reference>

<reference anchor="RFC8084">
  <front>
    <title>Network Transport Circuit Breakers</title>
    <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
    <date month="March" year="2017"/>
    <abstract>
      <t>This document explains what is meant by the term "network transport Circuit Breaker". It describes the need for Circuit Breakers (CBs) for network tunnels and applications when using non-congestion- controlled traffic and explains where CBs are, and are not, needed. It also defines requirements for building a CB and the expected outcomes of using a CB within the Internet.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="208"/>
  <seriesInfo name="RFC" value="8084"/>
  <seriesInfo name="DOI" value="10.17487/RFC8084"/>
</reference>




    </references>

    <references title='Informative References'>




<reference anchor="BBR-draft">
   <front>
      <title>BBR Congestion Control</title>
      <author fullname="Neal Cardwell" initials="N." surname="Cardwell">
         <organization>Google</organization>
      </author>
      <author fullname="Yuchung Cheng" initials="Y." surname="Cheng">
         <organization>Google</organization>
      </author>
      <author fullname="Soheil Hassas Yeganeh" initials="S. H." surname="Yeganeh">
         <organization>Google</organization>
      </author>
      <author fullname="Ian Swett" initials="I." surname="Swett">
         <organization>Google</organization>
      </author>
      <author fullname="Van Jacobson" initials="V." surname="Jacobson">
         <organization>Google</organization>
      </author>
      <date day="7" month="March" year="2022"/>
      <abstract>
	 <t>   This document specifies the BBR congestion control algorithm.  BBR
   (&quot;Bottleneck Bandwidth and Round-trip propagation time&quot;) uses recent
   measurements of a transport connection&#x27;s delivery rate, round-trip
   time, and packet loss rate to build an explicit model of the network
   path.  BBR then uses this model to control both how fast it sends
   data and the maximum volume of data it allows in flight in the
   network at any time.  Relative to loss-based congestion control
   algorithms such as Reno [RFC5681] or CUBIC [RFC8312], BBR offers
   substantially higher throughput for bottlenecks with shallow buffers
   or random losses, and substantially lower queueing delays for
   bottlenecks with deep buffers (avoiding &quot;bufferbloat&quot;).  BBR can be
   implemented in any transport protocol that supports packet-delivery
   acknowledgment.  Thus far, open source implementations are available
   for TCP [RFC793] and QUIC [RFC9000].  This document specifies version
   2 of the BBR algorithm, also sometimes referred to as BBRv2 or bbr2.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-cardwell-iccrg-bbr-congestion-control-02"/>
   
</reference>


<reference anchor="BBRv1-draft">
   <front>
      <title>BBR Congestion Control</title>
      <author fullname="Neal Cardwell" initials="N." surname="Cardwell">
         <organization>Google, Inc</organization>
      </author>
      <author fullname="Yuchung Cheng" initials="Y." surname="Cheng">
         <organization>Google, Inc</organization>
      </author>
      <author fullname="Soheil Hassas Yeganeh" initials="S. H." surname="Yeganeh">
         <organization>Google, Inc</organization>
      </author>
      <author fullname="Van Jacobson" initials="V." surname="Jacobson">
         <organization>Google, Inc</organization>
      </author>
      <date day="3" month="July" year="2017"/>
      <abstract>
	 <t>   This document specifies the BBR congestion control algorithm.  BBR
   uses recent measurements of a transport connection&#x27;s delivery rate
   and round-trip time to build an explicit model that includes both the
   maximum recent bandwidth available to that connection, and its
   minimum recent round-trip delay.  BBR then uses this model to control
   both how fast it sends data and the maximum amount of data it allows
   in flight in the network at any time.  Relative to loss-based
   congestion control algorithms such as Reno [RFC5681] or CUBIC
   [draft-ietf-tcpm-cubic], BBR offers substantially higher throughput
   for bottlenecks with shallow buffers or random losses, and
   substantially lower queueing delays for bottlenecks with deep buffers
   (avoiding &quot;bufferbloat&quot;).  This algorithm can be implemented in any
   transport protocol that supports packet-delivery acknowledgment (thus
   far, open source implementations are available for TCP [RFC793] and
   QUIC [draft-ietf-quic-transport-00]).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-cardwell-iccrg-bbr-congestion-control-00"/>
   
</reference>


<reference anchor="ECN-Encaps">
   <front>
      <title>Guidelines for Adding Congestion Notification to Protocols that Encapsulate IP</title>
      <author fullname="Bob Briscoe" initials="B." surname="Briscoe">
         <organization>Independent</organization>
      </author>
      <author fullname="John Kaippallimalil" initials="J." surname="Kaippallimalil">
         <organization>Futurewei</organization>
      </author>
      <date day="5" month="December" year="2023"/>
      <abstract>
	 <t>   The purpose of this document is to guide the design of congestion
   notification in any lower layer or tunnelling protocol that
   encapsulates IP.  The aim is for explicit congestion signals to
   propagate consistently from lower layer protocols into IP.  Then the
   IP internetwork layer can act as a portability layer to carry
   congestion notification from non-IP-aware congested nodes up to the
   transport layer (L4).  Following these guidelines should assure
   interworking among IP layer and lower layer congestion notification
   mechanisms, whether specified by the IETF or other standards bodies.
   This document is included in BCP 89 and updates the single paragraph
   of advice to subnetwork designers about ECN in Section 13 of RFC
   3819, by replacing it with a reference to the whole of this document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-ecn-encap-guidelines-22"/>
   
</reference>


<reference anchor="HRX08" target="https://doi.org/10.1145/1400097.1400105">
  <front>
    <title>CUBIC: a new TCP-friendly high-speed TCP variant</title>
    <author initials="S." surname="Ha" fullname="Sangtae Ha">
      <organization></organization>
    </author>
    <author initials="I." surname="Rhee" fullname="Injong Rhee">
      <organization></organization>
    </author>
    <author initials="L." surname="Xu" fullname="Lisong Xu">
      <organization></organization>
    </author>
    <date year="2008" month="July"/>
  </front>
  <seriesInfo name="ACM SIGOPS Operating Systems Review, vol. 42, no. 5, pp. 64-74" value=""/>
</reference>
<reference anchor="Tools" target="https://datatracker.ietf.org/doc/draft-irtf-tmrg-tools">
  <front>
    <title>Tools for the Evaluation of Simulation and Testbed Scenarios</title>
    <author initials="S." surname="Floyd">
      <organization></organization>
    </author>
    <author initials="E." surname="Kohler">
      <organization></organization>
    </author>
    <date year="2007" month="July"/>
  </front>
  <seriesInfo name="Work in Progress" value=""/>
</reference>
<reference anchor="Bufferbloat" target="https://queue.acm.org/detail.cfm?id=2071893">
  <front>
    <title>Bufferbloat: Dark Buffers in the Internet</title>
    <author initials="" surname="Kathleen Nichols">
      <organization></organization>
    </author>
    <date year="2011"/>
  </front>
  <seriesInfo name="ACM Queue Volume 9, Issue 11" value=""/>
</reference>
<reference anchor="BBRv1-Evaluation" target="https://ieeexplore.ieee.org/document/8117540">
  <front>
    <title>Experimental evaluation of BBR congestion control</title>
    <author initials="M." surname="Zitterbart">
      <organization></organization>
    </author>
    <date year="2017"/>
  </front>
  <seriesInfo name="2017 IEEE 25th International Conference on Network Protocols (ICNP)" value=""/>
</reference>


<reference anchor="RFC5033">
  <front>
    <title>Specifying New Congestion Control Algorithms</title>
    <author fullname="S. Floyd" initials="S." surname="Floyd"/>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <date month="August" year="2007"/>
    <abstract>
      <t>The IETF's standard congestion control schemes have been widely shown to be inadequate for various environments (e.g., high-speed networks). Recent research has yielded many alternate congestion control schemes that significantly differ from the IETF's congestion control principles. Using these new congestion control schemes in the global Internet has possible ramifications to both the traffic using the new congestion control and to traffic using the currently standardized congestion control. Therefore, the IETF must proceed with caution when dealing with alternate congestion control proposals. The goal of this document is to provide guidance for considering alternate congestion control algorithms within the IETF. 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="133"/>
  <seriesInfo name="RFC" value="5033"/>
  <seriesInfo name="DOI" value="10.17487/RFC5033"/>
</reference>

<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="RFC4340">
  <front>
    <title>Datagram Congestion Control Protocol (DCCP)</title>
    <author fullname="E. Kohler" initials="E." surname="Kohler"/>
    <author fullname="M. Handley" initials="M." surname="Handley"/>
    <author fullname="S. Floyd" initials="S." surname="Floyd"/>
    <date month="March" year="2006"/>
    <abstract>
      <t>The Datagram Congestion Control Protocol (DCCP) is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams. DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4340"/>
  <seriesInfo name="DOI" value="10.17487/RFC4340"/>
</reference>

<reference anchor="RFC9260">
  <front>
    <title>Stream Control Transmission Protocol</title>
    <author fullname="R. Stewart" initials="R." surname="Stewart"/>
    <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
    <author fullname="K. Nielsen" initials="K." surname="Nielsen"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>This document describes the Stream Control Transmission Protocol (SCTP) and obsoletes RFC 4960. It incorporates the specification of the chunk flags registry from RFC 6096 and the specification of the I bit of DATA chunks from RFC 7053. Therefore, RFCs 6096 and 7053 are also obsoleted by this document. In addition, RFCs 4460 and 8540, which describe errata for SCTP, are obsoleted by this document.</t>
      <t>SCTP was originally designed to transport Public Switched Telephone Network (PSTN) signaling messages over IP networks. It is also suited to be used for other applications, for example, WebRTC.</t>
      <t>SCTP is a reliable transport protocol operating on top of a connectionless packet network, such as IP. It offers the following services to its users:</t>
      <t>The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9260"/>
  <seriesInfo name="DOI" value="10.17487/RFC9260"/>
</reference>

<reference anchor="RFC9000">
  <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="RFC8836">
  <front>
    <title>Congestion Control Requirements for Interactive Real-Time Media</title>
    <author fullname="R. Jesup" initials="R." surname="Jesup"/>
    <author fullname="Z. Sarker" initials="Z." role="editor" surname="Sarker"/>
    <date month="January" year="2021"/>
    <abstract>
      <t>Congestion control is needed for all data transported across the Internet, in order to promote fair usage and prevent congestion collapse. The requirements for interactive, point-to-point real-time multimedia, which needs low-delay, semi-reliable data delivery, are different from the requirements for bulk transfer like FTP or bursty transfers like web pages. Due to an increasing amount of RTP-based real-time media traffic on the Internet (e.g., with the introduction of the Web Real-Time Communication (WebRTC)), it is especially important to ensure that this kind of traffic is congestion controlled.</t>
      <t>This document describes a set of requirements that can be used to evaluate other congestion control mechanisms in order to figure out their fitness for this purpose, and in particular to provide a set of possible requirements for a real-time media congestion avoidance technique.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8836"/>
  <seriesInfo name="DOI" value="10.17487/RFC8836"/>
</reference>

<reference anchor="RFC8257">
  <front>
    <title>Data Center TCP (DCTCP): TCP Congestion Control for Data Centers</title>
    <author fullname="S. Bensley" initials="S." surname="Bensley"/>
    <author fullname="D. Thaler" initials="D." surname="Thaler"/>
    <author fullname="P. Balasubramanian" initials="P." surname="Balasubramanian"/>
    <author fullname="L. Eggert" initials="L." surname="Eggert"/>
    <author fullname="G. Judd" initials="G." surname="Judd"/>
    <date month="October" year="2017"/>
    <abstract>
      <t>This Informational RFC describes Data Center TCP (DCTCP): a TCP congestion control scheme for data-center traffic. DCTCP extends the Explicit Congestion Notification (ECN) processing to estimate the fraction of bytes that encounter congestion rather than simply detecting that some congestion has occurred. DCTCP then scales the TCP congestion window based on this estimate. This method achieves high-burst tolerance, low latency, and high throughput with shallow- buffered switches. This memo also discusses deployment issues related to the coexistence of DCTCP and conventional TCP, discusses the lack of a negotiating mechanism between sender and receiver, and presents some possible mitigations. This memo documents DCTCP as currently implemented by several major operating systems. DCTCP, as described in this specification, is applicable to deployments in controlled environments like data centers, but it must not be deployed over the public Internet without additional measures.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8257"/>
  <seriesInfo name="DOI" value="10.17487/RFC8257"/>
</reference>

<reference anchor="RFC8312">
  <front>
    <title>CUBIC for Fast Long-Distance Networks</title>
    <author fullname="I. Rhee" initials="I." surname="Rhee"/>
    <author fullname="L. Xu" initials="L." surname="Xu"/>
    <author fullname="S. Ha" initials="S." surname="Ha"/>
    <author fullname="A. Zimmermann" initials="A." surname="Zimmermann"/>
    <author fullname="L. Eggert" initials="L." surname="Eggert"/>
    <author fullname="R. Scheffenegger" initials="R." surname="Scheffenegger"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>CUBIC is an extension to the current TCP standards. It differs from the current TCP standards only in the congestion control algorithm on the sender side. In particular, it uses a cubic function instead of a linear window increase function of the current TCP standards to improve scalability and stability under fast and long-distance networks. CUBIC and its predecessor algorithm have been adopted as defaults by Linux and have been used for many years. This document provides a specification of CUBIC to enable third-party implementations and to solicit community feedback through experimentation on the performance of CUBIC.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8312"/>
  <seriesInfo name="DOI" value="10.17487/RFC8312"/>
</reference>

<reference anchor="RFC3649">
  <front>
    <title>HighSpeed TCP for Large Congestion Windows</title>
    <author fullname="S. Floyd" initials="S." surname="Floyd"/>
    <date month="December" year="2003"/>
    <abstract>
      <t>The proposals in this document are experimental. While they may be deployed in the current Internet, they do not represent a consensus that this is the best method for high-speed congestion control. In particular, we note that alternative experimental proposals are likely to be forthcoming, and it is not well understood how the proposals in this document will interact with such alternative proposals. This document proposes HighSpeed TCP, a modification to TCP's congestion control mechanism for use with TCP connections with large congestion windows. The congestion control mechanisms of the current Standard TCP constrains the congestion windows that can be achieved by TCP in realistic environments. For example, for a Standard TCP connection with 1500-byte packets and a 100 ms round-trip time, achieving a steady-state throughput of 10 Gbps would require an average congestion window of 83,333 segments, and a packet drop rate of at most one congestion event every 5,000,000,000 packets (or equivalently, at most one congestion event every 1 2/3 hours). This is widely acknowledged as an unrealistic constraint. To address his limitation of TCP, this document proposes HighSpeed TCP, and solicits experimentation and feedback from the wider community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3649"/>
  <seriesInfo name="DOI" value="10.17487/RFC3649"/>
</reference>

<reference anchor="RFC4782">
  <front>
    <title>Quick-Start for TCP and IP</title>
    <author fullname="S. Floyd" initials="S." surname="Floyd"/>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <author fullname="A. Jain" initials="A." surname="Jain"/>
    <author fullname="P. Sarolahti" initials="P." surname="Sarolahti"/>
    <date month="January" year="2007"/>
    <abstract>
      <t>This document specifies an optional Quick-Start mechanism for transport protocols, in cooperation with routers, to determine an allowed sending rate at the start and, at times, in the middle of a data transfer (e.g., after an idle period). While Quick-Start is designed to be used by a range of transport protocols, in this document we only specify its use with TCP. Quick-Start is designed to allow connections to use higher sending rates when there is significant unused bandwidth along the path, and the sender and all of the routers along the path approve the Quick-Start Request.</t>
      <t>This document describes many paths where Quick-Start Requests would not be approved. These paths include all paths containing routers, IP tunnels, MPLS paths, and the like that do not support Quick- Start. These paths also include paths with routers or middleboxes that drop packets containing IP options. Quick-Start Requests could be difficult to approve over paths that include multi-access layer- two networks. This document also describes environments where the Quick-Start process could fail with false positives, with the sender incorrectly assuming that the Quick-Start Request had been approved by all of the routers along the path. As a result of these concerns, and as a result of the difficulties and seeming absence of motivation for routers, such as core routers to deploy Quick-Start, Quick-Start is being proposed as a mechanism that could be of use in controlled environments, and not as a mechanism that would be intended or appropriate for ubiquitous deployment in the global Internet. This memo defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4782"/>
  <seriesInfo name="DOI" value="10.17487/RFC4782"/>
</reference>

<reference anchor="RFC9049">
  <front>
    <title>Path Aware Networking: Obstacles to Deployment (A Bestiary of Roads Not Taken)</title>
    <author fullname="S. Dawkins" initials="S." role="editor" surname="Dawkins"/>
    <date month="June" year="2021"/>
    <abstract>
      <t>This document is a product of the Path Aware Networking Research Group (PANRG). At the first meeting of the PANRG, the Research Group agreed to catalog and analyze past efforts to develop and deploy Path Aware techniques, most of which were unsuccessful or at most partially successful, in order to extract insights and lessons for Path Aware networking researchers.</t>
      <t>This document contains that catalog and analysis.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9049"/>
  <seriesInfo name="DOI" value="10.17487/RFC9049"/>
</reference>

<reference anchor="RFC8799">
  <front>
    <title>Limited Domains and Internet Protocols</title>
    <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
    <author fullname="B. Liu" initials="B." surname="Liu"/>
    <date month="July" year="2020"/>
    <abstract>
      <t>There is a noticeable trend towards network behaviors and semantics that are specific to a particular set of requirements applied within a limited region of the Internet. Policies, default parameters, the options supported, the style of network management, and security requirements may vary between such limited regions. This document reviews examples of such limited domains (also known as controlled environments), notes emerging solutions, and includes a related taxonomy. It then briefly discusses the standardization of protocols for limited domains. Finally, it shows the need for a precise definition of "limited domain membership" and for mechanisms to allow nodes to join a domain securely and to find other members, including boundary nodes.</t>
      <t>This document is the product of the research of the authors. It has been produced through discussions and consultation within the IETF but is not the product of IETF consensus.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8799"/>
  <seriesInfo name="DOI" value="10.17487/RFC8799"/>
</reference>

<reference anchor="RFC3714">
  <front>
    <title>IAB Concerns Regarding Congestion Control for Voice Traffic in the Internet</title>
    <author fullname="S. Floyd" initials="S." role="editor" surname="Floyd"/>
    <author fullname="J. Kempf" initials="J." role="editor" surname="Kempf"/>
    <date month="March" year="2004"/>
    <abstract>
      <t>This document discusses IAB concerns about effective end-to-end congestion control for best-effort voice traffic in the Internet. These concerns have to do with fairness, user quality, and with the dangers of congestion collapse. The concerns are particularly relevant in light of the absence of a widespread Quality of Service (QoS) deployment in the Internet, and the likelihood that this situation will not change much in the near term. This document is not making any recommendations about deployment paths for Voice over Internet Protocol (VoIP) in terms of QoS support, and is not claiming that best-effort service can be relied upon to give acceptable performance for VoIP. We are merely observing that voice traffic is occasionally deployed as best-effort traffic over some links in the Internet, that we expect this occasional deployment to continue, and that we have concerns about the lack of effective end-to-end congestion control for this best-effort voice traffic. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3714"/>
  <seriesInfo name="DOI" value="10.17487/RFC3714"/>
</reference>

<reference anchor="RFC6298">
  <front>
    <title>Computing TCP's Retransmission Timer</title>
    <author fullname="V. Paxson" initials="V." surname="Paxson"/>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <author fullname="J. Chu" initials="J." surname="Chu"/>
    <author fullname="M. Sargent" initials="M." surname="Sargent"/>
    <date month="June" year="2011"/>
    <abstract>
      <t>This document defines the standard algorithm that Transmission Control Protocol (TCP) senders are required to use to compute and manage their retransmission timer. It expands on the discussion in Section 4.2.3.1 of RFC 1122 and upgrades the requirement of supporting the algorithm from a SHOULD to a MUST. This document obsoletes RFC 2988. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6298"/>
  <seriesInfo name="DOI" value="10.17487/RFC6298"/>
</reference>

<reference anchor="RFC8868">
  <front>
    <title>Evaluating Congestion Control for Interactive Real-Time Media</title>
    <author fullname="V. Singh" initials="V." surname="Singh"/>
    <author fullname="J. Ott" initials="J." surname="Ott"/>
    <author fullname="S. Holmer" initials="S." surname="Holmer"/>
    <date month="January" year="2021"/>
    <abstract>
      <t>The Real-Time Transport Protocol (RTP) is used to transmit media in telephony and video conferencing applications. This document describes the guidelines to evaluate new congestion control algorithms for interactive point-to-point real-time media.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8868"/>
  <seriesInfo name="DOI" value="10.17487/RFC8868"/>
</reference>

<reference anchor="RFC8867">
  <front>
    <title>Test Cases for Evaluating Congestion Control for Interactive Real-Time Media</title>
    <author fullname="Z. Sarker" initials="Z." surname="Sarker"/>
    <author fullname="V. Singh" initials="V." surname="Singh"/>
    <author fullname="X. Zhu" initials="X." surname="Zhu"/>
    <author fullname="M. Ramalho" initials="M." surname="Ramalho"/>
    <date month="January" year="2021"/>
    <abstract>
      <t>The Real-time Transport Protocol (RTP) is used to transmit media in multimedia telephony applications. These applications are typically required to implement congestion control. This document describes the test cases to be used in the performance evaluation of such congestion control algorithms in a controlled environment.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8867"/>
  <seriesInfo name="DOI" value="10.17487/RFC8867"/>
</reference>

<reference anchor="RFC9392">
  <front>
    <title>Sending RTP Control Protocol (RTCP) Feedback for Congestion Control in Interactive Multimedia Conferences</title>
    <author fullname="C. Perkins" initials="C." surname="Perkins"/>
    <date month="April" year="2023"/>
    <abstract>
      <t>This memo discusses the rate at which congestion control feedback can be sent using the RTP Control Protocol (RTCP) and the suitability of RTCP for implementing congestion control for unicast multimedia applications.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9392"/>
  <seriesInfo name="DOI" value="10.17487/RFC9392"/>
</reference>

<reference anchor="RFC3819">
  <front>
    <title>Advice for Internet Subnetwork Designers</title>
    <author fullname="P. Karn" initials="P." role="editor" surname="Karn"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
    <author fullname="D. Grossman" initials="D." surname="Grossman"/>
    <author fullname="R. Ludwig" initials="R." surname="Ludwig"/>
    <author fullname="J. Mahdavi" initials="J." surname="Mahdavi"/>
    <author fullname="G. Montenegro" initials="G." surname="Montenegro"/>
    <author fullname="J. Touch" initials="J." surname="Touch"/>
    <author fullname="L. Wood" initials="L." surname="Wood"/>
    <date month="July" year="2004"/>
    <abstract>
      <t>This document provides advice to the designers of digital communication equipment, link-layer protocols, and packet-switched local networks (collectively referred to as subnetworks), who wish to support the Internet protocols but may be unfamiliar with the Internet architecture and the implications of their design choices on the performance and efficiency of the Internet. 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="89"/>
  <seriesInfo name="RFC" value="3819"/>
  <seriesInfo name="DOI" value="10.17487/RFC3819"/>
</reference>

<reference anchor="RFC8290">
  <front>
    <title>The Flow Queue CoDel Packet Scheduler and Active Queue Management Algorithm</title>
    <author fullname="T. Hoeiland-Joergensen" initials="T." surname="Hoeiland-Joergensen"/>
    <author fullname="P. McKenney" initials="P." surname="McKenney"/>
    <author fullname="D. Taht" initials="D." surname="Taht"/>
    <author fullname="J. Gettys" initials="J." surname="Gettys"/>
    <author fullname="E. Dumazet" initials="E." surname="Dumazet"/>
    <date month="January" year="2018"/>
    <abstract>
      <t>This memo presents the FQ-CoDel hybrid packet scheduler and Active Queue Management (AQM) algorithm, a powerful tool for fighting bufferbloat and reducing latency.</t>
      <t>FQ-CoDel mixes packets from multiple flows and reduces the impact of head-of-line blocking from bursty traffic. It provides isolation for low-rate traffic such as DNS, web, and videoconferencing traffic. It improves utilisation across the networking fabric, especially for bidirectional traffic, by keeping queue lengths short, and it can be implemented in a memory- and CPU-efficient fashion across a wide range of hardware.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8290"/>
  <seriesInfo name="DOI" value="10.17487/RFC8290"/>
</reference>

<reference anchor="RFC8033">
  <front>
    <title>Proportional Integral Controller Enhanced (PIE): A Lightweight Control Scheme to Address the Bufferbloat Problem</title>
    <author fullname="R. Pan" initials="R." surname="Pan"/>
    <author fullname="P. Natarajan" initials="P." surname="Natarajan"/>
    <author fullname="F. Baker" initials="F." surname="Baker"/>
    <author fullname="G. White" initials="G." surname="White"/>
    <date month="February" year="2017"/>
    <abstract>
      <t>Bufferbloat is a phenomenon in which excess buffers in the network cause high latency and latency variation. As more and more interactive applications (e.g., voice over IP, real-time video streaming, and financial transactions) run in the Internet, high latency and latency variation degrade application performance. There is a pressing need to design intelligent queue management schemes that can control latency and latency variation, and hence provide desirable quality of service to users.</t>
      <t>This document presents a lightweight active queue management design called "PIE" (Proportional Integral controller Enhanced) that can effectively control the average queuing latency to a target value. Simulation results, theoretical analysis, and Linux testbed results have shown that PIE can ensure low latency and achieve high link utilization under various congestion situations. The design does not require per-packet timestamps, so it incurs very little overhead and is simple enough to implement in both hardware and software.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8033"/>
  <seriesInfo name="DOI" value="10.17487/RFC8033"/>
</reference>

<reference anchor="RFC9332">
  <front>
    <title>Dual-Queue Coupled Active Queue Management (AQM) for Low Latency, Low Loss, and Scalable Throughput (L4S)</title>
    <author fullname="K. De Schepper" initials="K." surname="De Schepper"/>
    <author fullname="B. Briscoe" initials="B." role="editor" surname="Briscoe"/>
    <author fullname="G. White" initials="G." surname="White"/>
    <date month="January" year="2023"/>
    <abstract>
      <t>This specification defines a framework for coupling the Active Queue Management (AQM) algorithms in two queues intended for flows with different responses to congestion. This provides a way for the Internet to transition from the scaling problems of standard TCP-Reno-friendly ('Classic') congestion controls to the family of 'Scalable' congestion controls. These are designed for consistently very low queuing latency, very low congestion loss, and scaling of per-flow throughput by using Explicit Congestion Notification (ECN) in a modified way. Until the Coupled Dual Queue (DualQ), these Scalable L4S congestion controls could only be deployed where a clean-slate environment could be arranged, such as in private data centres.</t>
      <t>This specification first explains how a Coupled DualQ works. It then gives the normative requirements that are necessary for it to work well. All this is independent of which two AQMs are used, but pseudocode examples of specific AQMs are given in appendices.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9332"/>
  <seriesInfo name="DOI" value="10.17487/RFC9332"/>
</reference>

<reference anchor="RFC8087">
  <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="RFC3168">
  <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="RFC7567">
  <front>
    <title>IETF Recommendations Regarding Active Queue Management</title>
    <author fullname="F. Baker" initials="F." role="editor" surname="Baker"/>
    <author fullname="G. Fairhurst" initials="G." role="editor" surname="Fairhurst"/>
    <date month="July" year="2015"/>
    <abstract>
      <t>This memo presents recommendations to the Internet community concerning measures to improve and preserve Internet performance. It presents a strong recommendation for testing, standardization, and widespread deployment of active queue management (AQM) in network devices to improve the performance of today's Internet. It also urges a concerted effort of research, measurement, and ultimate deployment of AQM mechanisms to protect the Internet from flows that are not sufficiently responsive to congestion notification.</t>
      <t>Based on 15 years of experience and new research, this document replaces the recommendations of RFC 2309.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="197"/>
  <seriesInfo name="RFC" value="7567"/>
  <seriesInfo name="DOI" value="10.17487/RFC7567"/>
</reference>

<reference anchor="RFC2488">
  <front>
    <title>Enhancing TCP Over Satellite Channels using Standard Mechanisms</title>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <author fullname="D. Glover" initials="D." surname="Glover"/>
    <author fullname="L. Sanchez" initials="L." surname="Sanchez"/>
    <date month="January" year="1999"/>
    <abstract>
      <t>The Transmission Control Protocol (TCP) provides reliable delivery of data across any network path, including network paths containing satellite channels. While TCP works over satellite channels there are several IETF standardized mechanisms that enable TCP to more effectively utilize the available capacity of the network path. This document outlines some of these TCP mitigations. 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="28"/>
  <seriesInfo name="RFC" value="2488"/>
  <seriesInfo name="DOI" value="10.17487/RFC2488"/>
</reference>

<reference anchor="RFC4653">
  <front>
    <title>Improving the Robustness of TCP to Non-Congestion Events</title>
    <author fullname="S. Bhandarkar" initials="S." surname="Bhandarkar"/>
    <author fullname="A. L. N. Reddy" initials="A. L. N." surname="Reddy"/>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <author fullname="E. Blanton" initials="E." surname="Blanton"/>
    <date month="August" year="2006"/>
    <abstract>
      <t>This document specifies Non-Congestion Robustness (NCR) for TCP. In the absence of explicit congestion notification from the network, TCP uses loss as an indication of congestion. One of the ways TCP detects loss is using the arrival of three duplicate acknowledgments. However, this heuristic is not always correct, notably in the case when network paths reorder segments (for whatever reason), resulting in degraded performance. TCP-NCR is designed to mitigate this degraded performance by increasing the number of duplicate acknowledgments required to trigger loss recovery, based on the current state of the connection, in an effort to better disambiguate true segment loss from segment reordering. This document specifies the changes to TCP, as well as the costs and benefits of these modifications. This memo defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4653"/>
  <seriesInfo name="DOI" value="10.17487/RFC4653"/>
</reference>

<reference anchor="RFC6356">
  <front>
    <title>Coupled Congestion Control for Multipath Transport Protocols</title>
    <author fullname="C. Raiciu" initials="C." surname="Raiciu"/>
    <author fullname="M. Handley" initials="M." surname="Handley"/>
    <author fullname="D. Wischik" initials="D." surname="Wischik"/>
    <date month="October" year="2011"/>
    <abstract>
      <t>Often endpoints are connected by multiple paths, but communications are usually restricted to a single path per connection. Resource usage within the network would be more efficient were it possible for these multiple paths to be used concurrently. Multipath TCP is a proposal to achieve multipath transport in TCP.</t>
      <t>New congestion control algorithms are needed for multipath transport protocols such as Multipath TCP, as single path algorithms have a series of issues in the multipath context. One of the prominent problems is that running existing algorithms such as standard TCP independently on each path would give the multipath flow more than its fair share at a bottleneck link traversed by more than one of its subflows. Further, it is desirable that a source with multiple paths available will transfer more traffic using the least congested of the paths, achieving a property called "resource pooling" where a bundle of links effectively behaves like one shared link with bigger capacity. This would increase the overall efficiency of the network and also its robustness to failure.</t>
      <t>This document presents a congestion control algorithm that couples the congestion control algorithms running on different subflows by linking their increase functions, and dynamically controls the overall aggressiveness of the multipath flow. The result is a practical algorithm that is fair to TCP at bottlenecks while moving traffic away from congested links. This document defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6356"/>
  <seriesInfo name="DOI" value="10.17487/RFC6356"/>
</reference>

<reference anchor="RFC8684">
  <front>
    <title>TCP Extensions for Multipath Operation with Multiple Addresses</title>
    <author fullname="A. Ford" initials="A." surname="Ford"/>
    <author fullname="C. Raiciu" initials="C." surname="Raiciu"/>
    <author fullname="M. Handley" initials="M." surname="Handley"/>
    <author fullname="O. Bonaventure" initials="O." surname="Bonaventure"/>
    <author fullname="C. Paasch" initials="C." surname="Paasch"/>
    <date month="March" year="2020"/>
    <abstract>
      <t>TCP/IP communication is currently restricted to a single path per connection, yet multiple paths often exist between peers. The simultaneous use of these multiple paths for a TCP/IP session would improve resource usage within the network and thus improve user experience through higher throughput and improved resilience to network failure.</t>
      <t>Multipath TCP provides the ability to simultaneously use multiple paths between peers. This document presents a set of extensions to traditional TCP to support multipath operation. The protocol offers the same type of service to applications as TCP (i.e., a reliable bytestream), and it provides the components necessary to establish and use multiple TCP flows across potentially disjoint paths.</t>
      <t>This document specifies v1 of Multipath TCP, obsoleting v0 as specified in RFC 6824, through clarifications and modifications primarily driven by deployment experience.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8684"/>
  <seriesInfo name="DOI" value="10.17487/RFC8684"/>
</reference>

<reference anchor="RFC5166">
  <front>
    <title>Metrics for the Evaluation of Congestion Control Mechanisms</title>
    <author fullname="S. Floyd" initials="S." role="editor" surname="Floyd"/>
    <date month="March" year="2008"/>
    <abstract>
      <t>This document discusses the metrics to be considered in an evaluation of new or modified congestion control mechanisms for the Internet. These include metrics for the evaluation of new transport protocols, of proposed modifications to TCP, of application-level congestion control, and of Active Queue Management (AQM) mechanisms in the router. This document is the first in a series of documents aimed at improving the models that we use in the evaluation of transport protocols.</t>
      <t>This document is a product of the Transport Modeling Research Group (TMRG), and has received detailed feedback from many members of the Research Group (RG). As the document tries to make clear, there is not necessarily a consensus within the research community (or the IETF community, the vendor community, the operations community, or any other community) about the metrics that congestion control mechanisms should be designed to optimize, in terms of trade-offs between throughput and delay, fairness between competing flows, and the like. However, we believe that there is a clear consensus that congestion control mechanisms should be evaluated in terms of trade-offs between a range of metrics, rather than in terms of optimizing for a single metric. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5166"/>
  <seriesInfo name="DOI" value="10.17487/RFC5166"/>
</reference>




    </references>


<?line 770?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>Sally Floyd and Mark Allman were the authors of this document's predecessor,
<xref target="RFC5033"/>, which served the community well for over a decade.</t>

<t>Thanks to Richard Scheffenegger for helping to get this revision process
started.</t>

<t>The editors would like to thank Mohamed Boucadair, Neal Cardwell, Reese
Enghardt, Jonathan Lennox, Matt Mathis, Dave Taht, Michael Welzl, Magnus
Westerlund, and Greg White for suggesting improvements to this document.</t>

<t>Discussions with Lars Eggert and Aaron Falk seeded the original RFC5033. Bob
Briscoe, Gorry Fairhurst, Doug Leith, Jitendra Padhye, Colin Perkins, Pekka
Savola, members of TSVWG, and participants at the TCP Workshop at Microsoft
Research all provided feedback and contributions to that document. It also drew
from <xref target="RFC5166"/>.</t>

</section>
<section numbered="false" anchor="evolution-of-rfc5033bis"><name>Evolution of RFC5033bis</name>

<section numbered="false" anchor="since-draft-ietf-ccwg-rfc5033bis-04"><name>Since draft-ietf-ccwg-rfc5033bis-04</name>
<t><list style="symbols">
  <t>Editorial pass after shepherd review.</t>
</list></t>

</section>
<section numbered="false" anchor="since-draft-ietf-ccwg-rfc5033bis-03"><name>Since draft-ietf-ccwg-rfc5033bis-03</name>
<t><list style="symbols">
  <t>Harmonised the "proposed congestion control algorithm"</t>
  <t>Addressed issues.</t>
  <t>Examined RFC-2119 keywords and consistency with other RFCs.</t>
  <t>Added text on constrained environments/limited domains</t>
  <t>Added text on circuit breakers and aligned with other RFCs.</t>
  <t>Several editorial passes</t>
</list></t>

</section>
<section numbered="false" anchor="since-draft-ietf-ccwg-rfc5033bis-02"><name>Since draft-ietf-ccwg-rfc5033bis-02</name>

<t><list style="symbols">
  <t>Added discussion of real-time protocols</t>
  <t>Added discussion of short flows</t>
  <t>Listed properties of wired networks</t>
  <t>Added IoT section</t>
  <t>Added discussion of AQM response</t>
  <t>Rewrote the "Document Status" section</t>
  <t>Adding improved first sentence of abstract and intro.</t>
  <t>Added section on Multicast, noting this is out of scope</t>
  <t>Editorial changes</t>
</list></t>

</section>
<section numbered="false" anchor="since-draft-ietf-ccwg-rfc5033bis-01"><name>Since draft-ietf-ccwg-rfc5033bis-01</name>

<t><list style="symbols">
  <t>Added discussion of multipath transports</t>
  <t>Totally reorganized central sections of the draft</t>
</list></t>

</section>
<section numbered="false" anchor="since-draft-ietf-ccwg-rfc5033bis-00"><name>Since draft-ietf-ccwg-rfc5033bis-00</name>

<t><list style="symbols">
  <t>Added QUIC, other congestion control standards</t>
  <t>Added wireless environments</t>
  <t>Aligned motivation for this work with the CCWG charter</t>
  <t>Refined discussion of QuickStart</t>
</list></t>

</section>
<section numbered="false" anchor="since-draft-scheffenegger-congress-rfc5033bis-00"><name>Since draft-scheffenegger-congress-rfc5033bis-00</name>

<t><list style="symbols">
  <t>Renamed file to reflect WG adpotion</t>
  <t>Updated authorship and acknowledgements.</t>
  <t>Include updated text suggested by Dave Taht</t>
  <t>Added criterion for bufferbloat</t>
  <t>Mentioned CUBIC and BBR as motivation</t>
  <t>Include section to track updates between revisions</t>
  <t>Update references</t>
</list></t>

</section>
<section numbered="false" anchor="since-rfc5033"><name>Since RFC5033</name>

<t><list style="symbols">
  <t>converted to Markdown and xml2rfc v3</t>
  <t>various formatting changes.</t>
</list></t>

</section>
</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="C." surname="Huitema" fullname="Christian Huitema">
      <organization>Private Octopus, Inc.</organization>
      <address>
        <email>huitema@huitema.net</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA7V9WXMbSZLme/yKWNZDk2YAStQt1Y51UxSlUo8OFslqzeza
2lgCCADZSmSiMxOkWDL99/XP3eNKghRrzKYeSgSQGYeH31eMx2PTl33lXtq9
842blYvrsl7aj+7KHjf10nV92dT4s2+byh5Vy6Yt+9W62zPFdNq6S3qNnz3O
fps3s7pY05jztlj049L1i/FsdrUct4vZkwePHk3LblwVPY1uZvQPvXj90k5n
G9P1rSvWL+27k4s3ppl2TeXoqZcWLxlTbtqXtm+3Xf/wwYMXDx6agp5+ad+6
2rVFZa6a9suybbabl7Sez2/NF3dNX81ptLp3be368Wssx9AsRT3/r6Jqalri
tetMty7a/r/+tW14sroxm/Kl/b99MxvZrmlpTYuO/rpe44//Z8ylq7fupbHW
z3YTUp9pLQDkWzxh97H5A3phXZTVS4tPfwNQJk27xDAEtu30pWU4EZTw+88R
VMaYYtuvmpamHNPj1pY1LfPDxL7efnH8hUD7A+2irOO3NHpRl38UWBmBqWmW
lbPv3x/zj07WsuZ3JqvJnN762xJfTmbNmh+hjdCobl72TZtN/XZi3xRlu9q2
dIJx/rfNvHXzwU/5In6vy0vXdmV/bZuFPZq6du5cnS6IkKG9/ptrl5NiOq8n
xWyy/XJzNTPAuZxu+yFUjif2123Z02DJwo5XbUnnU9TZb/nKTtvyknDRfpr1
zWZL5/2unk3Sha3k1b/pvxNCKGPqpl3TAJeEDqasF8kna1+9OhszARAGjl9P
ZkU7v3JVNS5ns3Y5JvIZzwLijGeCOPre5eGffnP84AFePjn+OD6pZ8Wmk3cZ
p/ruktDKzeqxw0/j5bacu6qsCfXplV/P/uPB85e8Vc8Kjn9/9e74pS1sTcR9
cXw6XrSlq+fVtV2Vy9W42zg6Z/reXhYtgbXf47c7R091AMNLe3T8wZ6/e/vp
9Nx+2hB59qCG8+uOQNfZM3dZuquRvWyqiX38cEQkN7FPRnazmdinj8fPHvNw
czqOl5ZI/fn4wTNZXtEuHQFl1fe0v59/njclSOjnwweTw8PHT34+fPyAGMOz
Cf49fPCE3wmkw/+N9V/FlnPCliJ8JchyXtTLvnDxh8E77yb2bOXc4K139T/p
SNJfBq+9n9j/2A5eel92eIm+px8umqbqsmPgbywhle1Xzp5cFtWWkRWkc16u
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
/x+NxbS8rJ8AAA==

-->

</rfc>

