<?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-07" 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="July" day="23"/>

    <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="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="guidelines-for-authors"><name>Guidelines for Authors</name>

<section anchor="guidelines-for-authors-about-evaluation"><name>Guidelines for Authors about Evaluation</name>

<t>This document does not specify specific evaluation methods, short of internet-scale deployment and measurement, to test the criteria described below. There are multiple possible approaches to evaluation. Each has a role, and the most appropriate approach depends on the criteria being evaluated and the maturity of the specification.</t>

<t>For many algorithms, an initial evaluation will consider individual protocol mechanisms in a simulator to analyse their stability and safety across a wide range of conditions, including overload.  For example, <xref target="RFC8869"/> describes evaluation test cases for interactive real-time media over wireless networks. Such results could also be published or discussed in IRTF research groups, such as ICCRG and MAPRG.</t>

<t>Before a proposed congestion control algorithm is published as an Experimental or Standards Track RFC, the community SHOULD gain practical experience with implementation and experience using the algorithm. Where there is implementation by independent teams, this can help provide assurance that a specification has avoided assumptions or ambiguity.
An independent evaluation by multiple teams helps provide assurance that the design meets the evaluation criteria, and can assess typical interactions with other traffic.
This evaluation could use an emulated laboratory environment or a controlled experiment (within a limited domain or at Internet-scale).
Evidence of results is normally considered by the working group in deciding if a specification is ready for publication and ought to be documented in any request for the working group to publish the specification.</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>Strictly speaking, Informational RFCs in the IETF stream need not meet all of
the criteria in this document, as they do not carry a formal recommendation
from the community. Instead, the community judges the publication of
Informational RFCs based on the value of their addition to the RFC series.</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>
<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 times the Bandwidth Delay Product
(BDP). This was unsatisfactory, and indeed further versions provided a fix for 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-congestion-control"><name>Existing General-Purpose Congestion Control</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-congestion-control"><name>Real-Time Congestion Control</name>

<t>General-purpose algorithms 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. See <xref target="RFC8836"/> for a description of the characteristics
of this use case and the resulting requirements.</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>A congestion control algorithm proposal MUST discuss whether it allows for
incremental deployment in the targeted environment. For a mechanism targeted for
deployment in the current Internet, the proposal SHOULD 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 reach consensus 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 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>
<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 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>Varying delay 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>
<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 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="RFC8869">
  <front>
    <title>Evaluation Test Cases for Interactive Real-Time Media over Wireless Networks</title>
    <author fullname="Z. Sarker" initials="Z." surname="Sarker"/>
    <author fullname="X. Zhu" initials="X." surname="Zhu"/>
    <author fullname="J. Fu" initials="J." surname="Fu"/>
    <date month="January" year="2021"/>
    <abstract>
      <t>The Real-time Transport Protocol (RTP) is a common transport choice for interactive multimedia communication applications. The performance of these applications typically depends on a well-functioning congestion control algorithm. To ensure a seamless and robust user experience, a well-designed RTP-based congestion control algorithm should work well across all access network types. This document describes test cases for evaluating performances of candidate congestion control algorithms over cellular and Wi-Fi networks.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8869"/>
  <seriesInfo name="DOI" value="10.17487/RFC8869"/>
</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 790?>

<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, Zahed Sarker, Juergen Schoenwaelder,
Dave Taht, Sean Turner, 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-06"><name>Since draft-ietf-ccwg-rfc5033bis-06</name>
<t><list style="symbols">
  <t>OPSDIR review</t>
  <t>ARTART review</t>
</list></t>

</section>
<section numbered="false" anchor="since-draft-ietf-ccwg-rfc5033bis-05"><name>Since draft-ietf-ccwg-rfc5033bis-05</name>
<t><list style="symbols">
  <t>AD evaluation comments</t>
</list></t>

</section>
<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:
H4sIAAAAAAAAA7V96XPbSJLv9/or8NQfRoog2ZYtn/02ZmRZdmvWh1qSx7v7
4sUGSBZJtECAA4CS2Q7/75u/zKwLpGT1ROzERFskgTqy8r5qOByaruhK+yrb
u1zZSTHbFNU8+2hvs5O6mtu2K+oKf3ZNXWbH5bxuim6xbPdMPh439oZe42dP
kt+m9aTKlzTmtMln3bCw3Ww4mdzOh81s8vTRkyfjoh2WeUejmwn9Qy9uXmXj
ycq0XWPz5avs7PTqranHbV1aeupVhpeMKVbNq6xr1m33+NGjl48em5yefpW9
s5Vt8tLc1s31vKnXq1e0ni/vzLXd0FdTGq3qbFPZbvgGyzE0S15N/zsv64qW
uLGtaZd50/33P9c1T1bVZlW8yv5fV08GWVs3tKZZS39tlvjj/xtzY6u1fWWy
zM22DakvtBYA8h2eyPax+QN6YZkX5asMn/4GoIzqZo5hCGzr8auM4URQwu8/
B1AZY/J1t6gbmnJIj2dZUdEyP4yyN+try18ItD/QLooqfEuj51XxR46VEZjq
el7a7P37E/7RylqW/M5oMZrSW3+b48vRpF7yI7QRGtVOi65ukqnfjbK3edEs
1g2dYJj/XT1t7LT3U7qIz1VxY5u26DZZPcuOx7aZWlvFCyJkaDZ/s818lI+n
1SifjNbX26uZAM7FeN31oXIyyn5dFx0NFi3sZNEUdD55lfyWruy8KW4IF7NP
k65erem8z6rJKF7YQl79m/47IoQypqqbJQ1wQ+hgimoWfcqy168vhkwAhIHD
N6NJ3kxvbVkOi8mkmQ+JfIYTjzjDiSCOvndz+KffHD56hJdPTz4OT6tJvmrl
Xcaprr0htLKTamjx03C+Lqa2LCpCfXrl14v/ePTiFW/VsYKTz6/PTl5leVYR
cV+dnA9nTWGrabnJFsV8MWxXls6Zvs9u8obA2u3x262lp1qA4VV2fPIhuzx7
9+n8Mvu0IvLsQA2Xm5ZA12YX9qawt4Pspi5H2dHjAZHcKHs6yFarUfbsaPj8
iIeb0nG8yojUXwwfPZfl5c3cElAWXUf7+/nnaV2AhH4+fDQ6PDx6+vPh0SNi
DM9H+Pfw0VN+x5MO/2+o/yq2XBK25P4rQZbLvJp3uQ0/9N45G2UXC2t7b51V
v9ORxL/0Xns/yv5j3XvpfdHiJfqefriq67JNjoG/yQipsm5hs9ObvFwzsoJ0
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

-->

</rfc>

