<?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-06" 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="June" day="21"/>

    <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>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 BDP. This was unsatisfactory, and
indeed further versions have fixed this aspect of BBR <xref target="BBR-draft"/>.</t>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This document does not represent a change to any aspect of the TCP/IP protocol
suite and therefore does not directly impact Internet security.  The
implementation of various facets of the Internet's current congestion control
algorithms do have security implications (e.g., as outlined in <xref target="RFC5681"/>).</t>

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

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

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

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor="RFC2914">
  <front>
    <title>Congestion Control Principles</title>
    <author fullname="S. Floyd" initials="S." surname="Floyd"/>
    <date month="September" year="2000"/>
    <abstract>
      <t>The goal of this document is to explain the need for congestion control in the Internet, and to discuss what constitutes correct congestion control. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="41"/>
  <seriesInfo name="RFC" value="2914"/>
  <seriesInfo name="DOI" value="10.17487/RFC2914"/>
</reference>

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

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

<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>

<reference anchor="RFC8961">
  <front>
    <title>Requirements for Time-Based Loss Detection</title>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <date month="November" year="2020"/>
    <abstract>
      <t>Many protocols must detect packet loss for various reasons (e.g., to ensure reliability using retransmissions or to understand the level of congestion along a network path). While many mechanisms have been designed to detect loss, ultimately, protocols can only count on the passage of time without delivery confirmation to declare a packet "lost". Each implementation of a time-based loss detection mechanism represents a balance between correctness and timeliness; therefore, no implementation suits all situations. This document provides high-level requirements for time-based loss detectors appropriate for general use in unicast communication across the Internet. Within the requirements, implementations have latitude to define particulars that best address each situation.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="233"/>
  <seriesInfo name="RFC" value="8961"/>
  <seriesInfo name="DOI" value="10.17487/RFC8961"/>
</reference>

<reference anchor="RFC5681">
  <front>
    <title>TCP Congestion Control</title>
    <author fullname="M. Allman" initials="M." surname="Allman"/>
    <author fullname="V. Paxson" initials="V." surname="Paxson"/>
    <author fullname="E. Blanton" initials="E." surname="Blanton"/>
    <date month="September" year="2009"/>
    <abstract>
      <t>This document defines TCP's four intertwined congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery. In addition, the document specifies how TCP should begin transmission after a relatively long idle period, as well as discussing various acknowledgment generation methods. This document obsoletes RFC 2581. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5681"/>
  <seriesInfo name="DOI" value="10.17487/RFC5681"/>
</reference>

<reference anchor="RFC9002">
  <front>
    <title>QUIC Loss Detection and Congestion Control</title>
    <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
    <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9002"/>
  <seriesInfo name="DOI" value="10.17487/RFC9002"/>
</reference>

<reference anchor="RFC8083">
  <front>
    <title>Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions</title>
    <author fullname="C. Perkins" initials="C." surname="Perkins"/>
    <author fullname="V. Singh" initials="V." surname="Singh"/>
    <date month="March" year="2017"/>
    <abstract>
      <t>The Real-time Transport Protocol (RTP) is widely used in telephony, video conferencing, and telepresence applications. Such applications are often run on best-effort UDP/IP networks. If congestion control is not implemented in these applications, then network congestion can lead to uncontrolled packet loss and a resulting deterioration of the user's multimedia experience. The congestion control algorithm acts as a safety measure by stopping RTP flows from using excessive resources and protecting the network from overload. At the time of this writing, however, while there are several proprietary solutions, there is no standard algorithm for congestion control of interactive RTP flows.</t>
      <t>This document does not propose a congestion control algorithm. It instead defines a minimal set of RTP circuit breakers: conditions under which an RTP sender needs to stop transmitting media data to protect the network from excessive congestion. It is expected that, in the absence of long-lived excessive congestion, RTP applications running on best-effort IP networks will be able to operate without triggering these circuit breakers. To avoid triggering the RTP circuit breaker, any Standards Track congestion control algorithms defined for RTP will need to operate within the envelope set by these RTP circuit breaker algorithms.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8083"/>
  <seriesInfo name="DOI" value="10.17487/RFC8083"/>
</reference>

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

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




    </references>

    <references title='Informative References'>




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

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


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

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


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

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


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


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

<reference anchor="RFC9293">
  <front>
    <title>Transmission Control Protocol (TCP)</title>
    <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="7"/>
  <seriesInfo name="RFC" value="9293"/>
  <seriesInfo name="DOI" value="10.17487/RFC9293"/>
</reference>

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

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

<reference anchor="RFC9000">
  <front>
    <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
    <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
    <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9000"/>
  <seriesInfo name="DOI" value="10.17487/RFC9000"/>
</reference>

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

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

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

<reference anchor="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 784?>

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

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

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

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

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

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

<section numbered="false" anchor="since-draft-ietf-ccwg-rfc5033bis-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:
H4sIAAAAAAAAA7V9aXMbSZLl9/gVsawPTZoBKFG3VDvWTVGUSj06WCSrNbNr
a2MJIABkK5GJzkyQYsn039efu8eVBCnWmM3YWJcIICPj8OP5GePx2PRlX7mX
du9842bl4rqsl/aju7LHTb10XV82Nf7Zt01lj6pl05b9at3tmWI6bd0lPca/
Pc6+mzezuljTmPO2WPTj0vWL8Wx2tRy3i9mTB48eTctuXBU9jW5m9B968Pql
nc42putbV6xf2ncnF29MM+2aytGvXlo8ZEy5aV/avt12/cMHD148eGgK+vVL
+9bVri0qc9W0X5Zts928pPl8fmu+uGv6aE6j1b1ra9ePX2M6ht5S1PP/Kqqm
pileu85066Lt/+tf24ZfVjdmU760/7dvZiPbNS3NadHRv67X+Mf/M+bS1Vv3
0ljr33Zzpz7TXLCRb/ELu4/FH9AD66KsXlr89TdsyqRplxiGtm07fWl5n2iX
8P3PcauMMcW2XzUtvXJMP7e2rGmaHyb29faL4w9ktz/QKso6fkqjF3X5R4GZ
0TY1zbJy9v37Y/7SyVzW/MxkNZnTU39b4sPJrFnzT2ghNKqbl33TZq9+O7Fv
irJdbVs6wfj+t828dfPBV/kkfq/LS9d2ZX9tm4U9mrp27lydToiIob3+m2uX
k2I6ryfFbLL9cnM2M+xzOd32w105nthft2VPgyUTO161JZ1PUWff5TM7bctL
okX7adY3my2d97t6NkkntpJH/6b/nRBBGVM37ZoGuCRyMGW9SP6y9tWrszEz
AFHg+PVkVrTzK1dV43I2a5djYp/xLBDOeCaEo89dHv7pJ8cPHuDhk+OP45N6
Vmw6eZZpqu8uiazcrB47fDVebsu5q8qaSJ8e+fXsPx48f8lL9aLg+PdX745f
2sLWxNwXx6fjRVu6el5d21W5XI27jaNzps/tZdHStvZ7/HTn6FcdtuGlPTr+
YM/fvf10em4/bYg9e3DD+XVHW9fZM3dZuquRvWyqiX38cEQsN7FPRnazmdin
j8fPHvNwczqOl5ZY/fn4wTOZXtEuHW3Kqu9pfT//PG9KsNDPhw8mh4ePn/x8
+PgBCYZnE/z38METfiawDv/fWP+r1HJO1FKEj4RYzot62RcufjF45t3Enq2c
Gzz1rv4nHUn6zeCx9xP7H9vBQ+/LDg/R5/TFRdNUXXYM/IklorL9ytmTy6La
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
EfoPhOFg9TX9TH1kTDq5Yxa4goxB+IGCksXkhk8BEPKOHTJUUxnw6PChniO2
jB80N3EWP/fwkZe2jx895/M6EtuCT5RWeUVbyOAAdjXxiC4mU3E1o+gWE4pn
2jb/pJ0x02v1to7E9GLbsGwh5rKTsMGNKVicT8V+wZ5U9vHk8IVuydNwUsR7
M3og7ucZidYb24i9eT7SzSBOCD8w+ouO5rwEHCPZsd3AOOf3B9SMCbvLprrE
utlhq3ILXwQaMznZ+92aCWimoa8gGZSsQI/qgiZcekmQzGtMV8IwMCAt+g2U
oUwdYo5Bnowi7JsLAhkQYA3qooaQ64pr1lbe3sCMabpLyG7r7Rt6NEN2kNYz
3gTaLuMPmn541WwrqFDafCYJXkaizzy5Z3Nkg8/A8XAnhzIiTXlnZIkSZO+/
Fmux6RYiqli1YX97VxChbTu1FKMhRL/EG1NLgKU+ZKRdEAcD8mKJRJxQ4qn8
GR6sEjjtD23tRygF+ho6ZgTRoBBbHhUde+c6g81c2Hq7njIMJpF2SbKFVEL3
kuxvkDcsEHrLJvIIHcDINuw9blo1DRo+VA8bHPRm28M2tJ4/McVVgUAESW0a
AqyPE6FFrogu8oWydcID47sSrEEjRXKAfczKiDbR2zyd97HyczAbyuW2Fd0+
Gaxl05Cl3Zdiu/uIRZfMLJ/PiF4ulilGWBdfHOZEaq2kRatEX2NW3Xa5dCJP
aHed2F803M/0G9preuXimsaqynXZ68zsmy2OsV0HR1F+kmHOrMHpCLIp02AE
zZY13HACPhzZNJ1CYoaB6UKwD0eDFzDFgqlnxPviSqPHCGcTIOW3z8qW5M+l
F0Ale0aZI63tgF5TyqDduWbnRV3oSNBhIBcCgM22JZTcOu87zMUuE8s2TBqL
IWOjVFDMb0qHITahtcKQNq8Eq2GbEo0Q1pkTvRhxoxQgYZUs0yACnWFTqXVk
Jc4hCpqEXMoa+wBaEWQdJJLyajgkYm3HEze6liEj0kxog9bqXUj8xsm8GBmm
bpMCGD33EjHg7DA/Vmq3vy44pNh/lXqixF5yWFluKpFdWFXFpiPCTL2Fi6Ik
udh51t+Qfi7/EHcajP6/0LLJkkr9FVgIkXhneJvI1F2uNlsSfbTQ4to7Fwhh
59PiI/HWtWAs7+UsYHMxvty12L2C3mUJH7k9W6wbXtN643h1PWxUtkOiCTH0
Ts0bJ9B8CROMpNZ8TFMcL4BjW/evbdkqa7OYrVN32Z2m9MSeFeD1kfohht7L
wluvBCZov8rCCGJeeXXnTwFgB0jUlctV0B0DckysSDPwDervWWGq9YG5uq/8
clZlnlGUPtl51LTgB52bVzJQGOzRh2UefIggRe8N4bfI4lhSm25WsigkzhRj
SJmHng7CWzVpMyPYok6u6LpnJ6VJNmPoo0wWOAJ6UTjAiiQiFtgm0RAB3lz0
rMVK5nXMTXxfCk/AfSS3SPyQgmT+AyJ1N5SvLKdsgw//xz5UGOAMrNhpxtqU
YxiJRmKLkcQP0RYQAw9wRfYwAVnxd6h3yguNjkxXd4O0B25m2rytOFfstGhp
JvJa+mV7zbPO4VLw/3O8RwW1uP6POnYJjAa+jN1wKyVICIOeuY19L3QCJItY
1cDZoIwg7qvZiqxAMkGYTFNGNHrAzIhEvj7So1EJUiSkhLKp3TxLEOwXW0wJ
xxp5OWu6TomHFOpcJJV3uBCRVySnlxCFAtPlUw7GkmYrI6prkazA2uSGfY/Q
xvmQfM7StTEDfnHXGHne2b0Pv59f7I3kv/bjJ/732QkB9LOT1/j3+a9H79+H
f/hfnP/66ff39L3Rf8Unjz99+HDy8bU8TJ/awUcfjv5zT1a+9+n04t2nj0fv
9zyVmUw1iUYKZygmWWYbvSJr4vCxF/OHhy9IzMsfzw+fkcw3V+zmY71SVxKu
YGl5jbMlc44NrIpwW7EhCAU9Tq8gAXkFlNQ63s63uevjSNiXvrntKzn1JJR/
q0IQRr+O0CJR3OJchWtsBfVCx1h6A2/o6eAFrglAbuWQR8Fhx7LYE33cuikJ
9uClw1YHoBHin572XZeEQ2heE3sCgb4SVNPA+vUAd93AH5TEevwYmCrJiM42
dT4jMbl9rGUeR4KTS9OHbmBYOpQ3cEFBQ0TGH4mxLrI22UZwVVB07KAj5bgt
qqCvaeMAb8tOwirwinDSRdMKcC2q686JBEaYZlpWmBhm2hULuByLGSka7AbM
Q4IJtXjAols5cWCxOYiIxcRaLEJNwOjRfQoS9gfVpQvh82RvKdMaEwNcNpeA
wN6PuWZvMtucPvISwjMTew7HJVlUdNiEUhkFMCgiLovOGHjn0xAEOx+C84OT
4RJ/LQcceDc+HJ2evWX0LLLzfpEzaJChI2gYSPN+nQ4RgdkX6Lmhd1aFEBy0
9F4O44EMgntWPDQDvwxmnfwkRvQThPWZWaT37uzBCCSPIYdB3GzPuAKEyBI5
GocaLS9I/LeFxB4IKgy1PDMUYChvQ7ddb9T3RqBoPSXbk5Y5MUd19sKEPGgq
gYl5Hvz27rbXC8CDA5BoBqZFn5sNnkWFu9miAWrufKAq0h8mybsrRnsS0Ckz
+hV6g8ufBnPMYrTUimQlW/7XaZTRen8DiKVy/pj4q30Fg4XYvfTlvIE65GcS
LxgLyYOJNSdYP+eWLALxs9eErAkE3BLgp0DvSvM6mdjBA3M6KWbfcnHj4NjN
Br/qEJWx1mE0Iops6Ca9ZswBrvZe3Py9sBSFM3bKwB+pn9de2xD79NtuqIM4
HiLCPc8NuTtExIZ659yXH3Jpx6+dDDLaOItGpBihz6YiAGpClJJ3QyQmfGRM
VZImwcTO/hqNrmCmISOHTLArp0Y08NHcLVsnQti1PWx+1SRNF378w+iEj2u5
9aZsRZwkhJSTmUl0sYqim3ukG3Kf99qCMN6M8BlepYp9Pnhnqv8JU9FG0SPw
x/Kbew6n6okYOZFyEQVZ11TlXKJtLA80pUbtJLFsoN+idldpQSANWhA6i10L
gWlCqEoOiNNTNKUFwVm4jkPsSbyf7GeYORNALGYTsNFVUSowFsFyc/wh8s13
O2WXzkaUyqwYbDbobY20MB7yqsQwXkx/ipBj2W91vCuvF64ZPwmQEXVMz/kj
0wgPfmtkTwO+AsJ3/IBaX+t4PhgRm80mz4ZsfM6bAAmyn7JsWqy28PElVp0/
UrIe0qchac4/61mfGbUhfXpdCGUmST2w35o+0pBPclAnodcr5t6KP5G8oDVm
aigIgYkmpPvYwVqzQRjBqPU2v2V1iLBkq1OExegzTW4JxxrhoYZVwY/rtVi6
NM+E4z2OhpKcutvG+8Fe0Hg003wfRAoqL/bAsbvnwns2dbMC/y17E1hIfWYW
aeVBydCPQD5kYKfxB8ZzYb86D0gfPX0MQBoTlX4tl6vzkBguTgTe7m6w3zk1
4RtBV4o97pcNSOtNmVo2RF3CKWNmyWH0Lxmq6HoRNb9ty9mXMYnDto8KUJNb
nj1HRDFZxKZokZqyWfm0wtsXESwHTFQFBn4QFucPpwyLYzCTUIhkmcRXhI2+
hYxkKUbW4vGDQCv2Li6IHdiKKyGKOruv4rvVCJZ3/W1rT2k4QDEbSb4kOkXe
yX5ygiPsjKdfX5E+kWOYN0JjyD7tOk0ZwTkeDNYkrvC7FiZZESwPoK0Vhpv0
2PKl4vhpjzfx9NXI+UUyQ2Cb1OmbRtlgsguYfdwJlsdYvK4uST68wXQmMptO
qEJUgh1stcN2FO21eKNj4mgaUC964pONEFNjMFIyPdm+dL6aZwVtFywzMZWU
hUFgPrUIDAv+rgBflisEUoMZvTMnZOhjK/IQo6zQJP5fjzEysLsjhE8Lz1Qy
/JOXZZHJ9pjBdlF0X2ATE77ah815AEb2SbEjdeClnmfNv0EIzwjCThNkiEkR
xnKqlxYNfKFe9MzcnH6zA0QE747/RAJAKml+DI19fHoa0sgIHhlWlAgpn8WQ
ssReLksNQHqkf1sqRNy3aP1putwJF0vRpp2fHCT+Pw5QH+Vpd7+zLPIJdpBF
Jyk3fvspSqlxyqffQU9ZFunUA0KVcj55OZxrGrRu7yEIvQfk2QvQr/3sjbzd
P0cWWAga84SAQVo1bjlX1PAOE85lO5OjVAIkwxT5Z+zQZxy3JtXWm8LTSecz
/RGIRagZxiPHCjN7Nx+NLPQ0hY3xSeRSZq5bFqQR4WbRcz4UNq8zi2JKpoe+
r8X32PKC/cSypI6+Ck66er5pEOCcZMfFJlsLrm3q6GlcbOtZ8DDk4e2BTKX/
Ko16V4KJMVd6+GaqgO5eeMO+pBmwhV7LtokNYbJnVXEwt7Dbzr9YXQ9psgd8
W8gtyG1m5MDFQDHzWQY2csGm2NyPqYbRFu4LRJRM4hsaxk6ubWTDsM4JalLy
egC8MAvbCBPcQQYhxoXFdyZ/seC3Yuk0gzHkOkjeHaY/49ylGPTWl5gBrcWd
TNIksOc7ST0QuXp3JAkzeFWvWPKxIlzBr17DlIlpZgFK+9wAIuo5RKP3nNZR
HcDamdgB9bKwDOImBKoXpf5Z3LJQSSGnZyUvss8Rs68CGkiukQgC1DghzCPO
DvawEqlVajMLlcOdkIO5d4o+NKs1d6qZ4PfWV98ex9E5YN5w1FyzXE88Kcd+
pG8/xfHHfvzvDO/pYezxtLl0g6Bjkvgyx+5x2SlnjIMaM3+ND6SGAx/ktd6m
B9koboP7K0bPiMONKGPm2ujBGp4xO0/DtJX48/KTCVwpMzo1r+QRyvGJYwPA
A4k0eJs6h0gweqv8F3Pjhxot90o9jZgjcoRa22a9IQnFuQ6IKI4RUvSlBWmi
wz1d4kPfNgJzITrN38X98yfO+5oGOJmXpy6JrcTcJiMOU5LLRNtDLw1v9bdv
mqY9ZkL+/v1AHI7n9E6SroE97Sv1R0hUMadvSCPNMA7VND+0hDk0T7DNcDVf
O6y2A2WF34qoKuAH1JRerh2x++XETTQps9aKO+Mr7sSf+KOiJ1nvT1x1oGs4
QnCBLJCsbkLyWYjd7l6VEpHkQJLuQzaRk4S1mIsgqeGwa0yLvXJfUdbXiQnW
r0gkr5pq7g3zZ8hpYfCig3u3B/+cyFUZeG+xrSozpcGbxWJvwlEn/sz6z0ac
y891A0APQ6XAg8fAvvET5zkSnyKvS+eOvPs2plFzRCrk6pLUYRujZKe7vpy9
Mvy7KYENpIJ3QmI6Yp+UgHTqIEu3GtkpxG1wM38t4P00UpMnG52vU4IKm0Jl
v18HMRpbAgA4ZLB5zok5BWMPUiY2ejCLLo+S5ZlGzEIchn7x9JCOyTA3JCkG
7P1qt2AxRVYgswx1lZJ7zgLXfe3xnNnX9dIIB8k2AHgsbLpYjA8FrMEojh0G
t5DOY5cfgwtKafGSXTiT2UnqjKSF7wv5PX34ghPY01UeTPKQpio01xnxEzih
z2yaSeyV33KVeDKY8QcxAKEuE8ir41SsomXQNyuIaiAxybjDyepLbmflpOr8
viyMRBYgDkTq0OgjOCzArUSmlxzF2NKicxAdCHRHeioyTNwlW6plJy7NIemN
DJwSIq7jjqeEJqUbwCVpJgvisXGRqGCIf3Hd1EJTdDhlZ1tWPol2uBzvDAvL
+QAQ7GnVO4hYq6ot4SuSiV2uNTFqKjX9AgJ8yWM37iWq60hWy2KePH3uV+dL
OGIi/w/yf8DWEGgbbV4g/goknEE4oR0NAeq+pKO1b5CsPybIJv/4RDu8/+bd
m08HRibKtIWyUhpgQVJBMxSTGh5JI6wlrwyhLqw1Onqs4gKjSYpC44m6ihYG
NnhGKLPjmCjiItdp9irmr9tn8LJNQT/wWV7zOdZ0VdR98jC/qnZL77EpiU0Q
38FI+DOmD5i0NCoE9m9US0J8Lou164Jbmh17ZA9w3AgkQICJsOTUEPC7EnXr
yy5ZtNInPoFM01U56s0VQD61PsjUjsv00GBhSLUaHCxYmJkb5ZI7qiRPY7Zq
Vtl57ja941z1hw8ePDQ3y6mZJiMZ3o171SFKx8FNM/pknTLl4pb0tUQUrLT4
Z1B8pwngon/hZA/J/G1/u3iDr96eCrW+J2r9b8k4ODoz+abcZISXOEAVa9rs
RYPMb/CNxK1LZL+EnFMZMsoWT/Og/gxYCKcp6ij7zmaoo1xEzsGHzB15ad1F
KMbRwha/YyiviCvm2hbfhwfysygrLhDJ1fXE3NaWww8QbTOES0jGa5kJu4gL
toUL4q2u5xJCAXj53gkSDDkcPKwqQa10yJCut4hUKHTlH455ohJnPFknLHLY
6yMorCDqqhb21etTFRz4ObzffdmhdKRpJXfawCSFnSyVBLEyiDMVF+VXv0EF
tFPvO5MMq+MuhpAn4A8k0VxH9HGD/lrERRkWpZIWCtWpDg0ZA1cE2IpQjGSH
OuVOhjWhvDTqHI/732hOepp5HOrMdkiYYBGp2ZdUV/hMcTlKWKjbzsUV3GES
moFJGBxJ3pyQBi8BUQT8U0aS4XT1nptjZBOZ2GP/a59/7/26dDwkewoJAXFC
HPJkkqqerlyXKPLXknwemDUVlGRGpUnIv+xjXYSPvHBHipFZpKjxSqxmgLq4
a5K3znkNTdDwCSqEKGJbqKTZNesgHuVpFcwV8u2jew8Ftbw5TcxTLLrr9aYn
22mWRtpBEOechPmGx/v2E6dkjnl0+FosIQ2u05Jqgl1Ux2mEEvL2DgsiADiY
rsci0f0LkQ7BE9NzCjvICY+5u9mKr64KYRmeV0V/zCeGEVrySXBnz4trdT15
nbnX0VfQLG2/hyY6vIHiXhch99eIyiTM0azXHPBcOA63dKl5lxYtXJEwIfJE
NTxhQR8382dDcBKpiikMSp5V/kykANjz6J6JhZzPHNwm4BH2/iJvM+6J0W1k
EMPbnu6V7xtBOghCsBAnyAeWgLt8IPJNnII/0ugYyRwhSQpd4mq7R/8Y6fTj
j+CO8FQCjMU5rXUZPvB6P2eIkJmYk1I8F0VE7p9O/cr3OyUJLkpaHqiRfT4k
u9aiw1BHJOV4A8meTE7IxKRi3Av1FwTrkr/YfjiIXZggJMUrJJuZSi5GEJrH
w1WFmFMIBXdkgXoX6rYmJVdUQfwK2BPXJ4u7vonuu7XrOaLjYbbSAbciiuh9
JKGSgI+wMxm+OapTEMKk7vMzsfWhwIymJxwH3r7kX2fl9MOcVAYiXO1TEWu7
OUxoz4dz14vbeHoNji1bTqpDMCj10mh59bY/iMmW9cAUP0HqFzfOVM/j6bYF
rezqSXJvftcMr8znGZSJaD5GssHwvK1Ji7aHsHcQlEkJamLvO0XeZMmcT0rv
q2vj7TS10hCoS/2eYcY7RpdAAa2awCXgmEC4FJ/Fei9U0XpJE/zLf+k4vZXP
bl1wLE3CjTQnZHMS9bKu2pYh+X0grO5ctBhS4W3GWwJgjMAVEhOsm3p811J3
xBjMl1rbrEzdsIQcVc1NH9xcZdLOyzNykQFU4BBhbDb8xmBCNvzGRjtjloyT
+ABJMvGzXalNre727kcXGxpwcZUbQ6b7ZtEepYHkUZ6GZXyrkNtf6tNvOG8k
T6nyQTnsB5qAmtAFVGtj8gjXZ8GEP7RkOaVNDiLJ9wR1rYt/cgs6/8uYKdCF
iG8easGWseXYAS64rBYUub7FXEtTbj1vb3uwIOYy4BsaWMMF9XhKaxq7xYKb
y0hQ32TbL5H3YaECVyUsUrsh8i2350g8xoadDxodf8wo42lsV6BJd/vZIUub
H5UHG3a0Rbife0HCyE9H9vBwcigw5vDh8A0qjc8Q27yA1N4lfr2I3qiITtsF
6WHNGj7bYSKeFyNam3J3VyjNf+A+BiHnRw3OuuRT9XW+JquZ1WCPYnxvI2z7
Ei2GmH6LSzLqMwex7CW3JlJ+916zKfzLqJRhT2tssqQcLmmjmxSxEYeBghz3
Hp51IZnZ9zYKhrpoQ/Zh5A7aUPrzPOm942v/Q7J7rPHZsY+amw3JH0Z7BkeE
DNIlxUMT70x99OJhVmrEdlOeZG187hoaVUVnmm/EdQay5Jg3t2eYodXIKJmo
BN5g9WEz2DGx4Dw+yNoALuh/SIZXbr7kHTkQ4MdMrJvBiIOsnFJSO3zFdTe5
razOtytgDk8zqUSaxloAbcj3JyFGUFtK+LHASDRQEHx3H1qCzYkHyYTskRNz
PfI9MLVPjdE+NXb/4YOHjw9Gw8I3DZFwz1t0yuCkvGH6uyZBmIGKZK6rnAw5
7MBy1+TzbmfiyVNn+e4ZcG8bOqyVpKd4EW1CSr0W6vHJwXvUqNLopVEE/Obe
mkLvnsFc84YoapE0zXxkhrmN9zRL4KqAzf6HMLDWBDoTG1v+pbupPrTCJDnY
4Tq0XoBbtsSiJuESUXroSermPjNWExNoR85yvgpZeFz2wYK/5/YGRCsk0DRq
g7TB195PUjImPte+POYYdv4pJ4zZ/dfnUDGNh2IxLjdKWpV02ylUmoZwk5iw
1OhK9PRGJVgSNI0uLOlXzCkgw8xBEha8HQzQUAnnksDYFVJqxdnVORae3E+k
7MdTotcvdOyZUGMRoJh6EcJVsWmDPmz14dRejoG1R6F5BJoccpL4mpTSGgJF
GixAPg6G0rw7caIgTWg+7psxu658vajkOrEM024upThAfDtCpmPd/4L9XkDJ
nBRAkIjTCNT06gVZcfWnFPXsDiozcon+9zSELPyZ9UgaJXn8vvAp8ZHsGoeb
GuYRpXZbc4SUu+BFaPXuNFSmhmwVn7vnd01rsBDvJUXWamI4NOtgszMvHRj2
PTxo7K7Tjiji4UEGZOIR821IMweZYCxfdMR+gbuKFDoxv1O7k9MDOCkgdRQK
3rKfeGCfwCXz9iwaEu7uDGL9aYUVK2JmlStaJDZWRR17M3M6I4kKRRs3GrrE
MPOzw8eHATi+SwoHXgcQL/t9v/mF/DDFr8GBxNFFPo07KhSUOEWU5HmUkopQ
pGaX/1VevBMalmgEIWYBln2slkAuGponezwUxVhj4tTFjhKLdL/kfUXwYHmg
FZlidrctE2JwrgqONEkmhNgOiRsbeHFz92zFRaNx+JERCVe02g/mKzce+Xz0
0bfX4aZb8Dtt2e4X1w7+1cnlDcgsjYUfku6JF1flF8c9VDkCALBS/glfQNYu
RNzHdBix+UHWZhiv1HKzYaf2g0E8REv2MmevqIyaHWFSpStmJVBN2aG9a+6Y
EBkkzThgoXMQl1/jq1IZdyQOTkkuDFVfC5QuMFSNdUJo1SEWhlS1Nm3skB17
a+7qRCCO/VjUpuOLYwdvRjBdliAFrT5jWqpPyspnKPueC/GAPMS6r02blcJw
CxNO1UwsThMszsMHk0dibT6YPI72plZZ7SdFLVKqoNYlFyZ8+ylNRLyZUfjt
265U1++7Ux2zNEkTmrlN7O81GyJ3A8E8pR3isiS7Ueh1Ws47E6sUPdyNrHgz
exM2bAwHx3r70JdJJgw3beg6l4uaH3oWm5DwcrMFGAKniG75wb1a4KwVaRYB
R9gGTR64s8FlbGNhpr5Jaqf9tTQqwgATtEHfTOwnRL22bed7zmnXZDKN1w4S
xAyG9x7EfO9SG0AbJxIlyoKy7j2DvmVk13PNj1QgsiEurbS1NbefT+ikHTEW
m68eT3ov+P323OeumF56FCbNB6QF1Cix+0Of/7yfY8HBhV56rquGMcLQEeyE
sngBEKcEG1VJXJDNN0bGqFw4olgndY/5kpM7ZbKEv2IpN58tKzbCG3CfSbOA
ubdMBwm34uLFNMYwQj1pxMf3xfFeWGRXacbCwU3Y5N0uxb/W6nHJc9EFkg0n
p7tygdK7KgnGqaPyfmcJ74Lj/jSe2bXSJt7PYADXB4onjzH2Cc5cePPH54B5
BxZNqeepjoyYeD53bs0tTdmVX1wJXYQ4qfK0unnwBQ/ReduUw/F861On9wV1
voIg+Oh0kjUT6y5nXNrRY5DKyXGUk+OPPq0UhMLdF1C6caow+ip03Q69/q/p
NONdVR4Bf2alxmRMx8R/BEtAIo1bacwRXGt/+KgTp8Fy5P7K7kpAMrBJNn1S
n6FJdEqTdHCd1vlDfHCdAVS+lCPZYrlE2AN990Iwz89GUwilrlBAwPVGJsA3
Fvi+g1fsROb3SfEg7cnEvEoi3yAfx/1Mb8TvS91v3hQeVjphhdsBtr720+xN
SWKBAfZEdqHhoqKx4GNIDeZhlrwqSUT721iAE0+I1aQ/JPYSMX1zN+EosLn5
NaSsio9k5qPhYuHL8gPL2rQDOFKwk8PNosuxMihKNS7xTn2O92XzGApLwYK5
0ddBsuGzPE/GPEJLbTEnJSqcTqtsiz4QhjCzSajtF8XNtOPBYc/N6ruo4fzA
rPlANPLzoKR+MdLgC9a99FX1xcVMcvTjsTDeIBTrq5Jjauk/+cIm4I1Bnn7m
8370nDupYXDfI/5Q4xN8W5lKZ00Q8xaQh8j+iOPJx6pUXPbE+X7ffsorTP5n
4B5xb12FqPj9SMRDP+I2SBNpC4AUxFC654cXIanAzRsx9KtxUv2VAMGj/9Ti
0tQNFnFbysDpRnAbDm6alOfq+aSJWHAZUS7neoQwStIZTtXZrZ1kuqTwDBk9
IrFMxsSJ7eqRZaiwSnY+yfVJ5BFB52lJZk2PpA7Nf0iNgHQNJIiOpMGZXKf2
oagLCRLY/aPfPhwQEQEq/BmHw64kAfGypVdImERWDsGMdmyIep4OhiaTwh01
CdHolR0EbFxDOAZZlrbTO+q9P3G7zlykMRuyQ4E9uxBI34bF/AXpld0G/VdA
R75xdT4Z8HW8RBA6PbQzUmCKOumRpK0JgOe5ic/5yKcP8qh9vI+EcayQCstw
5KqE1IV73/VFRAEXnR7vcfOaANz+m9/G/C9//czzhy8efP/+i6RftmoyYyeX
rVwdJ4WfrTmpV1AOc7t/+u4kPM2t339Rn+CVfe8TbPiPxncdPqcNYQRwEcOM
++8fnx+EaNmjh9JW4c+kenTcs7kOUA6XVpwovky7QF0Ef/T+yfEFKnuII8Ux
72Oqp3ZFwtxJrfvSx6+nRKOLUhpDt2T6l9zK378i9SJ+bPpo0NJbPh6k356E
BDzaveOTA5OBX26kMAb8ZTLwG/v8GXJfwLS0PIBDVR6HT7U0KG6cD9mq2fsD
S1byfxlzltx3w3Erk0I1sly1UjAgHR+f4HLbL+wN0YxjDch4P3nO7AKFF2W7
DgnIJgn7NBwu7OKFDlmsWY+RzigekQzDqdTdIOckt14GHISrDDvO8+9CvXbZ
plwUHWP3Izkasex8u4+s1YeJ/S3kVJ494fBwjJOoZZGHf6Wp3G8fvHf9U5D7
YXtOaukRzRY2STh/d+Ox+udf+WDIt59uxGmMXFZ0w7npYxVbhl01aoAbRHBn
WRINb0BZb0nkkaImOcVNMHquhfet/rSEneYlrcQ5q85DfO8UEKd/CPag9sNw
o8zix/EiiRP6+YnPQaR9iI0kllboBlaHXLqQF41+5oyi7T6ykNLssDTQpnUD
B8Ey3O9w25dUcIfq6Xv53I2wmbY69uPJrsfITtjF0AjOdxICDNM4jUmy5N2A
In68h1mOau7f+EfRchuT10C7REOMepFxXUddip/zFoYCWDaivA0SWyepjhXo
zA5hRTb+qp+kfTyH2KOHVh5RvV706W0uDNXFpcH1TRfa/NOb8hzAnNMZ7Zoy
RxX9vCWA/hVRVm8Om9tm72++ZBPCa342JRjRwSoJ6SaMWWGTcukQFtRe58P5
ao20PXqh8wivEojNDaC4xxXWwKE6BBS6mFyDa7W6smJtMrKun3HoP+k2S7P1
d2eGlwivRwtpHaCe0eZHcSdiPo8nTm6sh27w83iHXjijUAKh7flMTaIbGXUW
/1AQ02M26vzX05Q4qtYKcvtTbU2QWFjZJWloK8G/ZmNjdd0xyuJ98nuombSh
5huXLkrD9SKaxukTvjtNHE8MvXDzKRD7MF//YGL+gRu7majjlvu+9+qXEi3q
3Rob2j3uuIxEACQ3jtGgqjOZPZl4tfRp8frMqqILntR4p1vPLiuQqxq8hP6L
0C5F65rlciWxaVTIZN2xkMHjsq6kiklMmhwdX5UkHYvcnCepY4oRLsPuaFWr
PMrMJN222SRmTrL7YjMfJJYRp11wMuO27FZMijwpta61oWbi9hV/kXoM/nzC
0RDBaK8jOnyT2GKowZyiftuTlzS0ya/5Uue6d/4MpAAHdVVIoeAb0Ut1Ku/d
/GLP7r9rCK7yS/gOOClv2egdRzeux71fZ0gtMlC/OFFWM5PMFaa5LeMnM0i7
e2loJszQXcyI5lqCkPApjoINCHZkj09/H8VslxinYC8OVPalxA3TvJRV0/X+
ZgV5x6Yq+OaYNUNwf/MFS3FNkyY9YlDNXg8SorlHH1iHyxzZnxQmGoxwvhkI
Y17KPeIE8v1m+Y55LNsHL6BP0N4/byXfoiWzOUkdqGOZgXjioI28u0gqtjmG
6hlHCwjxYQgIjZVtNnKP8kjaTHJreQkC+exXpVGu3tTm6Nwqftg6y2R3F0m5
E51qlkzii2zV7LSr7boIZUxV02x8/rvHKdyHG7+9ErThMz3T7c5cFfoG9srK
3UWI9qVFSpPUdNqdOybtOr3zXRqV+BhCmiO1s8lBMrUbiIhrehkO3V+KZFdi
IAwnKVXcS6XybqK8BVPn9xeHKdLBytWi/KWHLEI7WhHmL7nj+zENM58QCHtG
JYHWdw8f9Hs6zy//VdbnKYij0yBLxztZ/SAYUvzNMiuxbR4+fu7veuS6YJlD
oFqj5NoNU6FlkwMq03Cl+oVYxstIwzsovn0TVPrdV4d1kqhI5P4R8uhPS/th
WWe8iU9d4F3MVZdKawlxctLjyNvLrWAHjS5NLLSzR7SjAH1vKye9r0Pdz0hs
ct96iRQ45BO/1uNhX38iLvvMy8+N0+9T+Oa7U0vj8BiqC8nErGxDMwrQDNeu
MJHdP+EhjZ/yutbJmYqOgYy5sdq8QWeaiP9i8nhE//NE8M2LSZLsL6kRajeE
NrS5Sz19v56z1sfrUf9icbWW5PJoIx2TPqRb8ks20rqczys3bb667peQpR5L
x9SMzhrOQhryasMmyy0ZfUlm9yZB5mn30sB6wiCqg3xjgjPH90DBbf8/K9A0
gZz7smLTUh3KU/DOkcdPnyDjM7spzER/r8apfHioDfPXODQAM+qL0Q2E79v5
72aXr5q8e+EPakKZh33H59In/biQuNmHiTmZmC9B7LbzOTfd8reFpQ4L7eux
VOAohYmkvrUSjIeamLPsRyR52CrGDsamtyMJMCNXFZPwIS7++pIjrWCqMPIw
x8iqQuEMg8hbw8DUn2Dz1Hk+3JwbNTXxtuQXEy6kSXlXck9lG4Nlpk0DiPbE
X4Fiw+gE0YKrvvQdDIOzLyNb5q/rjfON4LV1jhyU50FtcNuuNadYs9dxMYbH
++KwQzKNtn7gRBsPegbxHS8yQ0jS+VIeKShkhsdQOyl7h6Of0yTy0ueQkz3Y
L0mykBvN1Z4xYRqd1MGKeZzCfw++mcIufRU+p+6G7SSTVmnZ+J8pvOJruHnY
4IjXu7llF25e8Qc+WyOVq0k6DYc9m7oI5kp/r5HxeROFb3EWecPn1Yhsx76u
w9s165tB5WxFFi2uXEdGuPHyi+Z36SpsgW8hy24BvRuIhZ+euuNbNGGt0TNz
x33CaoOz9JWNrFQgJ5kJ0xuivJNJ8wkQ/ok7FN3aNE8jrR3gC/9Uh1tuJXzq
7xvhPrJotjJmo1uM5GQLfZtYb8qacLkv/4K5xyomvCzlOgpBEVI9xU4D1Ipk
WQMEnPlaBeOBeXKXDrqKcMXlIEIR2u3IPYaBPOduLTC9dya9kmeHkOZMJv+0
tojnDQo3tmSVKSZu7I9DTOFCIvUbxT3ltpEZ03EJe/QLimQceATiAjvRP76W
MjRyi7X67C+OheUE46/rGZmMddmFqAfmw9OJrq/kujFtvxDrtcpWxV4d0ppA
ngvY591BROeJtcEpPO3a6L246iz3hZje2lbfizyd3soTs88gptVRk5MsnBqa
cB2OJnUs3xQQhuuFCNw6Dk8Ezu18IAIkHgIRfdq7RatD4oVszL/sgomawZM5
McFyS5KQvlAAFK1IQT267VLTEL40vlW071aFzVWN+0987stSfGeCLvWG822E
apC/tEd3y/48Vy6jx4g1peFDkxvFKyeXduRbEbp+5qUZkK0xaM9dMfM+xlyN
I/3pthsUyvmGk4Mdi1ebQapfAknG1g7i6zmImo9g5hC25SsD7+9Y3S5e2YXv
kozwnQxkdzCQ1sltW/PnucjeyUXmflyUlS/aYfliH1RKvEKe6HjHJW9S/LGb
+/QOdXVx3oR3iuWfPnryVHvWmHgFRbGTpe+WtjjID6eottf491MJFQJAvEak
4Jg7vhPefx37v2tHxGEeY3CwiTMKU9r/3/ahXSOYx217EP3BNYHoeiXG7nTb
dv119L8LGXATRrZIQ/klKXfcpOAhBXpMKVpD1uDslrbj83TSaRN663vQS0h7
zZ+hFb25Xyv6mxeSZ2375VXMVszsoctU4jW8u3ZWboOUwIPkynTZcnY83iV5
16FiUvN8SQMbX7Hmqs7JRjeD0nbtnBx3M78u4TthjaM7DTdGIFyrrMXz7DyV
qAoCqywq0qrWhW+9k7YxT08t8MSwLibmkGkl4eDiDFx/wtfg6UQwh1JvknUz
uYfzOK8Lv63wOmT5R1whl78nveIwQ2Kjn9+dJupyyxcfZwHmMGi42EyNhphk
r7OTOhgzuJuRXuUxa7g9PTvEv8S+cXcXOM99krDfjVQBerlccOpF5eMMw6Zy
rL9hAsb7cpIgEcya5DKVkLqSXmqhCXY6B5PNQfuuar+MSWxV9yNvmm62SWU5
LqpHKQJMzrJHT3WfJOX9k8WaiwJwQ3dQdHFiUiMkJgL8pYg9MjW9O/p49ANK
WnFXT/llEW5VGI/H3EEIgxyFdgFSOP3tpYgMN/+3Pb78aA+JJRwFfkOiSmo8
PxTtF3tUVYgVXIU4cgTfWe/9vyB11c25kqppRyrvn3Aima+G7sh+dPNBhme4
ZktLamgIsrL48Av2kzf2rJxxWuA5CUrSpbVDWauABFdtNOK5dIq50fyKfXpK
NNKhjZUs5yDyxS+dun5Qmqfdmusv9kOzKnCf2KtmS5MgNT6yHx1n37ZzzHNk
zxw0+km9xIRIA/ydsB2bsu9dXTdfR7RpfY//4R6er8EAF8WKfvgBayCD87Or
/qjws2W97cxngLC22vprrd8SuLWfV747jm9ngXwEaWYqRovclJ1d4/c6+D7V
0f2+oEWeYKckDnVUkKC1b4rqC/p9zPUcgoWohzWhtU/NqxZOKNI8b5uWlC76
Oq6gSWlFRPO01hJo4u8lhGpb2NNivrqmXx83xMn21CGzjFZ/6r58KYiqSBUX
yKcFwTHhXJz/4/Nb3xYYzm1CEnwfeO/lnP2MRI5Vs8FntHWE7knxmHDtEaR9
6HMRHNl624KgM94J34c7pnK90/ZiBOCvjBbtMqUePn0qyMSeIHLopaHuy7S8
hWmkvz9a6qCH57h0/WI8m10tx+1ipg+OHzzZ+ezYHr3O73pd62Xj9xr08S2D
ys1GJVv98E4seg7Quw3Jrble8DK55zse3fKOXwn1AoUrFe3dy1e7hxWr5TTX
qsgJJiyicY69HuM+ckRi5Z71cGFKJ/HHJAgoXUh4RMzCfeX8vzRwnYKLn/Nr
b7ubDw4bEXDstpLslR2vPXds5ag48bvt7nt4D3dTk59VHsmIPUWCL+2WX0oe
hrSQGdv3JZt4uZ/yKisdCuMgZqwXT9wyNlIxvfeXfnLmrtpGbdK9wbW5e/lQ
ifyaa39hwB3vY4933tVzMZ7jufq7MOj/2bc44+sJcVEDpydJg4s0ezNjAHWA
3vNMDv/MmaxvejqxmRdNr20+mnZJNihsF0DNVpS9SCWFVDyXe87twd1z++33
d8ejeOXrjcrccKetfyDkTaVMgm+V4tcN37HKmUNsKMD9jYzEkMR6fPz5LRtp
SN4BOcjFQvkucUSLA1o31tmlynyMSUMw3G/RZ65mPb0o/a1VfA+vpRkVZEIp
5f2+mYsfWSDLqtwIU+etk5ib32lofquPsFRQ7SvWZ1DlYQu12kR3aJrcijC2
HyQRxvke6Hgv99Dukp1N3uvJXIIqpMpkIl3wt3hQ04V12XCdWErfqq5u2zjO
0Wk1IQr4bo62C5jd13X1kPbeXj6inwUTgLtApUEqUhz/H1JY0UUYpwAA

-->

</rfc>

