<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mboned-cbacc-04" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <front>
    <title abbrev="CBACC">Circuit Breaker Assisted Congestion Control</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mboned-cbacc-04"/>
    <author initials="J." surname="Holland" fullname="Jake Holland">
      <organization>Akamai Technologies, Inc.</organization>
      <address>
        <postal>
          <street>150 Broadway</street>
          <city>Cambridge, MA 02144</city>
          <country>United States of America</country>
        </postal>
        <email>jakeholland.net@gmail.com</email>
      </address>
    </author>
    <date year="2022" month="March" day="07"/>
    <area>Ops</area>
    <workgroup>Mboned</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies Circuit Breaker Assisted Congestion Control (CBACC).
CBACC enables fast-trip Circuit Breakers by publishing rate metadata about multicast channels from senders to intermediate network nodes or receivers.
The circuit breaker behavior is defined as a supplement to receiver driven congestion control systems, to preserve network health if misbehaving or malicious receiver applications subscribe to a volume of traffic that exceeds capacity policies or capability for a network or receiving device.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>This document defines Circuit Breaker Assisted Congestion Control (CBACC).
CBACC defines a Network Transport Circuit Breaker (CB), as described by <xref target="RFC8084" format="default"/>.</t>
      <t>The CB behavior defined in this document uses bit-rate metadata about multicast data streams coupled with policy, capacity, and load information at a network location to prune multicast channels so that the network's aggregate capacity at that location is not exceeded by the subscribed channels.</t>
      <t>To communicate the required metadata, this document defines a YANG <xref target="RFC7950" format="default"/> module that augments the DORMS <xref target="I-D.draft-ietf-mboned-dorms" format="default"/> YANG module.
DORMS provides a mechanism for senders to publish metadata about the multicast streams they're sending through a RESTCONF service, so that receivers or forwarding nodes can discover and consume the metadata with a set of standard methods.
The CBACC metadata MAY be communicated to receivers or forwarding nodes by some other method, but the definition of any alternative methods is out of scope for this document.</t>
      <t>The CB behavior defined in this document matches the description provided in Section 3.2.3 of <xref target="RFC8084" format="default"/> of a unidirectional CB over a controlled path.
The control messages from that description are composed of the messages containing the metadata required for operation of the CB.</t>
      <t>CBACC is designed to supplement protocols that use multicast IP and rely on well-behaved receivers to achieve congestion control.
Examples of congestion control systems fitting this description include <xref target="PLM" format="default"/>, <xref target="RLM" format="default"/>, <xref target="RLC" format="default"/>, <xref target="FLID-DL" format="default"/>, <xref target="SMCC" format="default"/>, and WEBRC <xref target="RFC3738" format="default"/>.</t>
      <t>CBACC addresses a problem with "overjoining" by untrusted receivers.</t>
      <t>In an overjoining condition, receivers (either malicious, misconfigured, or with implementation errors) subscribe to multicast channels but do not respond appropriately to congestion.
When sufficient multicast traffic is available for subscription by such receivers, this can overload any network.</t>
      <t>The overjoining problem is relevant to misbehaving receivers for both receiver-driven and feedback-driven congestion control strategies, as described in Section 4.1 of <xref target="RFC8085" format="default"/>.</t>
      <t>Overjoining attacks and the challenges they present are discussed in more detail in <xref target="ref-overjoining" format="default"/>.</t>
      <t>CBACC offers a solution for the recommendation in Section 4 of <xref target="RFC8085" format="default"/> that circuit breaker solutions be used even where congestion control is optional.</t>
      <section anchor="background-and-terminology" numbered="true" toc="default">
        <name>Background and Terminology</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" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="venue" numbered="true" toc="default">
        <name>Venues for Contribution and Discussion</name>
        <t>This document is in the Github repository at:</t>
        <t>https://github.com/GrumpyOldTroll/ietf-dorms-cluster</t>
        <t>Readers are welcome to open issues and send pull requests for this document.</t>
        <t>Please note that contributions may be merged and substantially edited, and as a reminder, please carefully consider the Note Well before contributing: https://datatracker.ietf.org/submit/note-well/</t>
        <t>Substantial discussion of this document should take place on the MBONED working group mailing list (mboned@ietf.org).</t>
        <ul spacing="normal">
          <li>Join: https://www.ietf.org/mailman/listinfo/mboned</li>
          <li>Search: https://mailarchive.ietf.org/arch/browse/mboned/</li>
        </ul>
      </section>
      <section anchor="non-obvious-doc-choices" numbered="true" toc="default">
        <name>Non-obvious doc choices</name>
        <ul spacing="normal">
          <li>Since nothing is necessarily being actively measured by a network component at the ingress, referring to the bitrate advertisement as an "ingress meter" for this context was considered confusing by reviewers, so the section was renamed with just a note pointing to the link.  Likewise the egress meter and "CB node".</li>
          <li>TBD: might need more and better examples explaining the point in <xref target="ordering" format="default"/>?  Some reason to believe it's not sufficiently clear...</li>
          <li>Another TBD: consider Dino's suggestion from 2020-04-09 to include an operational considerations section that addresses some possible optimizations for CB placement and configuration.</li>
          <li>TBD: add a section walking through the requirements in <eref target="https://datatracker.ietf.org/doc/html/rfc8084#section-4">https://datatracker.ietf.org/doc/html/rfc8084#section-4</eref> and explaining how this matches.</li>
          <li>I'm unclear on whether <eref target="https://datatracker.ietf.org/doc/html/rfc8407#section-3.8.2">https://datatracker.ietf.org/doc/html/rfc8407#section-3.8.2</eref> applies here, such that providing an augmentation inside the DORMS namespace causes an update to the DORMS document.</li>
        </ul>
      </section>
    </section>
    <section anchor="circuit-breaker-behavior" numbered="true" toc="default">
      <name>Circuit Breaker Behavior</name>
      <section anchor="functional-components" numbered="true" toc="default">
        <name>Functional Components</name>
        <t>This section maps the functional components described in Section 3.1 of <xref target="RFC8084" format="default"/> to the operational components of the CBACC CB defined by this document.</t>
        <section anchor="bit-ad" numbered="true" toc="default">
          <name>Bitrate Advertisement</name>
          <t>The metadata provides an advertised maximum data bit-rate, namely the "max-speed" field in the YANG model in <xref target="ref-yang" format="default"/>.
This is a self-report by the sender about the maximum amount of traffic a sender will send within any time interval given by the "data-rate-window" field, which is the measurement interval for the CB.
This value refers to the total IP Payload data for all packets in the same (S,G), and its units are in kilobits per second.</t>
          <t>The sender MUST NOT send more data for a data stream than the amount of data declared according to its advertised data rate within any measurement window, and it's RECOMMENDED for the sender to provide some margin to account for the possibility of burst forwarding after traffic encounters a non-empty queue, e.g. as sometimes observed with ACK compression (see <xref target="ZSC91" format="default"/> for a description of the phenomenon).
If a CB node observes a higher data rate transmitted within any measurement window, it MAY circuit-break that flow immediately.</t>
          <t>In the terminology of <xref target="RFC8084" format="default"/>, the bitrate advertisement qualifies as an ingress meter.</t>
        </section>
        <section anchor="cb-node" numbered="true" toc="default">
          <name>Circuit Breaker Node</name>
          <t>A circuit breaker node (CB node) is a location in a network where the costraints of the network and the observations about active traffic are compared to the bitrate advertisement in order to make the decision loop about when and whether to perform the circuit breaking behavior.
In the terminology of <xref target="RFC8084" format="default"/>, the CB node qualifies as an egress meter.</t>
          <t>The CB node has access to several pieces of information that can be used as relevant egress metrics that may include:</t>
          <ol spacing="normal" type="1"><li>Physical capacity limits on each interface.</li>
            <li>Configured capacity limits for multicast traffic for each interface.</li>
            <li>The observed received data rates of subscribed multicast channels with CBACC metadata.</li>
            <li>The observed received data rates of subscribed multicast channels without CBACC metadata.</li>
            <li>The observed received data rates of competing non-multicast traffic.</li>
            <li>The loss rate for subscribed multicast channels, when available.
The loss rate is only sometimes observable at a CB node; for example, when using AMBI <xref target="I-D.draft-ietf-mboned-ambi" format="default"/>, or when the data stream carries a protocol that is known to the CB node by some out of band means, and whose traffic can be monitored for loss.
When available, the loss rates may be used.</li>
          </ol>
          <t>Note that any on-path router can behave as a CB node, even though there may be other CB nodes downstream or upstream covering the same data streams.
When viewing CB nodes as egress meters in the context of <xref target="RFC8084" format="default"/>, it's important to recall there's not a single egress meter in the network, but rather an egress meter per CB node, representing potentially multiple overlaid circuit breakers that may redundantly cover parts of the same path, with potentially different constraints based on the network location where the egress meter operates.
All of the CB nodes anywhere on a path constitute separate circuit breakers that may trip independently of other circuit breakers.</t>
          <t>Also note that other kinds of components besides on-path routers forwarding the traffic can act as CB nodes, for example the operating system or browser on a device receiving the traffic, or the receiving application itself.</t>
        </section>
        <section anchor="communication-method" numbered="true" toc="default">
          <name>Communication Method</name>
          <t>CBACC generally operates at a CB node, where metrics such as those described in <xref target="cb-node" format="default"/> are available through system calls, or by communication with various locally deployable system monitoring applications.
However, the CBACC processing can equivalently occur on a separate device that can monitor statistics gathered at a CB node, as long as the necessary control functions to trigger the CB can be invoked.</t>
          <t>The communication path defined in this document for the CB node to obtain the bitrate advertisement in <xref target="bit-ad" format="default"/> is the use of DORMS <xref target="I-D.draft-ietf-mboned-dorms" format="default"/>.
Other methods MAY be used as well or instead, but are out of scope for this document.</t>
        </section>
        <section anchor="measurement-function" numbered="true" toc="default">
          <name>Measurement Function</name>
          <t>The measurement function maintains a few values for each interface, computed from the metrics described in <xref target="cb-node" format="default"/> and <xref target="bit-ad" format="default"/>:</t>
          <ol spacing="normal" type="1"><li>The aggregate advertised maximum bit-rate capacity consumed by CBACC data streams.
This is the sum of the max-speed values in the CBACC metadata for all data streams subscribed through an interface</li>
            <li>
              <t>An oversubscription threshold for each interface.
The oversubscription threshold will be determined differently for CB nodes in different contexts.
In some network devices, it might be as simple as an administratively configured absolute value or proportion of an interface's capacity.
For other situations, like a CB node operating in a context with loss visibility, it could be a dynamically changing value that grows when data streams are successfully subscribed and receiving data without loss, and shrinks as loss is observed across subscribed data streams.
The oversubscription threshold calculation could also incorporate other information like out-of-band path capacity measurements with bandwidth detection techniques such as <xref target="PathChirp" format="default"/> or <xref target="CapProbe" format="default"/>.  </t>
              <t>
This document covers some non-normative examples of valid oversubscription threshold functions in <xref target="ref-oversubscribe-thresh" format="default"/>.
In general, the oversubscription threshold is the primary parameter that different CBs in different contexts can tune to provide the safety guarantees necessary for their context.</t>
            </li>
          </ol>
        </section>
        <section anchor="trigger-function" numbered="true" toc="default">
          <name>Trigger Function</name>
          <t>The trigger function fires when the aggregate advertised maximum bit-rate exceeds the oversubscription threshold for any interface.</t>
          <t>When oversubscribed, the trigger function changes the states of subscribed channels to "blocked" until the aggregate subscribed bit-rate is below the oversubscription threshold again.</t>
          <section anchor="ordering" numbered="true" toc="default">
            <name>Fairness and Inter-flow Ordering</name>
            <t>The trigger function orders the monitored flows according to a fairness function and a within-sender priority ordering (chosen by the sender as part of the CBACC metadata).
When flows are blocked, they're blocked in order until the aggregate bitrate of the permitted flows do not exceed the oversubscription thresholds monitored by the CB node.</t>
            <t>Flows from a single sender MUST be ordered according to their priority field from the CBACC metadata when compared with each other.  This takes precedence over the fairness function ordering, since certain flows from the same sender may need strict priority over others.</t>
            <t>For example, consider a sender using File Delivery over Unidirectional Transport (FLUTE, defined in <xref target="RFC6726" format="default"/>) that sends File Delivery Table (FDT) Instances (see section 3.2 of <xref target="RFC6726" format="default"/>) in one (S,G) and data for the various referenced files in other (S,G)s.
In this case the data for the files will not be consumable without the (S,G) containing the FDT.
Other transport protocols may similarly send control information (often with a lower bitrate) on one channel, and data information on another.
In these cases, the sender may need to ensure that data channels are only available when the control channels are also available.</t>
            <t>When comparing flows between senders, (S,G)s from the same sender with different priorities should be treated as aggregated (S,G)s with regard to their declared bitrate consumption, to ensure that if any flows from the same sender need to be pruned by the circuit-breaker, the least preferred priority flows from that sender are pruned first.</t>
            <t>Between-sender flows and flows from the same sender with the same priority are ordered according to the fairness function.  TBD: need to work thru detsils, this does not work as written.  Sample fairness function would reward senders for splitting a flow in 2 (more total subscribers).  Maybe should count offload instead?  This has trouble from favoring padding in your flow, but is (i think?) dominated by subscriber count where that's known.
The fairness function can be different for CBs in different contexts.</t>
            <t>A CBACC CB implementation SHOULD provide mechanisms for administrative controls to configure explicit biases, as this may be necessary to support Service Level Agreements for specific events or providers, or to block or de-prioritize channels with historically known misbehavior.</t>
            <t>Subject to the above constraints, where possible the default fairness behavior SHOULD favor streams with many receivers over streams with few receivers, and streams with a low bit-rate over streams with a high bit-rate.  See <xref target="fairness" format="default"/> for further considerations and examples.</t>
          </section>
        </section>
        <section anchor="reaction" numbered="true" toc="default">
          <name>Reaction</name>
          <t>When the trigger function fires and a subscribed channel becomes blocked, the reaction depends on whether it's an upstream interface or a downstream interface.</t>
          <t>If a channel is blocked on one or more downstream interfaces, it may still be unblocked on other downstream interfaces.
When this is the case, traffic is simply not forwarded along blocked interfaces, even though clients might still be joined downstream of those interfaces.</t>
          <t>When a channel is blocked on all downstream interfaces or when the upstream interface is oversubscribed, the channel is pruned so that data no longer arrives from the network on the upstream interface.
The prune would be performed with a PIM prune (Section 3.5 of <xref target="RFC7761" format="default"/>), or a "leave" operation to be communicated via IGMP, MLD, or another multicast group signaling mechanism, according to the expected signaling within the network.</t>
          <t>Once initially pruned, a flow SHOULD remain pruned for a minimum amount of time.
The minimum hold-down duration SHOULD be no less than 2.5 minutes by default, even if available bitrate space clears up, to ensure downstream subscriptions will notice and respond.
The hold-down duration SHOULD be extended from the minimum by a randomly chosen number of seconds uniformly distributed over a configurable desynchronization period, to avoid synchronized recovery of different circuit breakers along the path.
The default length of the desynchronization period should be at least 30 seconds.</t>
          <t>2.5 minutes is chosen to exceed the default maximum lifetime of 2 minutes that can occur if an IGMP responder suddenly stops operation, and ceases responding to IGMP queries with membership reports, and 30 seconds is chosen to allow for some flexibility in lost packets.
The values MAY be administratively tuned as needed by network operators to meet performance goals specific to their networks or to the traffic they're forwarding.</t>
          <t>When enough capacity is available for a circuit-broken stream to be unblocked and the circuit-breaker hold-down time is expired, flows SHOULD be unblocked according to the priority order until no more flows can be unblocked without exceeding the circuit breaker limits.</t>
        </section>
        <section anchor="feedback-control-mechanism" numbered="true" toc="default">
          <name>Feedback Control Mechanism</name>
          <t>The bitrate advertisement metadata from <xref target="bit-ad" format="default"/> should be refreshed as needed to maintain up to date values.
When using DORMS and RESTCONF, the Subscription to YANG Notifications for Datastore Updates <xref target="RFC8641" format="default"/> is the preferred method to receive changes if available.</t>
          <t>If datastore subscriptions are not supported by the client or server, the HTTP Cache Control headers provide valid refresh time properties from the server, and SHOULD be used if present.
If No-Cache is used, the default refresh timing SHOULD be 30 seconds.
A uniformly distributed random value between 0 and 10 seconds SHOULD be added to the Cache Control or the default refresh timing to avoid synchronization across multiple clients.</t>
        </section>
      </section>
      <section anchor="states" numbered="true" toc="default">
        <name>States</name>
        <section anchor="interface-state" numbered="true" toc="default">
          <name>Interface State</name>
          <t>A CB holds the following state for each interface, for both the inbound and outbound directions on that interface:</t>
          <ul spacing="normal">
            <li>aggregate bandwidth:  The sum of the bandwidths of all non-circuit-broken CBACC flows that transit this interface in this direction.</li>
            <li>
              <t>bandwidth limit:  The maximum aggregate CBACC advertised bandwidth allowed, not including circuit-broken flows.  </t>
              <t>
When reducing the bandwidth limit due to congestion, the circuit breaker SHOULD NOT reduce the limit by more than half its value in 10 seconds, and SHOULD use a smoothing function to reduce the limit gradually over time.  </t>
              <t>
It is RECOMMENDED that no more than half the capacity for a link be allocated to CBACC flows if the link might be shared with unicast traffic that is responsive to congestion.</t>
            </li>
          </ul>
        </section>
        <section anchor="flow-state" numbered="true" toc="default">
          <name>Flow State</name>
          <t>Data streams with CBACC metadata have a state for the upstream interface through which the stream is joined:</t>
          <ul spacing="normal">
            <li>
              <t>'subscribed'</t>
              <t>
Indicates that the circuit breaker is subscribed upstream to the flow and forwarding packets through zero or more egress interfaces.</t>
            </li>
            <li>
              <t>'pruned'</t>
              <t>
Indicates that the flow has been circuit-broken.
A request to unsubscribe from the flow has been sent upstream, e.g. a PIM prune (Section 3.5 of <xref target="RFC7761" format="default"/>) or a "leave" operation communicated via IGMP, MLD, or another group membership management mechanism.</t>
            </li>
          </ul>
          <t>Data streams also have a per-interface state for downstream interfaces with subscribers, where the data is being forwarded.
It's one of:</t>
          <ul spacing="normal">
            <li>
              <t>'forwarding'</t>
              <t>
Indicates that the flow is a non-circuit-broken flow in steady state, forwarding packets downstream.</t>
            </li>
            <li>
              <t>'blocked'</t>
              <t>
Indicates that data packets for this flow are NOT forwarded downstream via this interface.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="implementation-design-considerations" numbered="true" toc="default">
        <name>Implementation Design Considerations</name>
        <section anchor="ref-oversubscribe-thresh" numbered="true" toc="default">
          <name>Oversubscription Thresholds</name>
          <t>TBD.</t>
        </section>
        <section anchor="fairness" numbered="true" toc="default">
          <name>Fairness Functions</name>
          <t>As an example fairness function that makes good sense for a general case of unknown traffic:</t>
          <t>Consider a network where the receiver count for multicast channels is known, for example via the experimental PIM extension for population count defined in <xref target="RFC6807" format="default"/>.</t>
          <t>A good fairness metric for a flow is max-bandwidth divided by receiver-count, with lower values of the fairness metric favored over higher values.</t>
          <t>An overview of some other approaches to appropriate fairness metrics is given in Section 2.3 of <xref target="RFC5166" format="default"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="ref-yang" numbered="true" toc="default">
      <name>YANG Module</name>
      <section anchor="tree-diagram" numbered="true" toc="default">
        <name>Tree Diagram</name>
        <t>The tree diagram below follows the notation defined in <xref target="RFC8340" format="default"/>.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
module: ietf-cbacc

  augment /dorms:dorms/dorms:metadata/dorms:sender/dorms:group:
    +--rw cbacc!
       +--rw max-speed           uint32
       +--rw max-packet-size?    uint16
       +--rw data-rate-window?   uint32
       +--rw priority?           uint16

]]></artwork>
      </section>
      <section anchor="module" numbered="true" toc="default">
        <name>Module</name>
        <sourcecode name="" type="" markers="true"><![CDATA[ file ietf-cbacc@2022-03-07.yang
module ietf-cbacc {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-cbacc";
  prefix "cbacc";

  import ietf-dorms {
    prefix "dorms";
    reference "I-D.jholland-mboned-dorms";
  }

  organization "IETF";

  contact
      "Author:   Jake Holland
                 <mailto:jholland@akamai.com>
      ";

  description
  "Copyright (c) 2019 IETF Trust and the persons identified as
   authors of the code.  All rights reserved.

   Redistribution and use in source and binary forms, with or
   without modification, is permitted pursuant to, and subject to
   the license terms contained in, the Simplified BSD License set
   forth in Section 4.c of the IETF Trust's Legal Provisions
   Relating to IETF Documents
   (https://trustee.ietf.org/license-info).

   This version of this YANG module is part of
   draft-jholland-mboned-cbacc.  See the internet draft for full
   legal notices.

   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 (RFC 2119) (RFC 8174) when, and only when,
   they appear in all capitals, as shown here.

   This module contains the definition for bandwidth consumption
   metadata for SSM channels, as an extension to DORMS
   (draft-ietf-mboned-dorms).";

  revision 2021-07-08 {
    description "Draft version, post-early-review.";
    reference
      "draft-ietf-mboned-cbacc";
  }

  augment
    "/dorms:dorms/dorms:metadata/dorms:sender/dorms:group" {
      description "Definition of the manifest stream providing
          integrity info for the data stream";

    container cbacc {
      presence "CBACC-enabled flow";
      description
        "Information to enable fast-trip circuit breakers";
      leaf max-speed {
        type uint32;
        units "kilobits/second";
        mandatory true;
        description "Maximum bitrate for this stream, in Kilobits
            of IP packet data (including headers) of native
            multicast traffic per second";
      }
      leaf max-packet-size {
        type uint16;
        default 1400;
        description "Maximum IP payload size, in octets.";
      }
      leaf data-rate-window {
          type uint32;
          units "milliseconds";
          default 2000;
          description
            "Time window over which data rate is guaranteed,
             in milliseconds.";
          /* TBD: range limits? */
      }
      leaf priority {
          type uint16;
          default 256;
          description
            "The relative preference level for keeping this flow
             compared to other flows from this sender (higher
             value is more preferred to keep)";
      }
    }
  }
}

]]></sourcecode>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="yang-module-names-registry" numbered="true" toc="default">
        <name>YANG Module Names Registry</name>
        <t>This document adds one YANG module to the "YANG Module Names" registry maintained at &lt;https://www.iana.org/assignments/yang-parameters&gt;.
The following registrations are made, per the format in Section 14 of <xref target="RFC6020" format="default"/>:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
      name:      ietf-cbacc
      namespace: urn:ietf:params:xml:ns:yang:ietf-cbacc
      prefix:    cbacc
      reference: I-D.draft-ietf-mboned-cbacc
]]></artwork>
      </section>
      <section anchor="the-xml-registry" numbered="true" toc="default">
        <name>The XML Registry</name>
        <t>This document adds the following registration to the "ns" subregistry of the "IETF XML Registry" defined in <xref target="RFC3688" format="default"/>, referencing this document.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
       URI: urn:ietf:params:xml:ns:yang:ietf-cbacc
       Registrant Contact: The IESG.
       XML: N/A, the requested URI is an XML namespace.
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TBD: Yang Doctor review from Reshad said this should "mention the YANG data nodes".  I think this means "do what https://tools.ietf.org/html/rfc8407#section-3.7 says"?</t>
      <section anchor="metadata-security" numbered="true" toc="default">
        <name>Metadata Security</name>
        <t>Be sure to authenticate the metadata.
See DORMS security considerations, and don't accept unauthenticated metadata if using an alternative means.</t>
      </section>
      <section anchor="denial-of-service" numbered="true" toc="default">
        <name>Denial of Service</name>
        <section anchor="state-overload" numbered="true" toc="default">
          <name>State Overload</name>
          <t>Since CBACC flows require state, it may be possible for a set of receivers and/or senders, possibly acting in concert, to generate many flows in an attempt to overflow the circuit breakers' state tables.</t>
          <t>It is permissible for a network node to behave as a CBACC circuit breaker for some CBACC flows while treating other CBACC flows as non-CBACC, as part of a load balancing strategy for the network as a whole, or simply as defense against this concern when the number of monitored flows exceeds some threshold.</t>
          <t>The same techniques described in Section 3.1 of <xref target="RFC4609" format="default"/> can be used to help mitigate this attack, for much the same reasons.
It is RECOMMENDED that network operators implement measures to mitigate such attacks.</t>
        </section>
      </section>
    </section>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>Many thanks to Devin Anderson, Ben Kaduk, Cheng Jin, Scott Brown, Miroslav Ponec, Bob Briscoe, Lenny Giuliani, Christian Worm Mortensen, Dino Farinacci, and Reshad Rahman for their thoughtful comments and contributions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <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="RFC7950" target="https://www.rfc-editor.org/info/rfc7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
              <organization/>
            </author>
            <date year="2016" month="August"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols.  This document describes the syntax and semantics of version 1.1 of the YANG language.  YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification.  There are a small number of backward incompatibilities from YANG version 1.  This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8084" target="https://www.rfc-editor.org/info/rfc8084">
          <front>
            <title>Network Transport Circuit Breakers</title>
            <author initials="G." surname="Fairhurst" fullname="G. Fairhurst">
              <organization/>
            </author>
            <date year="2017" month="March"/>
            <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>
        <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8085">
          <front>
            <title>UDP Usage Guidelines</title>
            <author initials="L." surname="Eggert" fullname="L. Eggert">
              <organization/>
            </author>
            <author initials="G." surname="Fairhurst" fullname="G. Fairhurst">
              <organization/>
            </author>
            <author initials="G." surname="Shepherd" fullname="G. Shepherd">
              <organization/>
            </author>
            <date year="2017" month="March"/>
            <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <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="RFC8340" target="https://www.rfc-editor.org/info/rfc8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund">
              <organization/>
            </author>
            <author initials="L." surname="Berger" fullname="L. Berger" role="editor">
              <organization/>
            </author>
            <date year="2018" month="March"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams.  The purpose of this document is to provide a single location for this definition.  This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="I-D.draft-ietf-mboned-dorms" target="https://www.ietf.org/archive/id/draft-ietf-mboned-dorms-01.txt">
          <front>
            <title>Discovery Of Restconf Metadata for Source-specific multicast</title>
            <author fullname="Jake Holland">
              <organization>Akamai Technologies, Inc.</organization>
            </author>
            <date month="October" day="31" year="2020"/>
            <abstract>
              <t>   This document defines DORMS (Discovery Of Restconf Metadata for
   Source-specific multicast), a method to discover and retrieve
   extensible metadata about source-specific multicast channels using
   RESTCONF.  The reverse IP DNS zone for a multicast sender's IP
   address is configured to use SRV resource records to advertise the
   hostname of a RESTCONF server that publishes metadata according to a
   new YANG module with support for extensions.  A new service name and
   the new YANG module are defined.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mboned-dorms-01"/>
        </reference>
        <reference anchor="I-D.draft-ietf-mboned-ambi" target="https://www.ietf.org/archive/id/draft-ietf-mboned-ambi-01.txt">
          <front>
            <title>Asymmetric Manifest Based Integrity</title>
            <author fullname="Jake Holland">
              <organization>Akamai Technologies, Inc.</organization>
            </author>
            <author fullname="Kyle Rose">
              <organization>Akamai Technologies, Inc.</organization>
            </author>
            <date month="October" day="31" year="2020"/>
            <abstract>
              <t>   This document defines Asymmetric Manifest-Based Integrity (AMBI).
   AMBI allows each receiver or forwarder of a stream of multicast
   packets to check the integrity of the contents of each packet in the
   data stream.  AMBI operates by passing cryptographically verifiable
   hashes of the data packets inside manifest messages, and sending the
   manifests over authenticated out-of-band communication channels.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mboned-ambi-01"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688">
          <front>
            <title>The IETF XML Registry</title>
            <author initials="M." surname="Mealling" fullname="M. Mealling">
              <organization/>
            </author>
            <date year="2004" month="January"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC3738" target="https://www.rfc-editor.org/info/rfc3738">
          <front>
            <title>Wave and Equation Based Rate Control (WEBRC) Building Block</title>
            <author initials="M." surname="Luby" fullname="M. Luby">
              <organization/>
            </author>
            <author initials="V." surname="Goyal" fullname="V. Goyal">
              <organization/>
            </author>
            <date year="2004" month="April"/>
            <abstract>
              <t>This document specifies Wave and Equation Based Rate Control (WEBRC), which provides rate and congestion control for data delivery.  WEBRC is specifically designed to support protocols using IP multicast.  It provides multiple-rate, congestion-controlled delivery to receivers, i.e., different receivers joined to the same session may be receiving packets at different rates depending on the bandwidths of their individual connections to the sender and on competing traffic along these connections.  WEBRC requires no feedback from receivers to the sender, i.e., it is a completely receiver-driven congestion control protocol.  Thus, it is designed to scale to potentially massive numbers of receivers attached to a session from a single sender.  Furthermore, because each individual receiver adjusts to the available bandwidth between the sender and that receiver, there is the potential to deliver data to each individual receiver at the fastest possible rate for that receiver, even in a highly heterogeneous network architecture, using a single sender.  This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3738"/>
          <seriesInfo name="DOI" value="10.17487/RFC3738"/>
        </reference>
        <reference anchor="RFC4609" target="https://www.rfc-editor.org/info/rfc4609">
          <front>
            <title>Protocol Independent Multicast - Sparse Mode (PIM-SM) Multicast Routing Security Issues and Enhancements</title>
            <author initials="P." surname="Savola" fullname="P. Savola">
              <organization/>
            </author>
            <author initials="R." surname="Lehtonen" fullname="R. Lehtonen">
              <organization/>
            </author>
            <author initials="D." surname="Meyer" fullname="D. Meyer">
              <organization/>
            </author>
            <date year="2006" month="October"/>
            <abstract>
              <t>This memo describes security threats for the larger (intra-domain or inter-domain) multicast routing infrastructures.  Only Protocol Independent Multicast - Sparse Mode (PIM-SM) is analyzed, in its three main operational modes: the traditional Any-Source Multicast (ASM) model, the source-specific multicast (SSM) model, and the ASM model enhanced by the Embedded Rendezvous Point (Embedded-RP) group-to-RP mapping mechanism.  This memo also describes enhancements to the protocol operations that mitigate the identified threats.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4609"/>
          <seriesInfo name="DOI" value="10.17487/RFC4609"/>
        </reference>
        <reference anchor="RFC5166" target="https://www.rfc-editor.org/info/rfc5166">
          <front>
            <title>Metrics for the Evaluation of Congestion Control Mechanisms</title>
            <author initials="S." surname="Floyd" fullname="S. Floyd" role="editor">
              <organization/>
            </author>
            <date year="2008" month="March"/>
            <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>
        <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
              <organization/>
            </author>
            <date year="2010" month="October"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC6726" target="https://www.rfc-editor.org/info/rfc6726">
          <front>
            <title>FLUTE - File Delivery over Unidirectional Transport</title>
            <author initials="T." surname="Paila" fullname="T. Paila">
              <organization/>
            </author>
            <author initials="R." surname="Walsh" fullname="R. Walsh">
              <organization/>
            </author>
            <author initials="M." surname="Luby" fullname="M. Luby">
              <organization/>
            </author>
            <author initials="V." surname="Roca" fullname="V. Roca">
              <organization/>
            </author>
            <author initials="R." surname="Lehtonen" fullname="R. Lehtonen">
              <organization/>
            </author>
            <date year="2012" month="November"/>
            <abstract>
              <t>This document defines File Delivery over Unidirectional Transport (FLUTE), a protocol for the unidirectional delivery of files over the Internet, which is particularly suited to multicast networks.  The specification builds on Asynchronous Layered Coding, the base protocol designed for massively scalable multicast distribution. This document obsoletes RFC 3926.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6726"/>
          <seriesInfo name="DOI" value="10.17487/RFC6726"/>
        </reference>
        <reference anchor="RFC6807" target="https://www.rfc-editor.org/info/rfc6807">
          <front>
            <title>Population Count Extensions to Protocol Independent Multicast (PIM)</title>
            <author initials="D." surname="Farinacci" fullname="D. Farinacci">
              <organization/>
            </author>
            <author initials="G." surname="Shepherd" fullname="G. Shepherd">
              <organization/>
            </author>
            <author initials="S." surname="Venaas" fullname="S. Venaas">
              <organization/>
            </author>
            <author initials="Y." surname="Cai" fullname="Y. Cai">
              <organization/>
            </author>
            <date year="2012" month="December"/>
            <abstract>
              <t>This specification defines a method for providing multicast distribution-tree accounting data.  Simple extensions to the Protocol Independent Multicast (PIM) protocol allow a rough approximation of tree-based data in a scalable fashion.  This document defines an  Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6807"/>
          <seriesInfo name="DOI" value="10.17487/RFC6807"/>
        </reference>
        <reference anchor="RFC7761" target="https://www.rfc-editor.org/info/rfc7761">
          <front>
            <title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)</title>
            <author initials="B." surname="Fenner" fullname="B. Fenner">
              <organization/>
            </author>
            <author initials="M." surname="Handley" fullname="M. Handley">
              <organization/>
            </author>
            <author initials="H." surname="Holbrook" fullname="H. Holbrook">
              <organization/>
            </author>
            <author initials="I." surname="Kouvelas" fullname="I. Kouvelas">
              <organization/>
            </author>
            <author initials="R." surname="Parekh" fullname="R. Parekh">
              <organization/>
            </author>
            <author initials="Z." surname="Zhang" fullname="Z. Zhang">
              <organization/>
            </author>
            <author initials="L." surname="Zheng" fullname="L. Zheng">
              <organization/>
            </author>
            <date year="2016" month="March"/>
            <abstract>
              <t>This document specifies Protocol Independent Multicast - Sparse Mode (PIM-SM).  PIM-SM is a multicast routing protocol that can use the underlying unicast routing information base or a separate multicast-capable routing information base.  It builds unidirectional shared trees rooted at a Rendezvous Point (RP) per group, and it optionally creates shortest-path trees per source.</t>
              <t>This document obsoletes RFC 4601 by replacing it, addresses the errata filed against it, removes the optional (*,*,RP), PIM Multicast Border Router features and authentication using IPsec that lack sufficient deployment experience (see Appendix A), and moves the PIM specification to Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="83"/>
          <seriesInfo name="RFC" value="7761"/>
          <seriesInfo name="DOI" value="10.17487/RFC7761"/>
        </reference>
        <reference anchor="RFC8641" target="https://www.rfc-editor.org/info/rfc8641">
          <front>
            <title>Subscription to YANG Notifications for Datastore Updates</title>
            <author initials="A." surname="Clemm" fullname="A. Clemm">
              <organization/>
            </author>
            <author initials="E." surname="Voit" fullname="E. Voit">
              <organization/>
            </author>
            <date year="2019" month="September"/>
            <abstract>
              <t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore.  Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8641"/>
          <seriesInfo name="DOI" value="10.17487/RFC8641"/>
        </reference>
        <reference anchor="PathChirp">
          <front>
            <title>pathChirp: Efficient Available Bandwidth Estimation for Network Paths</title>
            <author initials="V.J." surname="Ribeiro" fullname="Vinay J. Ribeiro">
              <organization/>
            </author>
            <author initials="R.H." surname="Riedi" fullname="Rudolf H. Riedi">
              <organization/>
            </author>
            <author initials="R.G." surname="Baraniuk" fullname="Richard G. Baraniuk">
              <organization/>
            </author>
            <author initials="J." surname="Navratil" fullname="Jiri Navratil">
              <organization/>
            </author>
            <author initials="L." surname="Cottrell" fullname="Les Cottrell">
              <organization/>
            </author>
            <author>
              <organization>Department of Electrical and Computer Engineering Rice University</organization>
            </author>
            <author>
              <organization>SLAC/SCS-Network Monitoring, Stanford University</organization>
            </author>
            <date year="2003"/>
          </front>
        </reference>
        <reference anchor="CapProbe" target="https://dl.acm.org/doi/pdf/10.1145/1015467.1015476">
          <front>
            <title>CapProbe: A Simple and Accurate Capacity Estimation Technique</title>
            <author initials="R." surname="Kapoor" fullname="Rohit Kapoor">
              <organization/>
            </author>
            <author initials="L." surname="Chen" fullname="Ling-Jyh Chen">
              <organization/>
            </author>
            <author initials="L." surname="Lao" fullname="Li Lao">
              <organization/>
            </author>
            <author initials="M." surname="Gerla" fullname="Mario Gerla">
              <organization/>
            </author>
            <author initials="M.Y." surname="Sanadidi" fullname="M. Y. Sanadidi">
              <organization/>
            </author>
            <date year="2004" month="September"/>
          </front>
        </reference>
        <reference anchor="FLID-DL" target="https://ieeexplore.ieee.org/document/1038584">
          <front>
            <title>FLID-DL: congestion control for layered multicast</title>
            <author initials="J.W." surname="Byers">
              <organization/>
            </author>
            <author initials="G." surname="Horn">
              <organization/>
            </author>
            <author initials="M." surname="Luby">
              <organization/>
            </author>
            <author initials="M." surname="Mitzenmacher">
              <organization/>
            </author>
            <author initials="W." surname="Shaver">
              <organization/>
            </author>
            <author>
              <organization>IEEE</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="DOI" value="10.1109/JSAC.2002.803998"/>
        </reference>
        <reference anchor="PLM" target="http://www.eurecom.fr/en/publication/340/download/ce-legoar-000601.pdf">
          <front>
            <title>PLM: Fast Convergence for Cumulative Layered Multicast Transmission Schemes</title>
            <author initials="A.Legout, E.W." surname="Biersack, Institut EURECOM">
              <organization/>
            </author>
            <date year="1999"/>
          </front>
        </reference>
        <reference anchor="RLC" target="http://www.iet.unipi.it/~a007834/rlc99.ps.gz">
          <front>
            <title>The RLC multicast congestion control algorithm</title>
            <author initials="L." surname="Rizzo" fullname="Luigi Rizzo">
              <organization/>
            </author>
            <author initials="L." surname="Vicisano" fullname="Lorenzo Vicisano">
              <organization/>
            </author>
            <author initials="J." surname="Crowcroft" fullname="John Crowcroft">
              <organization/>
            </author>
            <date year="1999"/>
          </front>
        </reference>
        <reference anchor="RLM" target="http://www1.cs.columbia.edu/~danr/courses/6761/Fall00/week9/layering.pdf">
          <front>
            <title>Receiver-driven Layered Multicast</title>
            <author initials="S." surname="McCanne" fullname="Steven McCanne">
              <organization/>
            </author>
            <author initials="V." surname="Jacobson" fullname="Van Jacobson">
              <organization/>
            </author>
            <author initials="M." surname="Vetterli" fullname="Martin Vetterli">
              <organization/>
            </author>
            <author>
              <organization>University of California, Berkeley</organization>
            </author>
            <author>
              <organization>Lawrence Berkeley National Laboratory</organization>
            </author>
            <date year="1995"/>
          </front>
        </reference>
        <reference anchor="SMCC" target="http://www.cs.bu.edu/techreports/pdf/2002-025-smcc.pdf">
          <front>
            <title>Smooth Multirate Multicast Congestion Control</title>
            <author initials="G." surname="Kwon" fullname="Gu-In Kwon">
              <organization/>
            </author>
            <author initials="J.W." surname="Byers" fullname="John W. Byers">
              <organization/>
            </author>
            <author>
              <organization>Computer Science Department, Boston University</organization>
            </author>
            <date year="2002"/>
          </front>
        </reference>
        <reference anchor="ZSC91">
          <front>
            <title>Observations and Dynamics of a Congestion Control Algorithm: The Effects of Two-Way Traffic</title>
            <author initials="L." surname="Zhang" fullname="Lixia Zhang">
              <organization/>
            </author>
            <author initials="S." surname="Shenker" fullname="Scott Shenker">
              <organization/>
            </author>
            <author initials="D.D." surname="Clark" fullname="David D. Clark">
              <organization/>
            </author>
            <date year="1991"/>
          </front>
          <seriesInfo name="Proc. ACM SIGCOMM, ACM Computer Communications Review (CCR), Vol 21, No 4, pp.133-147." value=""/>
        </reference>
      </references>
    </references>
    <section anchor="ref-overjoining" numbered="true" toc="default">
      <name>Overjoining</name>
      <t><xref target="RFC8085" format="default"/> describes several remedies for unicast congestion control under UDP, even though UDP does not itself provide congestion control.
In general, any network node under congestion could in theory collect evidence that a unicast flow's sending rate is not responding to congestion, and would then be justified in circuit-breaking it.</t>
      <t>With multicast IP, the situation is different, especially in the presence of malicious receivers.
A well-behaved sender using a receiver-controlled congestion scheme such as WEBRC does not reduce its send rate in response to congestion, instead relying on receivers to leave the appropriate multicast groups.</t>
      <t>This leads to a situation where, when a network accepts inter-domain multicast traffic, as long as there are senders somewhere in the world with aggregate bandwidth that exceeds a network's capacity, receivers in that network can join the flows and overflow the network capacity.
A receiver controlled by an attacker could do this at the IGMP/MLD level without running the application layer protocol that participates in the receiver-controlled congestion control.</t>
      <t>A network might be able to detect and defend against the most naive version of such an attack by blocking end users that try to join too many flows at once.
However, an attacker can achieve the same effect by joining a few high-bandwidth flows, if those exist anywhere, and an attacker that controls a few machines in a network can coordinate the receivers so they join disjoint sets of non-responsive sending flows.</t>
      <t>This scenario will produce congestion in a middle node in the network that can't be easily detected at the edge where the IGMP/MLD join is accepted.
Thus, an attacker with a small set of machines in a target network can always trip a circuit breaker if present, or can induce excessive congestion among the bandwidth allocated to multicast.
This problem gets worse as more multicast flows become available.</t>
      <t>Although the same can apply to non-responsive unicast traffic, network operators can assume that non-responsive sending flows are in violation of congestion control best practices, and can therefore cut off flows associated with the misbehaving senders.
By contrast, non-responsive multicast senders are likely to be well-behaved participants in receiver-controlled congestion control schemes.</t>
      <t>However, receiver controlled congestion control schemes also show the most promise for efficient massive scale content distribution via multicast, provided network health can be ensured.
Therefore, mechanisms to mitigate overjoining attacks while still permitting receiver-controlled congestion control are necessary.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAABEJmIAA619W3MbR7LmO35FLfVA6RwABCnqxpmwhzfJtElJK9Lj9dnZ
2Gg0CkCZjW64q5sUpZB/++aXWbfGRdLsriNmBDaqq7Ky8p5ZicFg0GtMU+gj
dWrqvDWNOql1dqtrdWytsY2eqNOqnGnbmKrEx6auil42Htf6jt45OT497U2q
vMwWNMWkzqbNwOhmOliMq1JPBvk4y/PB6LA3yRoacDA6OBiMng5GL3o5PZhV
9cORss2k1zPL+kg1dWubg9Ho1eiglxEYR+rd0vbuq/p2Vlft8khd8ay9W/1A
DydH6qJsdF3qZnCGlXs922Tl5H9nBY06Ug/a9pbmSP3Ppsr7ylZ1U+uppU8P
C3z4X71e1jbzqj7qqUFP0X+mtEfq56H6qSoKmoefycZ+Jox0Hlf17Egd32aL
zKgbnc/LqqhmRtPsF2U+5CGWltPNkdp/NiKcVtnkPnvgL3LT0K5Ps8W4NpOZ
7qurYzU62D88lG+rlnBMA34tDbB/3RCirKqm6niha5NnPErTwsWR+oPgmgtY
Q0LDP2Z4PMyrRa9XVvUia8ydpu2pD69PD/b3X7mPL149G7mPL0cvD+PHZ/7j
/ovw9Okhj70YnA3Xj3dCi9jtX9MWzRGdbTldAebp85cv/ccXT/3Hw+cjD+Kz
/efP3cfnowMP7fMXB+Hpy9ELv50Xz/c9tM8P+eP7rJmfzk29PGJsOQrfWYbH
6nw6NbnRZaOO7whn2bjQ6oTQeG8mzVydE7kDYCJ5Al291Q2IkKe1OzxlIB3+
b+D+9fTyT1NmDyClD2asTV1tGfahnVTFVP2EcXpito0y+TyrJ+rNkCCss9K0
t1tG/mxqo95mdzWBXmwZc0nEdFo1RJzF+hAm6zO9zOpmAdwQ1Z0XOm9Ad4Ui
9NCri2VLTKfOy5kpNVFkOQOEGvR6p2tLxL152uvL49O969PrgcfmVUUUXmGC
PqgcRDJZncWLjdFT+vM0W76vq7HuHmp4qo7VtVks6SAB6HGet4QHjbcysFx6
qMyy5s9Wf89hfqjmJBZ/yZZVVW9DKm1i8PPDXJ3Odbl1jLrMtlHCVVabSr3R
dZFtGzFUvw/VdVZmE+NIRbjKg/3+7PWRmjfN0h7t7U2KYZYvhoT4vUll9paT
6d7+aLi/f/iM/t1/dvj8xZD/ffE8QfO1XjZ6MabDJYRDGr2+vDgbnF06fGf1
DPLML2G01h+XRVXrIT66tfIWhEOLPH357OVh56D8bCTigkLJRaEwlxXZg65J
4i3aoiF6s83XD8dJ69+IK+g9u/n7N5Dm9fqR8JeE0st2vE6u/ssr03zS5SLL
53r94HkQLX49z+42fM0kf3F+fi66gPhEW8hBv4+zdxekGnAko1d7P18fnw4J
5wfDl6Onr169hAS7vOqSOR6o14QVKGFacaZLYjrg7bQljLF0JQITFF55FKob
Ehh2YUiXE7avaScLvVGC8XaOCSGklNumr86H2NyJIcxm+S3UGh1Y0zbq/NcP
56fvrhKy2X/16tXX6JFo5f7+fqjbWpNmGk7rPV3uLdtxQRCCCPZIxRDl3JcF
Kcm9XA8KgiGrB6PR6Plof0i0C+F+edrFx81c42Gklk1klRVkYphmvvgePr9s
zcyQLPv0aRuXXhKxl58qEu+5sVm5bdjP1ZxMpbq6z+uKrJJvY+q6gyjSoMO2
NEszNM3eX9lo9IKU8F5d5K9eDZd2OPvE6Fghjw8615Ccg0lN/5TrlPA9GLhu
NN69yk+zstTbdFtWkj2UV2NbbRN1JM0aU6p/6oY0RbGu15g5oqSHmjnNCkNY
KU3WVye6vtWF3qJHLrP7mmnfDyONh0MnBXWZjSuS+WRVfpse94e5JUupaMlG
yYZ60u79NcnKeo/sr9pqu/ecrIq911lRjEZ791rfvtpj+USC3lFkcqjP6M/r
q9MVCr1eVBXZEnwCrIkiV66b1N9zPG/awUWpfrnfincmvK0CkbEX9Pc1rB/C
YtT2hPjKNgTSig7+OlsTFsct468hpVrrJdnZlhUOBNpgdPBsYBd5voI0fEd/
/tf16av9LtbejUlY3vGJWlbkZw+0OZOzCZxtwJw69kx+pCAUyLIji4WH39xX
g9/IECMhCHPvu4SA+Wgy9V/zrJxtY5KcrCcS+7q83SD3ZcxZdmcI8qE6LbL6
dlUFkDCvq3yojk+v1PXFG5KmV33+IxwOfViQCMgdGj7oO6Pv1ePT0w9P+uqf
tOeD/b56W6nDvlouh/tPnw72D18Md7pUud/rDQYDlY3JE8ly8o5u5sYqr6KV
XercTA3Mwe/3/AgGuHxPhj3+V+kSlrNVU6LqAZmJy9XJrBo/KBb2dg5TkRlh
oZuMwMwINlI2qQifQ/AUNF9dLQhl5QQzNBWpJ0LLgmxkvF46A7KsJvCMalU7
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
1V8NI/T9H4UX2Y7+dwAA

-->

</rfc>
