<?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.6.2 (Ruby 3.0.3) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mops-streaming-opcons-09" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <front>
    <title abbrev="Media Streaming Ops">Operational Considerations for Streaming Media</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mops-streaming-opcons-09"/>
    <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>
    <author initials="A." surname="Begen" fullname="Ali Begen">
      <organization>Networked Media</organization>
      <address>
        <postal>
          <country>Turkey</country>
        </postal>
        <email>ali.begen@networked.media</email>
      </address>
    </author>
    <author initials="S." surname="Dawkins" fullname="Spencer Dawkins">
      <organization>Tencent America LLC</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>spencerdawkins.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2022" month="March" day="01"/>
    <area>OPS</area>
    <workgroup>MOPS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document provides an overview of operational networking issues
that pertain to quality of experience when streaming video and other
high-bitrate media over the Internet.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>This document examines networking issues as they relate to quality of experience in Internet media delivery, especially focusing on capturing characteristics of streaming video delivery that have surprised network designers or transport experts who lack specific video expertise, since streaming media highlights key differences between common assumptions in existing networking practices and observations of video delivery issues encountered when streaming media over those existing networks.</t>
      <t>This document specifically focuses on streaming applications and defines streaming as follows:</t>
      <ul spacing="normal">
        <li>Streaming is transmission of a continuous media from a server to a client and its simultaneous consumption by the client.</li>
        <li>Here, "continuous media" refers to media and associated streams such as video, audio, metadata, etc. In this definition, the critical term is "simultaneous", as it is not considered streaming if one downloads a video file and plays it after the download is completed, which would be called download-and-play.</li>
      </ul>
      <t>This has two implications.</t>
      <ul spacing="normal">
        <li>First, the server's transmission rate must (loosely or tightly) match to client's consumption rate in order to provide uninterrupted playback. That is, the client must not run out of data (buffer underrun) or accept more data than it can buffer before playback (buffer overrun) as any excess media that cannot be buffered is simply discarded.</li>
        <li>Second, the client's consumption rate is limited not only by bandwidth availability,but also media availability. The client cannot fetch media that is not available from a server yet.</li>
      </ul>
      <t>This document contains</t>
      <ul spacing="normal">
        <li>A short description of streaming video characteristics in <xref target="sd"/>, to set the stage for the rest of the document,</li>
        <li>General guidance on bandwidth provisioning (<xref target="bwprov"/>) and latency considerations (<xref target="latency-cons"/>) for streaming video delivery,</li>
        <li>A description of adaptive encoding and adaptive delivery techniques in common use for streaming video, along with a description of the challenges media senders face in detecting the bitrate available between the media sender and media receiver, and collection of measurements by a third party for use in analytics (<xref target="sec-abr"/>),</li>
        <li>A description of existing transport protocols used for video streaming, and the issues encountered when using those protocols, along with a description of the QUIC transport protocol <xref target="RFC9000"/> that we expect to be used for streaming media (<xref target="sec-trans"/>),</li>
        <li>A description of implications when streaming encrypted media (<xref target="stream-encrypt-media"/>), and</li>
        <li>A number of useful pointers for further reading on this rapidly changing subject (<xref target="further"/>).</li>
      </ul>
      <t>Making specific recommendations on operational practices aimed at mitigating the issues described in this document is out of scope, though some existing mitigations are mentioned in passing.  The intent is to provide a point of reference for future solution proposals to use in describing how new technologies address or avoid existing observed problems.</t>
      <section anchor="notes-for-contributors-and-reviewers">
        <name>Notes for Contributors and Reviewers</name>
        <t>Note to RFC Editor: Please remove this section and its subsections
before publication.</t>
        <t>This section is to provide references to make it easier to review the
development and discussion on the draft so far.</t>
        <section anchor="venue">
          <name>Venues for Contribution and Discussion</name>
          <t>This document is in the Github repository at:</t>
          <t><eref target="https://github.com/ietf-wg-mops/draft-ietf-mops-streaming-opcons">https://github.com/ietf-wg-mops/draft-ietf-mops-streaming-opcons</eref></t>
          <t>Readers are welcome to open issues and send pull requests for this document.</t>
          <t>Substantial discussion of this document should take place on the MOPS working group mailing list (mops@ietf.org).</t>
          <ul spacing="normal">
            <li>Join: <eref target="https://www.ietf.org/mailman/listinfo/mops">https://www.ietf.org/mailman/listinfo/mops</eref></li>
            <li>Search: <eref target="https://mailarchive.ietf.org/arch/browse/mops/">https://mailarchive.ietf.org/arch/browse/mops/</eref></li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="sd">
      <name>Our Focus on Streaming Video</name>
      <t>As the internet has grown, an increasingly large share of the traffic
delivered to end users has become video.  Estimates
put the total share of internet video traffic at 75% in 2019, expected
to grow to 82% by 2022.  This estimate projects the
gross volume of video traffic will more than double during this time,
based on a compound annual growth rate continuing at 34% (from Appendix
D of <xref target="CVNI"/>).</t>
      <t>A substantial part of this growth is due to increased use of streaming video, although the amount of video traffic in real-time communications (for example, online videoconferencing) has also grown significantly. While both streaming video and videoconferencing have real-time delivery and latency requirements, these requirements vary from one application to another. For example, videoconferencing demands an end-to-end (one-way) latency of a few hundreds of milliseconds whereas live streaming can tolerate latencies of several seconds.</t>
      <t>In many contexts, video traffic can be handled transparently as
generic application-level traffic.  However, as the volume of
video traffic continues to grow, it is becoming increasingly
important to consider the effects of network design decisions
on application-level performance, with considerations for
the impact on video delivery.</t>
      <t>Much of the focus of this document is on reliable media using HTTP over TCP, which is widely used because</t>
      <ul spacing="normal">
        <li>support for HTTP is widely available in a wide range of operating systems,</li>
        <li>HTTP is also used in a wide variety of other applications,</li>
        <li>HTTP has been demonstrated to provide acceptable performance over the open Internet,</li>
        <li>HTTP includes state of the art standardized security mechanisms, and</li>
        <li>HTTP can make use of already-deployed caching infrastructure.</li>
      </ul>
      <t>Unreliable media delivery using RTP and other UDP-based protocols is also discussed in <xref target="ultralow"/>, <xref target="unreliable"/>, <xref target="udp-behavior"/>, and <xref target="hop-by-hop-encrypt"/>, but it is difficult to give general guidance for these applications. For instance, when loss occurs, the most appropriate response may depend on the type of codec being used.</t>
    </section>
    <section anchor="bwprov">
      <name>Bandwidth Provisioning</name>
      <section anchor="scaling">
        <name>Scaling Requirements for Media Delivery</name>
        <section anchor="bvr">
          <name>Video Bitrates</name>
          <t>Video bitrate selection depends on many variables including the resolution (height and width), frame rate, color depth, codec, encoding parameters, scene complexity and amount of motion. Generally speaking, as the resolution, frame rate, color depth, scene complexity and amount of motion increase, the encoding bitrate increases. As newer codecs with better compression tools are used, the encoding bitrate decreases. Similarly, a multi-pass encoding generally produces better quality output compared to single-pass encoding at the same bitrate, or delivers the same quality at a lower bitrate.</t>
          <t>Here are a few common resolutions used for video content, with typical ranges of bitrates for the two most popular video codecs <xref target="Encodings"/>.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Width x Height</th>
                <th align="left">H.264</th>
                <th align="left">H.265</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">DVD</td>
                <td align="left">720 x 480</td>
                <td align="left">1.0 Mbps</td>
                <td align="left">0.5 Mbps</td>
              </tr>
              <tr>
                <td align="left">720p (1K)</td>
                <td align="left">1280 x 720</td>
                <td align="left">3-4.5 Mbps</td>
                <td align="left">2-4 Mbps</td>
              </tr>
              <tr>
                <td align="left">1080p (2K)</td>
                <td align="left">1920 x 1080</td>
                <td align="left">6-8 Mbps</td>
                <td align="left">4.5-7 Mbps</td>
              </tr>
              <tr>
                <td align="left">2160p (4k)</td>
                <td align="left">3840 x 2160</td>
                <td align="left">N/A</td>
                <td align="left">10-20 Mbps</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="virtual-reality-bitrates">
          <name>Virtual Reality Bitrates</name>
          <t>The bitrates given in <xref target="bvr"/> describe video streams that provide the user with a single, fixed, point of view - so, the user has no "degrees of freedom", and the user sees all of the video image that is available.</t>
          <t>Even basic virtual reality (360-degree) videos that allow users to look around freely (referred to as "three degrees of freedom", or 3DoF) require substantially larger bitrates when they are captured and encoded as such videos require multiple fields of view of the scene. Yet, due to smart delivery methods such as viewport-based or tiled-based streaming, we do not need to send the whole scene to the user. Instead, the user needs only the portion corresponding to its viewpoint at any given time (<xref target="Survey360o"/>).</t>
          <t>In more immersive applications, where limited user movement ("three degrees of freedom plus", or 3DoF+) or full user movement ("six degrees of freedom", or 6DoF) is allowed, the required bitrate grows even further. In this case, immersive content is typically referred to as volumetric media. One way to represent the volumetric media is to use point clouds, where streaming a single object may easily require a bitrate of 30 Mbps or higher. Refer to <xref target="MPEGI"/> and <xref target="PCC"/> for more details.</t>
        </section>
      </section>
      <section anchor="sec-band-constraints">
        <name>Path Bandwidth Constraints</name>
        <t>Even when the bandwidth requirements for video streams along a path are well understood, additional analysis is required to understand the contraints on bandwidth at various points in the network. This analysis is necessary because media servers may react to bandwith constraints using two independent feedback loops:</t>
        <ul spacing="normal">
          <li>Media servers often respond to application-level feedback from the media player that indicates a bottleneck link somewhere along the path, by adjusting the amount of media that the media server will send to the media player in a given timeframe. This is described in greater detail in <xref target="sec-abr"/>.</li>
          <li>Media servers also typically implement transport protocols with capacity-seeking congestion controllers that probe for bandwidth, and adjust the sending rate based on transport mechanisms. This is described in greater detail in <xref target="sec-trans"/>.</li>
        </ul>
        <t>The result is that these two (potentially competing) "helpful" mechanisms each respond to the same bottleneck with no coordination between themselves, so that each is unaware of actions taken by the other, and this can result in a quality of experience for users that is significantly lower than what could have been achieved.</t>
        <t>In one example, if a media server overestimates the available bandwidth to the media player,</t>
        <ul spacing="normal">
          <li>the transport protocol detects loss due to congestion, and reduces its sending window size per round trip,</li>
          <li>the media server adapts to application-level feedback from the media player, and reduces its own sending rate,</li>
          <li>the transport protocol sends media at the new, lower rate, and confirms that this new, lower rate is "safe", because no transport-level loss is occuring, but</li>
          <li>because the media server continues to send at the new, lower rate, the transport protocol's maximum sending rate is now limited by the amount of information the media server queues for transmission, so</li>
          <li>the transport protocol can't probe for available path bandwidth by sending at a higher rate.</li>
        </ul>
        <t>In order to avoid these types of situations, which can potentially affect all the users whose streaming media traverses a bottleneck link, there are several possible mitigations that streaming operators can use, but the first step toward mitigating a problem is knowing when that problem occurs.</t>
        <section anchor="sec-know-your-traffic">
          <name>Know Your Network Traffic</name>
          <t>There are many reasons why path characteristics might change suddenly, for example,</t>
          <ul spacing="normal">
            <li>"cross traffic" that traverses part of the path, especially if this traffic is "inelastic", and does not, itself, respond to indications of path congestion.</li>
            <li>routing changes, which can happen in normal operation, especially if the new path now includes path segments that are more heavily loaded, offer lower total bandwidth, or simply cover more distance.</li>
          </ul>
          <t>Recognizing that a path carrying streaming media is "not behaving the way it normally does" is fundamental. Analytics that aid in that recognition can be more or less sophisticated, and can be as simple as noticing that the apparent round trip times for media traffic carried over TCP transport on some paths are suddenly and significantly longer than usual. Passive monitors can detect changes in the elapsed time between the acknowledgements for specific TCP segments from a TCP receiver, since TCP octet sequence numbers and acknowledgements for those sequence numbers are "carried in the clear", even if the TCP payload itself is encrypted. See <xref target="tcp-behavior"/> for more information.</t>
          <t>As transport protocols evolve to encrypt their transport header fields, one side effect of increasing encryption is that the kind of passive monitoring, or even "performance enhancement" (<xref target="RFC3135"/>) that was possible with the older transport protocols (UDP, described in <xref target="udp-behavior"/> and TCP, described in <xref target="tcp-behavior"/>) is no longer possible with newer transport protocols such as QUIC (described in <xref target="quic-behavior"/>). The IETF has specified a "latency spin bit" mechanism in Section 17.4 of <xref target="RFC9000"/> to allow passive latency monitoring from observation points on the network path throughout the duration of a connection, but currently chartered work in the IETF is focusing on end-point monitoring and reporting, rather than on passive monitoring.</t>
          <t>One example is the "qlog" mechanism <xref target="I-D.ietf-quic-qlog-main-schema"/>, a protocol-agnostic mechanism used to provide better visibility for encrypted protocols such as QUIC (<xref target="I-D.ietf-quic-qlog-quic-events"/>) and for HTTP/3 (<xref target="I-D.ietf-quic-qlog-h3-events"/>).</t>
        </section>
      </section>
      <section anchor="pathreq">
        <name>Path Requirements</name>
        <t>The bitrate requirements in <xref target="scaling"/> are per end-user actively
consuming a media feed, so in the worst case, the bitrate demands
can be multiplied by the number of simultaneous users to find the
bandwidth requirements for a router on the delivery path with that
number of users downstream.  For example, at a node with 10,000
downstream users simultaneously consuming video streams,
approximately 80 Gbps might be necessary in order for all of them
to get typical content at 1080p resolution.</t>
        <t>However, when there is some overlap in the feeds being consumed by
end users, it is sometimes possible to reduce the bandwidth
provisioning requirements for the network by performing some kind
of replication within the network.  This can be achieved via object
caching with delivery of replicated objects over individual
connections, and/or by packet-level replication using multicast.</t>
        <t>To the extent that replication of popular content can be performed,
bandwidth requirements at peering or ingest points can be reduced to
as low as a per-feed requirement instead of a per-user requirement.</t>
      </section>
      <section anchor="caching">
        <name>Caching Systems</name>
        <t>When demand for content is relatively predictable, and especially when that content is relatively static, caching content close to requesters, and pre-loading caches to respond quickly to initial requests is often useful (for example, HTTP/1.1 caching is described in <xref target="I-D.ietf-httpbis-cache"/>). This is subject to the usual considerations for caching - for example, how much data must be cached to make a significant difference to the requester, and how the benefits of caching and pre-loading caches balances against the costs of tracking "stale" content in caches and refreshing that content.</t>
        <t>It is worth noting that not all high-demand content is "live" content. One relevant example is when popular streaming content can be staged close to a significant number of requesters, as can happen when a new episode of a popular show is released. This content may be largely stable, so low-cost to maintain in multiple places throughout the Internet. This can reduce demands for high end-to-end bandwidth without having to use mechanisms like multicast.</t>
        <t>Caching and pre-loading can also reduce exposure to peering point congestion, since less traffic crosses the peering point exchanges if the caches are placed in peer networks, especially when the content can be pre-loaded during off-peak hours, and especially if the transfer can make use of "Lower-Effort Per-Hop Behavior (LE PHB) for Differentiated Services" <xref target="RFC8622"/>, "Low Extra Delay Background Transport (LEDBAT)" <xref target="RFC6817"/>, or similar mechanisms.</t>
        <t>All of this depends, of course, on the ability of a content provider to predict usage and provision bandwidth, caching, and other mechanisms to meet the needs of users. In some cases (<xref target="sec-predict"/>), this is relatively routine, but in other cases, it is more difficult (<xref target="sec-unpredict"/>, <xref target="sec-extreme"/>).</t>
        <t>And as with other parts of the ecosystem, new technology brings new challenges.  For example, with the emergence of ultra-low-latency streaming, responses have to start streaming to the end user while still being transmitted to the cache, and while the cache does not yet know the size of the object.  Some of the popular caching systems were designed around cache footprint and had deeply ingrained assumptions about knowing the size of objects that are being stored, so the change in design requirements in long-established systems caused some errors in production.  Incidents occurred where a transmission error in the connection from the upstream source to the cache could result in the cache holding a truncated segment and transmitting it to the end user's device. In this case, players rendering the stream often had the video freeze until the player was reset.  In some cases the truncated object was even cached that way and served later to other players as well, causing continued stalls at the same spot in the video for all players playing the segment delivered from that cache node.</t>
      </section>
      <section anchor="sec-predict">
        <name>Predictable Usage Profiles</name>
        <t>Historical data shows that users consume more videos and at a higher bit rate than they did in the past on their connected devices. Improvements in the codecs that help with reducing the encoding bitrates with better compression algorithms could not have offset the increase in the demand for the higher quality video (higher resolution, higher frame rate, better color gamut, better dynamic range, etc.). In particular, mobile data usage has shown a large jump over the years due to increased consumption of entertainment as well as conversational video.</t>
      </section>
      <section anchor="sec-unpredict">
        <name>Unpredictable Usage Profiles</name>
        <t>Although TCP/IP has been used with a number of widely used applications that have symmetric bandwidth requirements (similar bandwidth requirements in each direction between endpoints), many widely-used Internet applications operate in client-server roles, with asymmetric bandwidth requirements. A common example might be an HTTP GET operation, where a client sends a relatively small HTTP GET request for a resource to an HTTP server, and often receives a significantly larger response carrying the requested resource. When HTTP is commonly used to stream movie-length video, the ratio between response size and request size can become arbitrarily large.</t>
        <t>For this reason, operators may pay more attention to downstream bandwidth utilization when planning and managing capacity. In addition, operators have been able to deploy access networks for end users using underlying technologies that are inherently asymmetric, favoring downstream bandwidth (e.g. ADSL, cellular technologies, most IEEE 802.11 variants), assuming that users will need less upstream bandwidth than downstream bandwidth. This strategy usually works, except when it fails because application bandwidth usage patterns have changed in ways that were not predicted.</t>
        <t>One example of this type of change was when peer-to-peer file sharing applications gained popularity in the early 2000s. To take one well-documented case (<xref target="RFC5594"/>), the Bittorrent application created "swarms" of hosts, uploading and downloading files to each other, rather than communicating with a server. Bittorrent favored peers who uploaded as much as they downloaded, so that new Bittorrent users had an incentive to significantly increase their upstream bandwidth utilization.</t>
        <t>The combination of the large volume of "torrents" and the peer-to-peer characteristic of swarm transfers meant that end user hosts were suddenly uploading higher volumes of traffic to more destinations than was the case before Bittorrent. This caused at least one large internet service provider (ISP) to attempt to "throttle" these transfers in order to to mitigate the load that these hosts placed on their network. These efforts were met by increased use of encryption in Bittorrent, similar to an arms race, and set off discussions about "Net Neutrality" and calls for regulatory action.</t>
        <t>Especially as end users increase use of video-based social networking applications, it will be helpful for access network providers to watch for increasing numbers of end users uploading significant amounts of content.</t>
      </section>
      <section anchor="sec-extreme">
        <name>Extremely Unpredictable Usage Profiles</name>
        <t>The causes of unpredictable usage described in <xref target="sec-unpredict"/> were more or less the result of human choices, but we were reminded during a post-IETF 107 meeting that humans are not always in control, and forces of nature can cause enormous fluctuations in traffic patterns.</t>
        <t>In his talk, Sanjay Mishra <xref target="Mishra"/> reported that after the CoViD-19 pandemic broke out in early 2020,</t>
        <ul spacing="normal">
          <li>Comcast's streaming and web video consumption rose by 38%, with their reported peak traffic up 32% overall between March 1 to March 30,</li>
          <li>AT&amp;T reported a 28% jump in core network traffic (single day in April, as compared to pre stay-at-home daily average traffic), with video accounting for nearly half of all mobile network traffic, while
social networking and web browsing remained the highest percentage (almost a quarter each) of overall mobility traffic, and</li>
          <li>Verizon reported similar trends with video traffic up 36% over an average day (pre COVID-19)}.</li>
        </ul>
        <t>We note that other operators saw similar spikes during this time period. Craig Labowitz <xref target="Labovitz"/> reported</t>
        <ul spacing="normal">
          <li>Weekday peak traffic increases over 45%-50% from pre-lockdown levels,</li>
          <li>A 30% increase in upstream traffic over their pre-pandemic levels, and</li>
          <li>A steady increase in the overall volume of DDoS traffic, with amounts exceeding the pre-pandemic levels by 40%. (He attributed this increase to the significant rise in gaming-related DDoS attacks (<xref target="LabovitzDDoS"/>), as gaming usage also increased.)</li>
        </ul>
        <t>Subsequently, the Internet Architecture Board (IAB) held a COVID-19 Network Impacts Workshop <xref target="IABcovid"/> in November 2020. Given a larger number of reports and more time to reflect, the following observations from the draft workshop report are worth considering.</t>
        <ul spacing="normal">
          <li>Participants describing different types of networks reported different kinds of impacts, but all types of networks saw impacts.</li>
          <li>Mobile networks saw traffic reductions and residential networks saw significant increases.</li>
          <li>Reported traffic increases from ISPs and internet exchange points (IXP) over just a few weeks were as big as the traffic growth over the course of a typical year, representing a 15-20% surge in growth to land at a new normal that was much higher than anticipated.</li>
          <li>At DE-CIX Frankfurt, the world's largest Internet Exchange Point in terms of data throughput, the year 2020 has seen the largest increase in peak traffic within a single year since the IXP was founded in 1995.</li>
          <li>The usage pattern changed significantly as work-from-home and videoconferencing usage peaked during normal work hours, which would have typically been off-peak hours with adults at work and children at school. One might expect that the peak would have had more impact on networks if it had happened during typical evening peak hours for video streaming applications.</li>
          <li>The increase in daytime bandwidth consumption reflected both significant increases in "essential" applications such as videoconferencing and virtual private networks (VPN), and entertainment applications as people watched videos or played games.</li>
          <li>At the IXP-level, it was observed that port utilization increased. This phenomenon is mostly explained by a higher traffic demand from residential users.</li>
        </ul>
      </section>
    </section>
    <section anchor="latency-cons">
      <name>Latency Considerations</name>
      <t>Streaming media latency refers to the "glass-to-glass" time duration, which is the delay between the real-life occurrence of an event and the streamed media being appropriately displayed on an end user's device.  Note that this is different from the network latency (defined as the time for a packet to cross a network from one end to another end) because it includes video encoding/decoding and buffering time, and for most cases also ingest to an intermediate service such as a CDN or other video distribution service, rather than a direct connection to an end user.</t>
      <t>Streaming media can be usefully categorized according to the application's latency requirements into a few rough categories:</t>
      <ul spacing="normal">
        <li>ultra low-latency    (less than 1 second)</li>
        <li>low-latency live     (less than 10 seconds)</li>
        <li>non-low-latency live (10 seconds to a few minutes)</li>
        <li>on-demand            (hours or more)</li>
      </ul>
      <section anchor="ultralow">
        <name>Ultra Low-Latency</name>
        <t>Ultra low-latency delivery of media is defined here as having a glass-to-glass delay target under one second.</t>
        <t>Some media content providers aim to achieve this level of latency for live media events. This introduces new challenges relative to less-restricted levels of latency requirements because this latency is the same scale as commonly observed end-to-end network latency variation (for example, due to effects such as bufferbloat (<xref target="CoDel"/>), Wi-Fi error correction, or packet reordering). These effects can make it difficult to achieve this level of latency for the general case, and may require tradeoffs in relatively frequent user-visible media artifacts. However, for controlled environments or targeted networks that provide mitigations against such effects, this level of latency is potentially achievable with the right provisioning.</t>
        <t>Applications requiring ultra low latency for media delivery are usually tightly constrained on the available choices for media transport technologies, and sometimes may need to operate in controlled environments to reliably achieve their latency and quality goals.</t>
        <t>Most applications operating over IP networks and requiring latency this low use the Real-time Transport Protocol (RTP) <xref target="RFC3550"/> or WebRTC <xref target="RFC8825"/>, which uses RTP for the media transport as well as several other protocols necessary for safe operation in browsers.</t>
        <t>Worth noting is that many applications for ultra low-latency delivery do not need to scale to more than a few users at a time, which simplifies many delivery considerations relative to other use cases.</t>
        <t>Recommended reading for applications adopting an RTP-based approach also includes <xref target="RFC7656"/>. For increasing the robustness of the playback by implementing adaptive playout methods, refer to <xref target="RFC4733"/> and <xref target="RFC6843"/>.</t>
        <t>Applications with further-specialized latency requirements are out of scope for this document.</t>
      </section>
      <section anchor="low-latency-live">
        <name>Low-Latency Live</name>
        <t>Low-latency live delivery of media is defined here as having a glass-to-glass delay target under 10 seconds.</t>
        <t>This level of latency is targeted to have a user experience similar to traditional broadcast TV delivery.  A frequently cited problem with failing to achieve this level of latency for live sporting events is the user experience failure from having crowds within earshot of one another who react audibly to an important play, or from users who learn of an event in the match via some other channel, for example social media, before it has happened on the screen showing the sporting event.</t>
        <t>Applications requiring low-latency live media delivery are generally feasible at scale with some restrictions.  This typically requires the use of a premium service dedicated to the delivery of live video, and some tradeoffs may be necessary relative to what is feasible in a higher latency service. The tradeoffs may include higher costs, or delivering a lower quality video, or reduced flexibility for adaptive bitrates, or reduced flexibility for available resolutions so that fewer devices can receive an encoding tuned for their display. Low-latency live delivery is also more susceptible to user-visible disruptions due to transient network conditions than higher latency services.</t>
        <t>Implementation of a low-latency live video service can be achieved with the use of low-latency extensions of HLS (called LL-HLS) <xref target="I-D.draft-pantos-hls-rfc8216bis"/> and DASH (called LL-DASH) <xref target="LL-DASH"/>. These extensions use the Common Media Application Format (CMAF) standard <xref target="MPEG-CMAF"/> that allows the media to be packaged into and transmitted in units smaller than segments, which are called chunks in CMAF language. This way, the latency can be decoupled from the duration of the media segments. Without a CMAF-like packaging, lower latencies can only be achieved by using very short segment durations. However, shorter segments means more frequent intra-coded frames and that is detrimental to video encoding quality. CMAF allows us to still use longer segments (improving encoding quality) without penalizing latency.</t>
        <t>While a LL-HLS client retrieves each chunk with a separate HTTP GET request, a LL-DASH client uses the chunked transfer encoding feature of the HTTP <xref target="CMAF-CTE"/> which allows the LL-DASH client to fetch all the chunks belonging to a segment with a single GET request. An HTTP server can transmit the CMAF chunks to the LL-DASH client as they arrive from the encoder/packager. A detailed comparison of LL-HLS and LL-DASH is given in <xref target="MMSP20"/>.</t>
      </section>
      <section anchor="non-low-latency-live">
        <name>Non-Low-Latency Live</name>
        <t>Non-low-latency live delivery of media is defined here as a live stream that does not have a latency target shorter than 10 seconds.</t>
        <t>This level of latency is the historically common case for segmented video delivery using HLS <xref target="RFC8216"/> and DASH <xref target="MPEG-DASH"/>. This level of latency is often considered adequate for content like news or pre-recorded content.  This level of latency is also sometimes achieved as a fallback state when some part of the delivery system or the client-side players do not have the necessary support for the features necessary to support low-latency live streaming.</t>
        <t>This level of latency can typically be achieved at scale with commodity CDN services for HTTP(s) delivery, and in some cases the increased time window can allow for production of a wider range of encoding options relative to the requirements for a lower latency service without the need for increasing the hardware footprint, which can allow for wider device interoperability.</t>
      </section>
      <section anchor="on-demand">
        <name>On-Demand</name>
        <t>On-Demand media streaming refers to playback of pre-recorded media based on a user's action.  In some cases on-demand media is produced as a by-product of a live media production, using the same segments as the live event, but freezing the manifest after the live event has finished.  In other cases, on-demand media is constructed out of pre-recorded assets with no streaming necessarily involved during the production of the on-demand content.</t>
        <t>On-demand media generally is not subject to latency concerns, but other timing-related considerations can still be as important or even more important to the user experience than the same considerations with live events.  These considerations include the startup time, the stability of the media stream's playback quality, and avoidance of stalls and video artifacts during the playback under all but the most severe network conditions.</t>
        <t>In some applications, optimizations are available to on-demand video that are not always available to live events, such as pre-loading the first segment for a startup time that doesn't have to wait for a network download to begin.</t>
      </section>
    </section>
    <section anchor="sec-abr">
      <name>Adaptive Encoding, Adaptive Delivery, and Measurement Collection</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>A simple model of video playback can be described as a video stream consumer, a buffer, and a transport mechanism that fills the buffer.
The consumption rate is fairly static and is represented by the content bitrate.
The size of the buffer is also commonly a fixed size.
The fill process needs to be at least fast enough to ensure that the buffer is never empty, however it also can have significant complexity when things like personalization or ad workflows are introduced.</t>
        <t>The challenges in filling the buffer in a timely way fall into two broad categories: 1. content selection and 2. content variation.
Content selection comprises all of the steps needed to determine which content variation to offer the client.
Content variation is the number of content options that exist at any given selection point.
A common example, easily visualized, is Adaptive BitRate (ABR), described in more detail below.
The mechanism used to select the bitrate is part of the content selection, and the content variation are all of the different bitrate renditions.</t>
        <t>ABR is a sort of application-level response strategy in which the streaming client attempts to detect the available bandwidth of the network path by observing the successful application-layer download speed, then chooses a bitrate for each of the video, audio, subtitles and metadata (among the limited number of available options) that fits within that bandwidth, typically adjusting as changes in available bandwidth occur in the network or changes in capabilities occur during the playback (such as available memory, CPU, display size, etc.).</t>
      </section>
      <section anchor="adapt-encode">
        <name>Adaptive Encoding</name>
        <t>Media servers can provide media streams at various bitrates because the media has been encoded at various bitrates. This is a so-called "ladder" of bitrates, that can be offered to media players as part of the manifest that describes the media being requested by the media player, so that the media player can select among the available bitrate choices.</t>
        <t>The media server may also choose to alter which bitrates are made available to players by adding or removing bitrate options from the ladder delivered to the player in subsequent manifests built and sent to the player. This way, both the player, through its selection of bitrate to request from the manifest, and the server, through its construction of the bitrates offered in the manifest, are able to affect network utilization.</t>
      </section>
      <section anchor="adapt-deliver">
        <name>Adaptive Segmented Delivery</name>
        <t>ABR playback is commonly implemented by streaming clients using HLS <xref target="RFC8216"/> or DASH <xref target="MPEG-DASH"/> to perform a reliable segmented delivery of media over HTTP. Different implementations use different strategies <xref target="ABRSurvey"/>, often relying on proprietary algorithms (called rate adaptation or bitrate selection algorithms) to perform available bandwidth estimation/prediction and the bitrate selection.</t>
        <t>Many server-player systems will do an initial probe or a very simple throughput speed test at the start of a video playback. This is done to get a rough sense of the highest video bitrate in the ABR ladder that the network between the server and player will likely be able to provide under initial network conditions. After the initial testing, clients tend to rely upon passive network observations and will make use of player side statistics such as buffer fill rates to monitor and respond to changing network conditions.</t>
        <t>The choice of bitrate occurs within the context of optimizing for some metric monitored by the client, such as highest achievable video quality or lowest chances for a rebuffering event (playback stall).</t>
      </section>
      <section anchor="advertising">
        <name>Advertising</name>
        <t>A variety of business models exist for producers of streaming media. Some content providers derive the majority of the revenue associated with streaming media directly from consumer subscriptions or one-time purchases. Others derive the majority of their streaming media associated revenue from advertising. Many content providers derive income from a mix of these and other sources of funding. The inclusion of advertising alongside or interspersed with streaming media content is therefore common in today's media landscape.</t>
        <t>Some commonly used forms of advertising can introduce potential user experience issues for a media stream.
This section provides a very brief overview of a complex and evolving space, but a complete coverage of the potential issues is out of scope for this document.</t>
        <t>The same techniques used to allow a media player to switch between renditions of different bitrates at segment or chunk boundaries can also be used to enable the dynamic insertion of advertisements (herafter referred to as "ads").</t>
        <t>Ads may be inserted either with Client Side Ad Insertion (CSAI) or Server Side Ad Insertion (SSAI).
In CSAI, the ABR manifest will generally include links to an external ad server for some segments of the media stream, while in SSAI the server will remain the same during advertisements, but will include media segments that contain the advertising.
In SSAI, the media segments may or may not be sourced from an external ad server like with CSAI.</t>
        <t>In general, the more targeted the ad request is, the more requests the ad service needs to be able to handle concurrently.
If connectivity is poor to the ad service, this can cause rebuffering even if the underlying video assets (both content and ads) are able to be accessed quickly.
The less targeted, the more likely the ad requests can be consolidated and can leverage the same caching techniques as the video content.</t>
        <t>In some cases, especially with SSAI, advertising space in a stream is reserved for a specific advertiser and can be integrated with the video so that the segments share the same encoding properties such as bitrate, dynamic range, and resolution.
However, in many cases ad servers integrate with a Supply Side Platform (SSP) that offers advertising space in real-time auctions via an Ad Exchange, with bids for the advertising space coming from Demand Side Platforms (DSPs) that collect money from advertisers for delivering the advertisements.
Most such Ad Exchanges use application-level protocol specifications published by the Interactive Advertising Bureau <xref target="IAB-ADS"/>, an industry trade organization.</t>
        <t>This ecosystem balances several competing objectives, and integrating with it naively can produce surprising user experience results.
For example, ad server provisioning and/or the bitrate of the ad segments might be different from that of the main video, either of which can sometimes result in video stalls.
For another example, since the inserted ads are often produced independently they might have a different base volume level than the main video, which can make for a jarring user experience.</t>
        <t>Additionally, this market historically has had incidents of ad fraud (misreporting of ad delivery to end users for financial gain).
As a mitigation for concerns driven by those incidents, some SSPs have required the use of players with features like reporting of ad delivery, or providing information that can be used for user tracking.
Some of these and other measures have raised privacy concerns for end users.</t>
        <t>In general this is a rapidly developing space with many considerations, and media streaming operators engaged in advertising may need to research these and other concerns to find solutions that meet their user experience, user privacy, and financial goals.
For further reading on mitigations, <xref target="BAP"/> has published some standards and best practices based on user experience research.</t>
      </section>
      <section anchor="bitrate-detection-challenges">
        <name>Bitrate Detection Challenges</name>
        <t>This kind of bandwidth-measurement system can experience trouble in several ways that are affected by networking issues.
Because adaptive application-level response strategies are often using rates as observed by the application layer, there are sometimes inscrutable transport-level protocol behaviors that can produce surprising measurement values when the application-level feedback loop is interacting with a transport-level feedback loop.</t>
        <t>A few specific examples of surprising phenomena that affect bitrate detection measurements are described in the following subsections.
As these examples will demonstrate, it is common to encounter cases that can deliver application level measurements that are too low, too high, and (possibly) correct but varying more quickly than a lab-tested selection algorithm might expect.</t>
        <t>These effects and others that cause transport behavior to diverge from lab modeling can sometimes have a significant impact on bitrate selection and on user quality of experience, especially where players use naive measurement strategies and selection algorithms that don't account for the likelihood of bandwidth measurements that diverge from the true path capacity.</t>
        <section anchor="idle-time">
          <name>Idle Time between Segments</name>
          <t>When the bitrate selection is chosen substantially below the available capacity of the network path, the response to a segment request will typically complete in much less absolute time than the duration of the requested segment, leaving significant idle time between segment downloads. This can have a few surprising consequences:</t>
          <ul spacing="normal">
            <li>TCP slow-start when restarting after idle requires multiple RTTs to re-establish a throughput at the network's available capacity.  When the active transmission time for segments is substantially shorter than the time between segments, leaving an idle gap between segments that triggers a restart of TCP slow-start, the estimate of the successful download speed coming from the application-visible receive rate on the socket can thus end up much lower than the actual available network capacity.  This in turn can prevent a shift to the most appropriate bitrate. <xref target="RFC7661"/> provides some mitigations for this effect at the TCP transport layer, for senders who anticipate a high incidence of this problem.</li>
            <li>Mobile flow-bandwidth spectrum and timing mapping can be impacted by idle time in some networks. The carrier capacity assigned to a link can vary with activity. Depending on the idle time characteristics, this can result in a lower available bitrate than would be achievable with a steadier transmission in the same network.</li>
          </ul>
          <t>Some receiver-side ABR algorithms such as <xref target="ELASTIC"/> are designed to try to avoid this effect.</t>
          <t>Another way to mitigate this effect is by the help of two simultaneous TCP connections, as explained in <xref target="MMSys11"/> for Microsoft Smooth Streaming. In some cases, the system-level TCP slow-start restart can also be disabled, for example as described in <xref target="OReilly-HPBN"/>.</t>
        </section>
        <section anchor="hol-blocking">
          <name>Head-of-Line Blocking</name>
          <t>In the event of a lost packet on a TCP connection with SACK
support (a common case for segmented delivery in practice), loss
of a packet can provide a confusing bandwidth signal to the
receiving application.  Because of the sliding window in TCP,
many packets may be accepted by the receiver without being available
to the application until the missing packet arrives.  Upon arrival
of the one missing packet after retransmit, the receiver will
suddenly get access to a lot of data at the same time.</t>
          <t>To a receiver measuring bytes received per unit time at the
application layer, and interpreting it as an estimate of the
available network bandwidth, this appears as a high jitter in
the goodput measurement, presenting as a stall, followed by a sudden leap that can far exceed the actual
capacity of the transport path from the server when the hole in
the received data is filled by a later retransmission.</t>
          <t>It is worth noting that more modern transport protocols such as QUIC have mitigation of head-of-line blocking as a protocol design goal. See <xref target="quic-behavior"/> for more details.</t>
        </section>
        <section anchor="wide-and-rapid-variation-in-path-capacity">
          <name>Wide and Rapid Variation in Path Capacity</name>
          <t>As many end devices have moved to wireless connectivity for the final hop (Wi-Fi, 5G, or LTE), new problems in bandwidth detction have emerged from radio interference and signal strength effects.</t>
          <t>Each of these technologies can experience sudden changes in capacity as the end user device moves from place to place and encounters new sources of interference.
Microwave ovens, for example, can cause a throughput degradation of more than a factor of 2 while active <xref target="Micro"/>.
5G and LTE likewise can easily see rate variation by a factor of 2 or more over a span of seconds as users move around.</t>
          <t>These swings in actual transport capacity can result in user experience issues that can be exacerbated by insufficiently responsive ABR algorithms.</t>
        </section>
      </section>
      <section anchor="measure-coll">
        <name>Measurement Collection</name>
        <t>In addition to measurements media players use to guide their segment-by-segment adaptive streaming requests, streaming media providers may also rely on measurements collected from media players to provide analytics that can be used for decisions such as whether the adaptive encoding bitrates in use are the best ones to provide to media players, or whether current media content caching is providing the best experience for viewers. To that effect, the Consumer Technology Association (CTA) who owns the Web Application Video Ecosystem (WAVE) project has published two important specifications.</t>
        <section anchor="cta-2066-streaming-quality-of-experience-events-properties-and-metrics">
          <name>CTA-2066: Streaming Quality of Experience Events, Properties and Metrics</name>
          <t><xref target="CTA-2066"/> specifies a set of media player events, properties, quality of experience (QoE) metrics and associated terminology for representing streaming media quality of experience across systems, media players and analytics vendors. While all these events, properties, metrics and associated terminology is used across a number of proprietary analytics and measurement solutions, they were used in slightly (or vastly) different ways that led to interoperability issues. CTA-2066 attempts to address this issue by defining a common terminology as well as how each metric should be computed for consistent reporting.</t>
        </section>
        <section anchor="cta-5004-common-media-client-data-cmcd">
          <name>CTA-5004: Common Media Client Data (CMCD)</name>
          <t>Many assume that the CDNs have a holistic view into the health and performance of the streaming clients. However, this is not the case. The CDNs produce millions of log lines per second across hundreds of thousands of clients and they have no concept of a "session" as a client would have, so CDNs are decoupled from the metrics the clients generate and report. A CDN cannot tell which request belongs to which playback session, the duration of any media object, the bitrate, or whether any of the clients have stalled and are rebuffering or are about to stall and will rebuffer. The consequence of this decoupling is that a CDN cannot prioritize delivery for when the client needs it most, prefetch content, or trigger alerts when the network itself may be underperforming. One approach to couple the CDN to the playback sessions is for the clients to communicate standardized media-relevant information to the CDNs while they are fetching data. <xref target="CTA-5004"/> was developed exactly for this purpose.</t>
        </section>
      </section>
      <section anchor="unreliable">
        <name>Unreliable Transport</name>
        <t>In contrast to segmented delivery, several applications use unreliable UDP or SCTP with its "partial reliability" extension <xref target="RFC3758"/> to deliver Media encapsulated in RTP <xref target="RFC3550"/> or raw MPEG Transport Stream ("MPEG-TS")-formatted video <xref target="MPEG-TS"/>, when the media is being delivered in situations such as broadcast and live streaming, that better tolerate occasional packet loss without retransmission.</t>
        <t>Under congestion and loss, this approach generally experiences more video artifacts with fewer delay or head-of-line blocking effects. Often one of the key goals is to reduce latency, to better support applications like videoconferencing, or for other live-action video with interactive components, such as some sporting events.</t>
        <t>The Secure Reliable Transport protocol <xref target="SRT"/> also uses UDP in an effort to achieve lower latency for streaming media, although it adds reliability at the application layer.</t>
        <t>Congestion avoidance strategies for deployments using unreliable transport protocols vary widely in practice, ranging from being entirely unresponsive to congestion, to using feedback signaling to change encoder settings (as in <xref target="RFC5762"/>), to using fewer enhancement layers (as in <xref target="RFC6190"/>), to using proprietary methods to detect "quality of experience" issues and turn off video in order to allow less bandwidth-intensive media such as audio to be delivered.</t>
        <t>More details about congestion avoidance strategies used with unreliable transport protocols are included in <xref target="udp-behavior"/>.</t>
      </section>
    </section>
    <section anchor="sec-trans">
      <name>Evolution of Transport Protocols and Transport Protocol Behaviors</name>
      <t>Because networking resources are shared between users, a good place to start our discussion is how contention between users, and mechanisms to resolve that contention in ways that are "fair" between users, impact streaming media users. These topics are closely tied to transport protocol behaviors.</t>
      <t>As noted in <xref target="sec-abr"/>, ABR response strategies such as HLS <xref target="RFC8216"/> or DASH <xref target="MPEG-DASH"/> are attempting to respond to changing path characteristics, and underlying transport protocols are also attempting to respond to changing path characteristics.</t>
      <t>For most of the history of the Internet, these transport protocols, described in <xref target="udp-behavior"/> and <xref target="tcp-behavior"/>, have had relatively consistent behaviors that have changed slowly, if at all, over time. Newly standardized transport protocols like QUIC <xref target="RFC9000"/> can behave differently from existing transport protocols, and these behaviors may evolve over time more rapidly than currently-used transport protocols.</t>
      <t>For this reason, we have included a description of how the path characteristics that streaming media providers may see are likely to evolve over time.</t>
      <section anchor="udp-behavior">
        <name>UDP and Its Behavior</name>
        <t>For most of the history of the Internet, we have trusted UDP-based applications to limit their impact on other users. One of the strategies used was to use UDP for simple query-response application protocols, such as DNS, which is often used to send a single-packet request to look up the IP address for a DNS name, and return a single-packet response containing the IP address. Although it is possible to saturate a path between a DNS client and DNS server with DNS requests, in practice, that was rare enough that DNS included few mechanisms to resolve contention between DNS users and other users (whether they are also using DNS, or using other application protocols).</t>
        <t>In recent times, the usage of UDP-based applications that were not simple query-response protocols has grown substantially, and since UDP does not provide any feedback mechanism to senders to help limit impacts on other users, application-level protocols such as RTP <xref target="RFC3550"/> have been responsible for the decisions that TCP-based applications have delegated to TCP - what to send, how much to send, and when to send it. So, the way some UDP-based applications interact with other users has changed.</t>
        <t>It is also worth pointing out that because UDP has no transport-layer feedback mechanisms, UDP-based applications that send and receive substantial amounts of information are expected to provide their own feedback mechanisms. This expectation is most recently codified in Best Current Practice <xref target="RFC8085"/>.</t>
        <t>RTP relies on RTCP Sender and Receiver Reports <xref target="RFC3550"/> as its own feedback mechanism, and even includes Circuit Breakers for Unicast RTP Sessions <xref target="RFC8083"/> for situations when normal RTP congestion control has not been able to react sufficiently to RTP flows sending at rates that result in sustained packet loss.</t>
        <t>The notion of "Circuit Breakers" has also been applied to other UDP applications in <xref target="RFC8084"/>, such as tunneling packets over UDP that are potentially not congestion-controlled (for example, "Encapsulating MPLS in UDP", as described in <xref target="RFC7510"/>). If streaming media is carried in tunnels encapsulated in UDP, these media streams may encounter "tripped circuit breakers", with resulting user-visible impacts.</t>
      </section>
      <section anchor="tcp-behavior">
        <name>TCP and Its Behavior</name>
        <t>For most of the history of the Internet, we have trusted TCP to limit the impact of applications that sent a significant number of packets, in either or both directions, on other users. Although early versions of TCP were not particularly good at limiting this impact <xref target="RFC0793"/>, the addition of Slow Start and Congestion Avoidance, as described in <xref target="RFC2001"/>, were critical in allowing TCP-based applications to "use as much bandwidth as possible, but to avoid using more bandwidth than was possible". Although dozens of RFCs have been written refining TCP decisions about what to send, how much to send, and when to send it, since 1988 <xref target="Jacobson-Karels"/> the signals available for TCP senders remained unchanged - end-to-end acknowledgements for packets that were successfully sent and received, and packet timeouts for packets that were not.</t>
        <t>The success of the largely TCP-based Internet is evidence that the mechanisms TCP used to achieve equilibrium quickly, at a point where TCP senders do not interfere with other TCP senders for sustained periods of time, have been largely successful. The Internet continued to work even when the specific mechanisms used to reach equilibrium changed over time. Because TCP provides a common tool to avoid contention, as some TCP-based applications like FTP were largely replaced by other TCP-based applications like HTTP, the transport behavior remained consistent.</t>
        <t>In recent times, the TCP goal of probing for available bandwidth, and "backing off" when a network path is saturated, has been supplanted by the goal of avoiding growing queues along network paths, which prevent TCP senders from reacting quickly when a network path is saturated. Congestion control mechanisms such as COPA <xref target="COPA18"/> and BBR <xref target="I-D.cardwell-iccrg-bbr-congestion-control"/> make these decisions based on measured path delays, assuming that if the measured path delay is increasing, the sender is injecting packets onto the network path faster than the receiver can accept them, so the sender should adjust its sending rate accordingly.</t>
        <t>Although TCP behavior has changed over time, the common practice of implementing TCP as part of an operating system kernel has acted to limit how quickly TCP behavior can change. Even with the widespread use of automated operating system update installation on many end-user systems, streaming media providers could have a reasonable expectation that they could understand TCP transport protocol behaviors, and that those behaviors would remain relatively stable in the short term.</t>
      </section>
      <section anchor="quic-behavior">
        <name>The QUIC Protocol and Its Behavior</name>
        <t>The QUIC protocol, developed from a proprietary protocol into an IETF standards-track protocol <xref target="RFC9000"/>, turns many of the statements made in <xref target="udp-behavior"/> and <xref target="tcp-behavior"/> on their heads.</t>
        <t>Although QUIC provides an alternative to the TCP and UDP transport protocols, QUIC is itself encapsulated in UDP. As noted elsewhere in <xref target="gen-encrypt"/>, the QUIC protocol encrypts almost all of its transport parameters, and all of its payload, so any intermediaries that network operators may be using to troubleshoot HTTP streaming media performance issues, perform analytics, or even intercept exchanges in current applications will not work for QUIC-based applications without making changes to their networks. <xref target="stream-encrypt-media"/> describes the implications of media encryption in more detail.</t>
        <t>While QUIC is designed as a general-purpose transport protocol, and can carry different application-layer protocols, the current standardized mapping is for HTTP/3 <xref target="I-D.ietf-quic-http"/>, which describes how QUIC transport features are used for HTTP. The convention is for HTTP/3 to run over UDP port 443 <xref target="Port443"/> but this is not a strict requirement.</t>
        <t>When HTTP/3 is encapsulated in QUIC, which is then encapsulated in UDP, streaming operators (and network operators) might see UDP traffic patterns that are similar to HTTP(S) over TCP. Since earlier versions of HTTP(S) rely on TCP, UDP ports may be blocked for any port numbers that are not commonly used, such as UDP 53 for DNS. Even when UDP ports are not blocked and HTTP/3 can flow, streaming operators (and network operators) may severely rate-limit this traffic because they do not expect to see legitimate high-bandwidth traffic such as streaming media over the UDP ports that HTTP/3 is using.</t>
        <t>As noted in <xref target="hol-blocking"/>, because TCP provides a reliable, in-order delivery service for applications, any packet loss for a TCP connection causes "head-of-line blocking", so that no TCP segments arriving after a packet is lost will be delivered to the receiving application until the lost packet is retransmitted, allowing in-order delivery to the application to continue. As described in <xref target="RFC9000"/>, QUIC connections can carry multiple streams, and when packet losses do occur, only the streams carried in the lost packet are delayed.</t>
        <t>A QUIC extension currently being specified (<xref target="I-D.ietf-quic-datagram"/>) adds the capability for "unreliable" delivery, similar to the service provided by UDP, but these datagrams are still subject to the QUIC connection's congestion controller, providing some transport-level congestion avoidance measures, which UDP does not.</t>
        <t>As noted in <xref target="tcp-behavior"/>, there is an increasing interest in transport protocol behaviors that respond to delay measurements, instead of responding to packet loss. These behaviors may deliver improved user experience, but in some cases have not responded to sustained packet loss, which exhausts available buffers along the end-to-end path that may affect other users sharing that path. The QUIC protocol provides a set of congestion control hooks that can be used for algorithm agility, and <xref target="RFC9002"/> defines a basic algorithm with transport behavior that is roughly similar to TCP NewReno <xref target="RFC6582"/>. However, QUIC senders can and do unilaterally choose to use different algorithms such as loss-based CUBIC <xref target="RFC8312"/>, delay-based COPA or BBR, or even something completely different.</t>
        <t>We do have experience with deploying new congestion controllers without melting the Internet (CUBIC is one example), but the point mentioned in <xref target="tcp-behavior"/> about TCP being implemented in operating system kernels is also different with QUIC. Although QUIC can be implemented in operating system kernels, one of the design goals when this work was chartered was "QUIC is expected to support rapid, distributed development and testing of features", and to meet this expectation, many implementers have chosen to implement QUIC in user space, outside the operating system kernel, and to even distribute QUIC libraries with their own applications.</t>
        <t>The decision to deploy a new version of QUIC is relatively uncontrolled, compared to other widely used transport protocols, and this can include new transport behaviors that appear without much notice except to the QUIC endpoints. At IETF 105, Christian Huitema and Brian Trammell presented a talk on "Congestion Defense in Depth" <xref target="CDiD"/>, that explored potential concerns about new QUIC congestion controllers being broadly deployed without the testing and instrumentation that current major content providers routinely include. The sense of the room at IETF 105 was that the current major content providers understood what is at stake when they deploy new congestion controllers, but this presentation, and the related discussion in TSVAREA minutes from IETF 105 (<xref target="tsvarea-105"/>, are still worth a look for new and rapidly growing content providers.</t>
        <t>It is worth considering that if TCP-based HTTP traffic and UDP-based HTTP/3 traffic are allowed to enter operator networks on roughly equal terms, questions of fairness and contention will be heavily dependent on interactions between the congestion controllers in use for TCP-based HTTP traffic and UDP-based HTTP/3 traffic.</t>
        <t>More broadly, <xref target="I-D.ietf-quic-manageability"/> discusses manageability of the QUIC transport protocol, focusing on the implications of QUIC's design and wire image on network operations involving QUIC traffic. It discusses what network operators can consider in some detail.</t>
      </section>
    </section>
    <section anchor="stream-encrypt-media">
      <name>Streaming Encrypted Media</name>
      <t>"Encrypted Media" has at least three meanings:</t>
      <ul spacing="normal">
        <li>Media encrypted at the application layer, typically using some sort of Digital Rights Management (DRM) system, and typically remaining encrypted "at rest", when senders and receivers store it.</li>
        <li>Media encrypted by the sender at the transport layer, and remaining encrypted until it reaches the ultimate media consumer (in this document, referred to as "end-to-end media encryption").</li>
        <li>Media encrypted by the sender at the transport layer, and remaining encrypted until it reaches some intermediary that is <em>not</em> the ultimate media consumer, but has credentials allowing decryption of the media content. This intermediary may examine and even transform the media content in some way, before forwarding re-encrypted media content (in this document referred to as "hop-by-hop media encryption").</li>
      </ul>
      <t>Both "hop-by-hop" and "end-to-end" encrypted transport may carry media that is, in addition, encrypted at the application layer.</t>
      <t>Each of these encryption strategies is intended to achieve a different goal. For instance, application-level encryption may be used for business purposes, such as avoiding piracy or enforcing geographic restrictions on playback, while transport-layer encryption may be used to prevent media steam manipulation or to protect manifests.</t>
      <t>This document does not take a position on whether those goals are "valid" (whatever that might mean).</t>
      <t>In this document, we will focus on media encrypted at the transport layer, whether encrypted "hop-by-hop" or "end-to-end". Because media encrypted at the application layer will only be processed by application-level entities, this encryption does not have transport-layer implications.</t>
      <t>Both "End-to-End" and "Hop-by-Hop" media encryption have specific implications for streaming operators. These are described in <xref target="hop-by-hop-encrypt"/> and <xref target="e2em-encrypt"/>.</t>
      <section anchor="gen-encrypt">
        <name>General Considerations for Media Encryption</name>
        <t>The use of strong encryption does provide confidentiality for encrypted streaming media, from the sender to either an intermediary or the ultimate media consumer, and this does prevent Deep Packet Inspection by any intermediary that does not possess credentials allowing decryption. However, even encrypted content streams may be vulnerable to traffic analysis. An intermediary that can identify an encrypted media stream without decrypting it, may be able to "fingerprint" the encrypted media stream of known content, and then match the targeted media stream against the fingerprints of known content. This protection can be lessened if a media provider is repeatedly encrypting the same content. <xref target="CODASPY17"/> is an example of what is possible when identifying HTTPS-protected videos over TCP transport, based either on the length of entire resources being transferred, or on characteristic packet patterns at the beginning of a resource being transferred.</t>
        <t>If traffic analysis is successful at identifying encrypted content and associating it with specific users, this breaks privacy as certainly as examining decrypted traffic.</t>
        <t>Because HTTPS has historically layered HTTP on top of TLS, which is in turn layered on top of TCP, intermediaries do have access to unencrypted TCP-level transport information, such as retransmissions, and some carriers exploited this information in attempts to improve transport-layer performance <xref target="RFC3135"/>. The most recent standardized version of HTTPS, HTTP/3 <xref target="I-D.ietf-quic-http"/>, uses the QUIC protocol <xref target="RFC9000"/> as its transport layer. QUIC relies on the TLS 1.3 initial handshake <xref target="RFC8446"/> only for key exchange <xref target="RFC9001"/>, and encrypts almost all transport parameters itself, with the exception of a few invariant header fields. In the QUIC short header, the only transport-level parameter which is sent "in the clear" is the Destination Connection ID <xref target="RFC8999"/>, and even in the QUIC long header, the only transport-level parameters sent "in the clear" are the Version, Destination Connection ID, and Source Connection ID. For these reasons, HTTP/3 is significantly more "opaque" than HTTPS with HTTP/1 or HTTP/2.</t>
      </section>
      <section anchor="hop-by-hop-encrypt">
        <name>Considerations for "Hop-by-Hop" Media Encryption</name>
        <t>Although the IETF has put considerable emphasis on end-to-end streaming media encryption, there are still important use cases that require the insertion of intermediaries.</t>
        <t>There are a variety of ways to involve intermediaries, and some are much more intrusive than others.</t>
        <t>From a content provider's perspective, a number of considerations are in play. The first question is likely whether the content provider intends that intermediaries are explicitly addressed from endpoints, or whether the content provider is willing to allow intermediaries to "intercept" streaming content transparently, with no awareness or permission from either endpoint.</t>
        <t>If a content provider does not actively work to avoid interception by intermediaries, the effect will be indistinguishable from "impersonation attacks", and endpoints cannot be assumed of any level of privacy.</t>
        <t>Assuming that a content provider does intend to allow intermediaries to participate in content streaming, and does intend to provide some level of privacy for endpoints, there are a number of possible tools, either already available or still being specified. These include</t>
        <ul spacing="normal">
          <li>Server And Network assisted DASH <xref target="MPEG-DASH-SAND"/> - this specification introduces explicit messaging between DASH clients and network elements or between various network elements for the purpose of improving the efficiency of streaming sessions by providing information about real-time operational characteristics of networks, servers, proxies, caches, CDNs, as well as DASH client's performance and status.</li>
          <li>"Double Encryption Procedures for the Secure Real-Time Transport Protocol (SRTP)" <xref target="RFC8723"/> - this specification provides a cryptographic transform for the Secure Real-time Transport Protocol that provides both hop-by-hop and end-to-end security guarantees.</li>
          <li>Secure Media Frames <xref target="SFRAME"/> - <xref target="RFC8723"/> is closely tied to SRTP, and this close association impeded widespread deployment, because it could not be used for the most common media content delivery mechanisms. A more recent proposal, Secure Media Frames <xref target="SFRAME"/>, also provides both hop-by-hop and end-to-end security guarantees, but can be used with other transport protocols beyond SRTP.</li>
        </ul>
        <t>If a content provider chooses not to involve intermediaries, this choice should be carefully considered. As an example, if media manifests are encrypted end-to-end, network providers who had been able to lower offered quality and reduce on their networks will no longer be able to do that. Some resources that might inform this consideration are in <xref target="RFC8825"/> (for WebRTC) and <xref target="I-D.ietf-quic-manageability"/> (for HTTP/3 and QUIC).</t>
      </section>
      <section anchor="e2em-encrypt">
        <name>Considerations for "End-to-End" Media Encryption</name>
        <t>"End-to-end" media encryption offers the potential of providing privacy for streaming media consumers, with the idea being that if an unauthorized intermediary can't decrypt streaming media, the intermediary can't use Deep Packet Inspection (DPI) to examine HTTP request and response headers and identify the media content being streamed.</t>
        <t>"End-to-end" media encryption has become much more widespread in the years since the IETF issued "Pervasive Monitoring Is an Attack" <xref target="RFC7258"/> as a Best Current Practice, describing pervasive monitoring as a much greater threat than previously appreciated. After the Snowden disclosures, many content providers made the decision to use HTTPS protection - HTTP over TLS - for most or all content being delivered as a routine practice, rather than in exceptional cases for content that was considered "sensitive".</t>
        <t>Unfortunately, as noted in <xref target="RFC7258"/>, there is no way to prevent pervasive monitoring by an "attacker", while allowing monitoring by a more benign entity who "only" wants to use DPI to examine HTTP requests and responses in order to provide a better user experience. If a modern encrypted transport protocol is used for end-to-end media encryption, intermediary streaming operators are unable to examine transport and application protocol behavior. As described in <xref target="hop-by-hop-encrypt"/>, only an intermediary streaming operator who is explicitly authorized to examine packet payloads, rather than intercepting packets and examining them without authorization, can continue these practices.</t>
        <t><xref target="RFC7258"/> said that "The IETF will strive to produce specifications that mitigate pervasive monitoring attacks", so streaming operators should expect the IETF's direction toward preventing unauthorized monitoring of IETF protocols to continue for the forseeable future.</t>
      </section>
    </section>
    <section anchor="further">
      <name>Further Reading and References</name>
      <t>Editor's note: This section is to be kept in a living document where future references, links and/or updates to the existing references will be reflected. That living document is likely to be an IETF-owned Wiki: https://tinyurl.com/streaming-opcons-reading</t>
      <section anchor="industry-terminology">
        <name>Industry Terminology</name>
        <ul spacing="normal">
          <li>SVA Glossary: https://glossary.streamingvideoalliance.org/</li>
          <li>Datazoom Video Player Data Dictionary: https://help.datazoom.io/hc/en-us/articles/360031323311</li>
          <li>Datazoom Video Metrics Encyclopedia: https://help.datazoom.io/hc/en-us/articles/360046177191</li>
        </ul>
      </section>
      <section anchor="surveys-and-tutorials">
        <name>Surveys and Tutorials</name>
        <section anchor="encoding">
          <name>Encoding</name>
          <t>The following papers describe how video is encoded, different video encoding standards and tradeoffs in selecting encoding parameters.</t>
          <ul spacing="normal">
            <li>Overview of the Versatile Video Coding (VVC) Standard and its Applications (https://ieeexplore.ieee.org/document/9503377)</li>
            <li>Video Compression - From Concepts to the H.264/AVC Standard (https://ieeexplore.ieee.org/document/1369695)</li>
            <li>Developments in International Video Coding Standardization After AVC, With an Overview of Versatile Video Coding (VVC) (https://ieeexplore.ieee.org/document/9328514)</li>
            <li>A Technical Overview of AV1 (https://ieeexplore.ieee.org/document/9363937)</li>
            <li>CTU Depth Decision Algorithms for HEVC: A Survey (https://arxiv.org/abs/2104.08328)</li>
          </ul>
        </section>
        <section anchor="packaging">
          <name>Packaging</name>
          <t>The following papers summarize the methods for selecting packaging configurations such as the resolution-bitrate pairs, segment durations, use of constant vs. variable-duration segments, etc.</t>
          <ul spacing="normal">
            <li>Deep Reinforced Bitrate Ladders for Adaptive Video Streaming (https://dl.acm.org/doi/10.1145/3458306.3458873)</li>
            <li>Comparing Fixed and Variable Segment Durations for Adaptive Video Streaming: a Holistic Analysis (https://dl.acm.org/doi/10.1145/3339825.3391858)</li>
          </ul>
        </section>
        <section anchor="content-delivery">
          <name>Content Delivery</name>
          <t>The following links describe some of the issues and solutions regarding the interconnecting of the content delivery networks.</t>
          <ul spacing="normal">
            <li>Open Caching: Open standards for Caching in ISP Networks: https://www.streamingvideoalliance.org/working-group/open-caching/</li>
            <li>Netflix Open Connect: https://openconnect.netflix.com</li>
          </ul>
        </section>
        <section anchor="abr-algorithms">
          <name>ABR Algorithms</name>
          <t>The two surveys describe and compare different rate-adaptation algorithms in terms of different metrics like achieved bitrate/quality, stall rate/duration, bitrate switching frequency, fairness, network utilization, etc.</t>
          <ul spacing="normal">
            <li>A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP (https://ieeexplore.ieee.org/document/8424813)</li>
            <li>A Survey of Rate Adaptation Techniques for Dynamic Adaptive Streaming Over HTTP (https://ieeexplore.ieee.org/document/7884970)</li>
          </ul>
        </section>
        <section anchor="low-latency-live-adaptive-streaming">
          <name>Low-Latency Live Adaptive Streaming</name>
          <t>The following papers describe the peculiarities of adaptive streaming in low-latency live streaming scenarios.</t>
          <ul spacing="normal">
            <li>Catching the Moment with LoL+ in Twitch-like Low-latency Live Streaming Platforms (https://ieeexplore.ieee.org/document/9429986)</li>
            <li>Data-driven Bandwidth Prediction Models and Automated Model Selection for Low Latency (https://ieeexplore.ieee.org/document/9154522)</li>
            <li>Performance Analysis of ACTE: A Bandwidth Prediction Method for Low-latency Chunked Streaming (https://dl.acm.org/doi/10.1145/3387921)</li>
            <li>Online Learning for Low-latency Adaptive Streaming (https://dl.acm.org/doi/10.1145/3339825.3397042)</li>
            <li>Tightrope Walking in Low-latency Live Streaming: Optimal Joint Adaptation of Video Rate and Playback Speed (https://dl.acm.org/doi/10.1145/3458305.3463382)</li>
            <li>Content-aware Playback Speed Control for Low-latency Live Streaming of Sports (https://dl.acm.org/doi/10.1145/3458305.3478437)</li>
          </ul>
        </section>
        <section anchor="serverclientnetwork-collaboration">
          <name>Server/Client/Network Collaboration</name>
          <t>The following papers explain the benefits of server and network assistance in client-driven streaming systems. There is also a good reference about how congestion affects video quality and how rate control works in streaming applications.</t>
          <ul spacing="normal">
            <li>Manus Manum Lavat: Media Clients and Servers Cooperating with Common Media Client/Server Data (https://dl.acm.org/doi/10.1145/3472305.3472886)</li>
            <li>Common media client data (CMCD): initial findings (https://dl.acm.org/doi/10.1145/3458306.3461444)</li>
            <li>SDNDASH: Improving QoE of HTTP Adaptive Streaming Using Software Defined Networking (https://dl.acm.org/doi/10.1145/2964284.2964332)</li>
            <li>Caching in HTTP Adaptive Streaming: Friend or Foe? (https://dl.acm.org/doi/10.1145/2578260.2578270)</li>
            <li>A Survey on Multi-Access Edge Computing Applied to Video Streaming: Some Research Issues and Challenges
(https://ieeexplore.ieee.org/document/9374553)</li>
            <li>The Ultimate Guide to Internet Congestion Control (https://www.compiralabs.com/ultimate-guide-congestion-control)</li>
          </ul>
        </section>
        <section anchor="qoe-metrics">
          <name>QoE Metrics</name>
          <t>The following papers describe various QoE metrics one can use in streaming applications.</t>
          <ul spacing="normal">
            <li>QoE Management of Multimedia Streaming Services in Future Networks: a Tutorial and Survey (https://ieeexplore.ieee.org/document/8930519)</li>
            <li>A Survey on Quality of Experience of HTTP Adaptive Streaming (https://ieeexplore.ieee.org/document/6913491)</li>
            <li>QoE Modeling for HTTP Adaptive Video Streaming-A Survey and Open Challenges (https://ieeexplore.ieee.org/document/8666971)</li>
          </ul>
        </section>
        <section anchor="point-clouds-and-immersive-media">
          <name>Point Clouds and Immersive Media</name>
          <t>The following papers explain the latest developments in the immersive media domain (for video and audio) and the developing standards for such media.</t>
          <ul spacing="normal">
            <li>A Survey on Adaptive 360o Video Streaming: Solutions, Challenges and Opportunities (https://ieeexplore.ieee.org/document/9133103)</li>
            <li>MPEG Immersive Video Coding Standard (https://ieeexplore.ieee.org/document/9374648)</li>
            <li>Emerging MPEG Standards for Point Cloud Compression (https://ieeexplore.ieee.org/document/8571288)</li>
            <li>Compression of Sparse and Dense Dynamic Point Clouds--Methods and Standards (https://ieeexplore.ieee.org/document/9457097)</li>
            <li>MPEG Standards for Compressed Representation of Immersive Audio (https://ieeexplore.ieee.org/document/9444109)</li>
            <li>An Overview of Omnidirectional MediA Format (OMAF) (https://ieeexplore.ieee.org/document/9380215)</li>
            <li>From Capturing to Rendering: Volumetric Media Delivery with Six Degrees of Freedom (https://ieeexplore.ieee.org/document/9247522)</li>
          </ul>
        </section>
      </section>
      <section anchor="open-source-tools">
        <name>Open-Source Tools</name>
        <ul spacing="normal">
          <li>5G-MA: https://www.5g-mag.com/reference-tools</li>
          <li>dash.js: http://reference.dashif.org/dash.js/latest/samples/</li>
          <li>DASH-IF Conformance: https://conformance.dashif.org</li>
          <li>ExoPlayer: https://github.com/google/ExoPlayer</li>
          <li>FFmpeg: https://www.ffmpeg.org/</li>
          <li>GPAC: https://gpac.wp.imt.fr/</li>
          <li>hls.js: https://github.com/video-dev/hls.js</li>
          <li>OBS Studio: https://obsproject.com/</li>
          <li>Shaka Player: https://github.com/google/shaka-player</li>
          <li>Shaka Packager: https://github.com/google/shaka-packager</li>
          <li>Traffic Control CDN: https://trafficcontrol.apache.org/</li>
          <li>VideoLAN: https://www.videolan.org/projects/</li>
          <li>video.js: https://github.com/videojs/video.js</li>
        </ul>
      </section>
      <section anchor="technical-events">
        <name>Technical Events</name>
        <ul spacing="normal">
          <li>ACM Mile High Video (MHV): https://mile-high.video/</li>
          <li>ACM Multimedia Systems (MMSys): https://acmmmsys.org</li>
          <li>ACM Multimedia (MM): https://acmmm.org</li>
          <li>ACM NOSSDAV: https://www.nossdav.org/</li>
          <li>ACM Packet Video: https://packet.video/</li>
          <li>Demuxed and meetups: https://demuxed.com/ and https://demuxed.com/events/</li>
          <li>DVB World: https://www.dvbworld.org</li>
          <li>EBU BroadThinking: https://tech.ebu.ch/events/broadthinking2021</li>
          <li>IBC Conference: https://show.ibc.org/conference/ibc-conference</li>
          <li>IEEE Int. Conf. on Multimedia and Expo (ICME)</li>
          <li>Media Web Symposium: https://www.fokus.fraunhofer.de/de/go/mws</li>
          <li>Live Video Stack: https://sh2021.livevideostack.com</li>
          <li>Picture Coding Symp. (PCS)</li>
          <li>SCTE Expo: https://expo.scte.org/</li>
        </ul>
      </section>
      <section anchor="list-of-organizations-working-on-streaming-media">
        <name>List of Organizations Working on Streaming Media</name>
        <ul spacing="normal">
          <li>3GPP SA4: https://www.3gpp.org/specifications-groups/sa-plenary/sa4-codec</li>
          <li>5G-MAG: https://www.5g-mag.com/</li>
          <li>AOM: http://aomedia.org/</li>
          <li>ATSC: https://www.atsc.org/</li>
          <li>CTA WAVE: https://cta.tech/Resources/Standards/WAVE-Project</li>
          <li>DASH Industry Forum: https://dashif.org/</li>
          <li>DVB: https://dvb.org/</li>
          <li>HbbTV: https://www.hbbtv.org/</li>
          <li>HESP Alliance: https://www.hespalliance.org/</li>
          <li>IAB: https://www.iab.com/</li>
          <li>MPEG: https://www.mpegstandards.org/</li>
          <li>Streaming Video Alliance: https://www.streamingvideoalliance.org/</li>
          <li>SCTE: https://www.scte.org/</li>
          <li>SMPTE: https://www.smpte.org/</li>
          <li>SRT Alliance: https://www.srtalliance.org/</li>
          <li>Video Services Forum: https://vsf.tv/</li>
          <li>VQEG: https://www.its.bldrdoc.gov/vqeg/vqeg-home.aspx</li>
          <li>W3C: https://www.w3.org/</li>
        </ul>
      </section>
      <section anchor="topics-to-keep-an-eye-on">
        <name>Topics to Keep an Eye on</name>
        <section anchor="g-and-media">
          <name>5G and Media</name>
          <t>5G new radio and systems technologies provide new functionalities for video distribution. 5G targets not only smartphones, but also new devices such as augmented reality glasses or automotive receivers. Higher bandwidth, lower latencies, edge and cloud computing functionalities, service-based architectures, low power consumption, broadcast/multicast functionalities and other network functions come hand in hand with new media formats and processing capabilities promising better and more consistent quality for traditional video streaming services as well as enabling new experiences such as immersive media and augmented realities.</t>
          <ul spacing="normal">
            <li>5G Multimedia Standardization (https://www.riverpublishers.com/journal_read_html_article.php?j=JICTS/6/1/8)</li>
          </ul>
        </section>
        <section anchor="ad-insertion">
          <name>Ad Insertion</name>
          <t>Ads can be inserted at different stages in the streaming workflow, on the server side or client side. The DASH-IF guidelines detail server-side ad-insertion with period replacements based on manipulating the manifest. HLS interstitials provide a similar approach. The idea is that the manifest can be changed and point to a sub-playlist of segments, possibly located on a different location. This approach results in efficient resource usage in the network, as duplicate caching is avoided, but some intelligence at the player is needed to deal with content transitions (e.g., codec changes, timeline gaps, etc.). Player support for such content is gradually maturing. Other important technologies for ad insertion include signalling of ads and breaks that is still typically based on SCTE-35 for HLS and SCTE-214 for DASH. Such signals provide useful information for scheduling the ads and contacting ad servers. The usage of SCTE-35 for ad insertion is popular in the broadcast industry, while the exact usage in the OTT space is still being discussed in SCTE. Another important technology is identification of ads, such as based on ad-id or other commercial entities that provide such services. The identification of the ad in a manifest or stream is usually standardized by SMPTE. Other key technologies for ad insertion include tracking of viewer impressions, usually based on Video Ad Serving Template (VAST) defined by IAB.</t>
          <ul spacing="normal">
            <li>DASH-IF Ad Insertion Guidelines: https://dashif.org/docs/CR-Ad-Insertion-r7.pdf</li>
            <li>SCTE-214-1: https://www.scte.org/standards-development/library/standards-catalog/ansiscte-214-1-2016/</li>
            <li>RP 2092-1:2015 - SMPTE Recommended Practice - Advertising Digital Identifier (Ad-ID) Representations: https://ieeexplore.ieee.org/document/7291518</li>
            <li>IAB Tech Lab Digital Video Studio: https://iabtechlab.com/audio-video/tech-lab-digital-video-suite/</li>
          </ul>
        </section>
        <section anchor="contribution-and-ingest">
          <name>Contribution and Ingest</name>
          <t>There are different contribution and ingest specifications dealing with different use cases. A common case is contribution that previously happened over satellite to a broadcast or streaming headend. RIST and SRT are examples of such contribution protocols. Within a streaming headend the encoder and packager/CDN may have an ingest/contribution interface as well. This is specified by the DASH-IF Ingest.</t>
          <ul spacing="normal">
            <li>DASH-IF Ingest: https://github.com/Dash-Industry-Forum/Ingest</li>
            <li>RIST: https://www.rist.tv/</li>
            <li>SRT: https://github.com/Haivision/srt</li>
          </ul>
        </section>
        <section anchor="synchronized-encoding-and-packaging">
          <name>Synchronized Encoding and Packaging</name>
          <t>Practical streaming headends need redundant encoders and packagers to operate without glitches and blackouts. The redundant operation requires synchronization between two or more encoders and also between two or more packagers that possibly handle different inputs and outputs, generating compatible inter-changeable output representations. This problem is important for anyone developing a streaming headend at scale, and the synchronization problem is currently under discussion in the wider community. Follow the developments at: https://sites.google.com/view/encodersyncworkshop/home</t>
        </section>
        <section anchor="webrtc-based-streaming">
          <name>WebRTC-Based Streaming</name>
          <t>WebRTC is increasingly being used for streaming of time-sensitive content such as live sporting events. Innovations in cloud computing allow implementers to efficiently scale delivery of content using WebRTC. Support for WebRTC communication is available on all modern web browsers and is available on native clients for all major platforms.</t>
          <ul spacing="normal">
            <li>DASH-IF WebRTC Discussions: https://dashif.org/webRTC/</li>
            <li>Overview of WebRTC: https://webrtc.org/</li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requires no actions from IANA.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security is an important matter for streaming media applications and it was briefly touched on in <xref target="gen-encrypt"/>. This document itself introduces no new security issues.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Alexandre Gouaillard, Aaron Falk, Chris Lemmons, Dave Oran, Glenn Deen, Kyle Rose, Leslie Daigle, Lucas Pardue, Mark Nottingham, Matt Stock, Mike English, Renan Krishna, Roni Even, Sanjay Mishra, and Will Law for very helpful suggestions, reviews and comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Informative References</name>
      <reference anchor="CVNI" target="https://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/white-paper-c11-741490.html">
        <front>
          <title>Cisco Visual Networking Index: Forecast and Trends, 2017-2022 White Paper</title>
          <author>
            <organization/>
          </author>
          <date year="2019" month="February" day="27"/>
        </front>
      </reference>
      <reference anchor="PCC" target="https://ieeexplore.ieee.org/document/8571288">
        <front>
          <title>Emerging MPEG Standards for Point Cloud Compression</title>
          <author initials="S." surname="Schwarz">
            <organization/>
          </author>
          <author initials="" surname="et al">
            <organization/>
          </author>
          <date year="2019" month="March"/>
        </front>
        <seriesInfo name="IEEE Journal on Emerging and Selected Topics in Circuits and Systems" value=""/>
      </reference>
      <reference anchor="MPEGI" target="https://ieeexplore.ieee.org/document/9374648">
        <front>
          <title>MPEG Immersive Video Coding Standard</title>
          <author initials="J. M." surname="Boyce">
            <organization/>
          </author>
          <author initials="" surname="et al">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
        <seriesInfo name="Proceedings of the IEEE" value=""/>
      </reference>
      <reference anchor="MMSys11" target="https://dl.acm.org/doi/10.1145/1943552.1943574">
        <front>
          <title>An experimental evaluation of rate-adaptation algorithms in adaptive streaming over HTTP</title>
          <author initials="S." surname="Akhshabi">
            <organization/>
          </author>
          <author initials="A. C." surname="Begen">
            <organization/>
          </author>
          <author initials="C." surname="Dovrolis">
            <organization/>
          </author>
          <date year="2011" month="February"/>
        </front>
        <seriesInfo name="ACM MMSys" value=""/>
      </reference>
      <reference anchor="MMSP20" target="https://ieeexplore.ieee.org/document/9287117">
        <front>
          <title>Evaluating the performance of Apple's low-latency HLS</title>
          <author initials="K." surname="Durak">
            <organization/>
          </author>
          <author initials="" surname="et al">
            <organization/>
          </author>
          <date year="2020" month="September"/>
        </front>
        <seriesInfo name="IEEE MMSP" value=""/>
      </reference>
      <reference anchor="LL-DASH" target="https://dashif.org/docs/CR-Low-Latency-Live-r8.pdf">
        <front>
          <title>Low-latency Modes for DASH</title>
          <author initials="" surname="DASH-IF">
            <organization/>
          </author>
          <date year="2020" month="March"/>
        </front>
      </reference>
      <reference anchor="CMAF-CTE" target="https://www.akamai.com/us/en/multimedia/documents/white-paper/low-latency-streaming-cmaf-whitepaper.pdf">
        <front>
          <title>Ultra-Low-Latency Streaming Using Chunked-Encoded and Chunked Transferred CMAF</title>
          <author initials="W." surname="Law" fullname="Will Law">
            <organization>Akamai Technologies, Inc.</organization>
          </author>
          <date year="2018" month="October"/>
        </front>
      </reference>
      <reference anchor="ABRSurvey" target="https://ieeexplore.ieee.org/abstract/document/8424813">
        <front>
          <title>A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP</title>
          <author initials="B." surname="Taani">
            <organization/>
          </author>
          <author initials="A. C." surname="Begen">
            <organization/>
          </author>
          <author initials="C." surname="Timmerer">
            <organization/>
          </author>
          <author initials="R." surname="Zimmermann">
            <organization/>
          </author>
          <author initials="A." surname="Bentaleb et al" fullname="Abdelhak Bentaleb et al.">
            <organization/>
          </author>
          <date year="2019"/>
        </front>
        <seriesInfo name="IEEE Communications Surveys &amp; Tutorials" value=""/>
      </reference>
      <reference anchor="Encodings" target="https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices">
        <front>
          <title>HLS Authoring Specification for Apple Devices</title>
          <author initials="" surname="Apple, Inc">
            <organization/>
          </author>
          <date year="2020" month="June"/>
        </front>
      </reference>
      <reference anchor="Mishra" target="https://datatracker.ietf.org/meeting/interim-2020-mops-01/materials/slides-interim-2020-mops-01-sessa-april-15-2020-mops-interim-an-update-on-streaming-video-alliance">
        <front>
          <title>An update on Streaming Video Alliance</title>
          <author initials="S." surname="Mishra">
            <organization/>
          </author>
          <author initials="J." surname="Thibeault">
            <organization/>
          </author>
          <date year="2020" month="April"/>
        </front>
      </reference>
      <reference anchor="Labovitz" target="https://www.nokia.com/blog/network-traffic-insights-time-covid-19-april-9-update/">
        <front>
          <title>Network traffic insights in the time of COVID-19: April 9 update</title>
          <author initials="C." surname="Labovitz">
            <organization/>
          </author>
          <date year="2020" month="April"/>
        </front>
      </reference>
      <reference anchor="LabovitzDDoS" target="https://venturebeat.com/2018/05/13/why-the-game-industry-is-still-vulnerable-to-distributed-denial-of-service-attacks/">
        <front>
          <title>Why the game industry is still vulnerable to DDoS attacks</title>
          <author initials="D." surname="Takahashi">
            <organization/>
          </author>
          <date year="2018" month="May"/>
        </front>
      </reference>
      <reference anchor="IABcovid" target="https://datatracker.ietf.org/doc/draft-iab-covid19-workshop/">
        <front>
          <title>Report from the IAB COVID-19 Network Impacts Workshop 2020</title>
          <author initials="J." surname="Arkko">
            <organization/>
          </author>
          <author initials="S." surname="Farrel">
            <organization/>
          </author>
          <author initials="M." surname="Kühlewind">
            <organization/>
          </author>
          <author initials="C." surname="Perkins">
            <organization/>
          </author>
          <date year="2020" month="November"/>
        </front>
      </reference>
      <reference anchor="CTA-2066" target="https://shop.cta.tech/products/streaming-quality-of-experience-events-properties-and-metrics">
        <front>
          <title>Streaming Quality of Experience Events, Properties and Metrics</title>
          <author>
            <organization>Consumer Technology Association</organization>
          </author>
          <date year="2020" month="March"/>
        </front>
      </reference>
      <reference anchor="CTA-5004" target="https://shop.cta.tech/products/web-application-video-ecosystem-common-media-client-data-cta-5004">
        <front>
          <title>Common Media Client Data (CMCD)</title>
          <author initials="" surname="CTA">
            <organization/>
          </author>
          <date year="2020" month="September"/>
        </front>
      </reference>
      <reference anchor="ELASTIC" target="https://ieeexplore.ieee.org/document/6691442">
        <front>
          <title>ELASTIC: A client-side controller for dynamic adaptive streaming over HTTP (DASH)</title>
          <author initials="L." surname="De Cicco">
            <organization/>
          </author>
          <author initials="V." surname="Caldaralo">
            <organization/>
          </author>
          <author initials="V." surname="Palmisano">
            <organization/>
          </author>
          <author initials="S." surname="Mascolo">
            <organization/>
          </author>
          <date year="2013" month="December"/>
        </front>
        <seriesInfo name="Packet Video Workshop" value=""/>
      </reference>
      <reference anchor="OReilly-HPBN" target="https://hpbn.co/building-blocks-of-tcp/">
        <front>
          <title>High Performance Browser Networking (Chapter 2: Building Blocks of TCP)</title>
          <author>
            <organization/>
          </author>
          <date year="2021" month="May"/>
        </front>
      </reference>
      <reference anchor="Jacobson-Karels" target="https://ee.lbl.gov/papers/congavoid.pdf">
        <front>
          <title>Congestion Avoidance and Control</title>
          <author initials="V." surname="Jacobson">
            <organization/>
          </author>
          <author initials="M." surname="Karels">
            <organization/>
          </author>
          <date year="1988" month="November"/>
        </front>
      </reference>
      <reference anchor="COPA18" target="https://web.mit.edu/copa/">
        <front>
          <title>Copa: Practical Delay-Based Congestion Control for the Internet</title>
          <author initials="V." surname="Arun">
            <organization/>
          </author>
          <author initials="H." surname="Balakrishnan">
            <organization/>
          </author>
          <date year="2018" month="April"/>
        </front>
        <seriesInfo name="USENIX NSDI" value=""/>
      </reference>
      <reference anchor="Port443" target="https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt">
        <front>
          <title>Service Name and Transport Protocol Port Number Registry</title>
          <author>
            <organization/>
          </author>
          <date year="2021" month="April"/>
        </front>
      </reference>
      <reference anchor="CDiD" target="https://datatracker.ietf.org/meeting/105/materials/slides-105-tsvarea-congestion-defense-in-depth-00">
        <front>
          <title>(A call for) Congestion Defense in Depth</title>
          <author initials="C." surname="Huitema">
            <organization/>
          </author>
          <author initials="B." surname="Trammell">
            <organization/>
          </author>
          <date year="2019" month="July"/>
        </front>
      </reference>
      <reference anchor="tsvarea-105" target="https://datatracker.ietf.org/meeting/105/materials/minutes-105-tsvarea-00">
        <front>
          <title>TSVAREA Minutes - IETF 105</title>
          <author>
            <organization/>
          </author>
          <date year="2019" month="July"/>
        </front>
      </reference>
      <reference anchor="CODASPY17" target="https://dl.acm.org/doi/10.1145/3029806.3029821">
        <front>
          <title>Identifying HTTPS-Protected Netflix Videos in Real-Time</title>
          <author initials="A." surname="Reed">
            <organization/>
          </author>
          <author initials="M." surname="Kranch">
            <organization/>
          </author>
          <date year="2017" month="March"/>
        </front>
        <seriesInfo name="ACM CODASPY" value=""/>
      </reference>
      <reference anchor="MPEG-DASH" target="https://www.iso.org/standard/79329.html">
        <front>
          <title>ISO/IEC 23009-1:2019 Dynamic adaptive streaming over HTTP (DASH) - Part 1: Media presentation description and segment formats</title>
          <author>
            <organization/>
          </author>
          <date year="2019" month="December"/>
        </front>
      </reference>
      <reference anchor="MPEG-DASH-SAND" target="https://www.iso.org/standard/69079.html">
        <front>
          <title>ISO/IEC 23009-5:2017 Dynamic adaptive streaming over HTTP (DASH) - Part 5: Server and network assisted DASH (SAND)</title>
          <author>
            <organization/>
          </author>
          <date year="2017" month="February"/>
        </front>
      </reference>
      <reference anchor="MPEG-CMAF" target="https://www.iso.org/standard/79106.html">
        <front>
          <title>ISO/IEC 23000-19:2020 Multimedia application format (MPEG-A) - Part 19: Common media application format (CMAF) for segmented media</title>
          <author>
            <organization/>
          </author>
          <date year="2020" month="March"/>
        </front>
      </reference>
      <reference anchor="MPEG-TS" target="https://www.itu.int/rec/T-REC-H.222.0">
        <front>
          <title>H.222.0 : Information technology - Generic coding of moving pictures and associated audio information: Systems</title>
          <author>
            <organization/>
          </author>
          <date year="2018" month="August" day="29"/>
        </front>
      </reference>
      <reference anchor="SFRAME" target="https://datatracker.ietf.org/doc/charter-ietf-sframe/">
        <front>
          <title>Secure Media Frames Working Group (Home Page)</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="SRT" target="https://datatracker.ietf.org/meeting/interim-2020-mops-01/materials/slides-interim-2020-mops-01-sessa-april-15-2020-mops-interim-an-update-on-streaming-video-alliance">
        <front>
          <title>Secure Reliable Transport (SRT) Protocol Overview</title>
          <author initials="M." surname="Sharabayko" fullname="Maxim Sharabayko">
            <organization/>
          </author>
          <date year="2020" month="April" day="15"/>
        </front>
      </reference>
      <reference anchor="Micro">
        <front>
          <title>Microwave Oven Signal Interference Mitigation For Wi-Fi Communication Systems</title>
          <author initials="T. M." surname="Taher" fullname="Tanim M. Taher">
            <organization/>
          </author>
          <author initials="M. J." surname="Misurac" fullname="Matthew J. Misurac">
            <organization/>
          </author>
          <author initials="J. L." surname="LoCicero" fullname="Joseph L. LoCicero">
            <organization/>
          </author>
          <author initials="D. R." surname="Ucci" fullname="Donald R. Ucci">
            <organization/>
          </author>
          <date year="2008"/>
        </front>
        <seriesInfo name="2008 5th IEEE Consumer Communications and Networking Conference 5th IEEE, pp. 67-68" value=""/>
      </reference>
      <reference anchor="IAB-ADS" target="https://www.iab.com/">
        <front>
          <title>IAB</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="BAP" target="https://www.betterads.org/">
        <front>
          <title>The Coalition for Better Ads</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="CoDel">
        <front>
          <title>Controlling Queue Delay</title>
          <author initials="K." surname="Nichols">
            <organization/>
          </author>
          <author initials="V." surname="Jacobson">
            <organization/>
          </author>
          <date year="2012" month="July"/>
        </front>
        <seriesInfo name="Communications of the ACM, Volume 55, Issue 7, pp. 42-50" value=""/>
      </reference>
      <reference anchor="Survey360o" target="https://ieeexplore.ieee.org/document/9133103">
        <front>
          <title>A Survey on Adaptive 360° Video Streaming: Solutions, Challenges and Opportunities</title>
          <author initials="A." surname="Yaqoob">
            <organization/>
          </author>
          <author initials="T." surname="Bi">
            <organization/>
          </author>
          <author initials="G." surname="Muntean">
            <organization/>
          </author>
          <date year="2020" month="July"/>
        </front>
        <seriesInfo name="IEEE Communications Surveys &amp; Tutorials" value=""/>
      </reference>
      <reference anchor="I-D.ietf-quic-http">
        <front>
          <title>Hypertext Transfer Protocol Version 3 (HTTP/3)</title>
          <author fullname="Mike Bishop">
            <organization>Akamai</organization>
          </author>
          <date day="2" month="February" year="2021"/>
          <abstract>
            <t>The QUIC transport protocol has several features that are desirable
   in a transport for HTTP, such as stream multiplexing, per-stream flow
   control, and low-latency connection establishment.  This document
   describes a mapping of HTTP semantics over QUIC.  This document also
   identifies HTTP/2 features that are subsumed by QUIC, and describes
   how HTTP/2 extensions can be ported to HTTP/3.

DO NOT DEPLOY THIS VERSION OF HTTP

   DO NOT DEPLOY THIS VERSION OF HTTP/3 UNTIL IT IS IN AN RFC.  This
   version is still a work in progress.  For trial deployments, please
   use earlier versions.

Note to Readers

   Discussion of this draft takes place on the QUIC working group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/search/?email_list=quic.

   Working Group information can be found at https://github.com/quicwg;
   source code and issues list for this draft can be found at
   https://github.com/quicwg/base-drafts/labels/-http.
            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-http-34"/>
      </reference>
      <reference anchor="I-D.ietf-quic-manageability">
        <front>
          <title>Manageability of the QUIC Transport Protocol</title>
          <author fullname="Mirja Kuehlewind">
            <organization>Ericsson</organization>
          </author>
          <author fullname="Brian Trammell">
            <organization>Google Switzerland GmbH</organization>
          </author>
          <date day="21" month="January" year="2022"/>
          <abstract>
            <t>   This document discusses manageability of the QUIC transport protocol,
   focusing on the implications of QUIC's design and wire image on
   network operations involving QUIC traffic.  It is intended as a
   "user's manual" for the wire image, providing guidance for network
   operators and equipment vendors who rely on the use of transport-
   aware network functions.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-manageability-14"/>
      </reference>
      <reference anchor="I-D.ietf-quic-datagram">
        <front>
          <title>An Unreliable Datagram Extension to QUIC</title>
          <author fullname="Tommy Pauly">
            <organization>Apple Inc.</organization>
          </author>
          <author fullname="Eric Kinnear">
            <organization>Apple Inc.</organization>
          </author>
          <author fullname="David Schinazi">
            <organization>Google LLC</organization>
          </author>
          <date day="4" month="February" year="2022"/>
          <abstract>
            <t>   This document defines an extension to the QUIC transport protocol to
   add support for sending and receiving unreliable datagrams over a
   QUIC connection.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the QUIC Working Group
   mailing list (mailto:quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/quic/.

   Source for this draft and an issue tracker can be found at
   https://github.com/quicwg/datagram.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-datagram-10"/>
      </reference>
      <reference anchor="I-D.ietf-quic-qlog-main-schema">
        <front>
          <title>Main logging schema for qlog</title>
          <author fullname="Robin Marx">
            <organization>KU Leuven</organization>
          </author>
          <author fullname="Luca Niccolini">
            <organization>Facebook</organization>
          </author>
          <author fullname="Marten Seemann">
            <organization>Protocol Labs</organization>
          </author>
          <date day="25" month="October" year="2021"/>
          <abstract>
            <t>   This document describes a high-level schema for a standardized
   logging format called qlog.  This format allows easy sharing of data
   and the creation of reusable visualization and debugging tools.  The
   high-level schema in this document is intended to be protocol-
   agnostic.  Separate documents specify how the format should be used
   for specific protocol data.  The schema is also format-agnostic, and
   can be represented in for example JSON, csv or protobuf.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-qlog-main-schema-01"/>
      </reference>
      <reference anchor="I-D.ietf-quic-qlog-h3-events">
        <front>
          <title>HTTP/3 and QPACK event definitions for qlog</title>
          <author fullname="Robin Marx">
            <organization>KU Leuven</organization>
          </author>
          <author fullname="Luca Niccolini">
            <organization>Facebook</organization>
          </author>
          <author fullname="Marten Seemann">
            <organization>Protocol Labs</organization>
          </author>
          <date day="10" month="June" year="2021"/>
          <abstract>
            <t>   This document describes concrete qlog event definitions and their
   metadata for HTTP/3 and QPACK-related events.  These events can then
   be embedded in the higher level schema defined in [QLOG-MAIN].

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-qlog-h3-events-00"/>
      </reference>
      <reference anchor="I-D.ietf-quic-qlog-quic-events">
        <front>
          <title>QUIC event definitions for qlog</title>
          <author fullname="Robin Marx">
            <organization>KU Leuven</organization>
          </author>
          <author fullname="Luca Niccolini">
            <organization>Facebook</organization>
          </author>
          <author fullname="Marten Seemann">
            <organization>Protocol Labs</organization>
          </author>
          <date day="10" month="June" year="2021"/>
          <abstract>
            <t>   This document describes concrete qlog event definitions and their
   metadata for QUIC events.  These events can then be embedded in the
   higher level schema defined in [QLOG-MAIN].

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-qlog-quic-events-00"/>
      </reference>
      <reference anchor="I-D.cardwell-iccrg-bbr-congestion-control">
        <front>
          <title>BBR Congestion Control</title>
          <author fullname="Neal Cardwell">
            <organization>Google</organization>
          </author>
          <author fullname="Yuchung Cheng">
            <organization>Google</organization>
          </author>
          <author fullname="Soheil Hassas Yeganeh">
            <organization>Google</organization>
          </author>
          <author fullname="Ian Swett">
            <organization>Google</organization>
          </author>
          <author fullname="Van Jacobson">
            <organization>Google</organization>
          </author>
          <date day="7" month="November" year="2021"/>
          <abstract>
            <t>   This document specifies the BBR congestion control algorithm.  BBR
   ("Bottleneck Bandwidth and Round-trip propagation time") uses recent
   measurements of a transport connection'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 "bufferbloat").  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-01"/>
      </reference>
      <reference anchor="I-D.draft-pantos-hls-rfc8216bis">
        <front>
          <title>HTTP Live Streaming 2nd Edition</title>
          <author fullname="Roger Pantos">
            <organization>Apple Inc.</organization>
          </author>
          <date day="8" month="November" year="2021"/>
          <abstract>
            <t>   This document obsoletes RFC 8216.  It describes a protocol for
   transferring unbounded streams of multimedia data.  It specifies the
   data format of the files and the actions to be taken by the server
   (sender) and the clients (receivers) of the streams.  It describes
   version 10 of this protocol.


            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-pantos-hls-rfc8216bis-10"/>
      </reference>
      <reference anchor="I-D.ietf-httpbis-cache">
        <front>
          <title>HTTP Caching</title>
          <author fullname="Roy T. Fielding">
            <organization>Adobe</organization>
          </author>
          <author fullname="Mark Nottingham">
            <organization>Fastly</organization>
          </author>
          <author fullname="Julian Reschke">
            <organization>greenbytes GmbH</organization>
          </author>
          <date day="12" month="September" year="2021"/>
          <abstract>
            <t>   The Hypertext Transfer Protocol (HTTP) is a stateless application-
   level protocol for distributed, collaborative, hypertext information
   systems.  This document defines HTTP caches and the associated header
   fields that control cache behavior or indicate cacheable response
   messages.

   This document obsoletes RFC 7234.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-cache-19"/>
      </reference>
      <reference anchor="RFC0793">
        <front>
          <title>Transmission Control Protocol</title>
          <author fullname="J. Postel" initials="J." surname="Postel">
            <organization/>
          </author>
          <date month="September" year="1981"/>
        </front>
        <seriesInfo name="STD" value="7"/>
        <seriesInfo name="RFC" value="793"/>
        <seriesInfo name="DOI" value="10.17487/RFC0793"/>
      </reference>
      <reference anchor="RFC2001">
        <front>
          <title>TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms</title>
          <author fullname="W. Stevens" initials="W." surname="Stevens">
            <organization/>
          </author>
          <date month="January" year="1997"/>
          <abstract>
            <t>Modern implementations of TCP contain four intertwined algorithms that have never been fully documented as Internet standards: slow start, congestion avoidance, fast retransmit, and fast recovery.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2001"/>
        <seriesInfo name="DOI" value="10.17487/RFC2001"/>
      </reference>
      <reference anchor="RFC3135">
        <front>
          <title>Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations</title>
          <author fullname="J. Border" initials="J." surname="Border">
            <organization/>
          </author>
          <author fullname="M. Kojo" initials="M." surname="Kojo">
            <organization/>
          </author>
          <author fullname="J. Griner" initials="J." surname="Griner">
            <organization/>
          </author>
          <author fullname="G. Montenegro" initials="G." surname="Montenegro">
            <organization/>
          </author>
          <author fullname="Z. Shelby" initials="Z." surname="Shelby">
            <organization/>
          </author>
          <date month="June" year="2001"/>
          <abstract>
            <t>This document is a survey of Performance Enhancing Proxies (PEPs) often employed to improve degraded TCP performance caused by characteristics of specific link environments, for example, in satellite, wireless WAN, and wireless LAN environments.  This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3135"/>
        <seriesInfo name="DOI" value="10.17487/RFC3135"/>
      </reference>
      <reference anchor="RFC3550">
        <front>
          <title>RTP: A Transport Protocol for Real-Time Applications</title>
          <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
            <organization/>
          </author>
          <author fullname="S. Casner" initials="S." surname="Casner">
            <organization/>
          </author>
          <author fullname="R. Frederick" initials="R." surname="Frederick">
            <organization/>
          </author>
          <author fullname="V. Jacobson" initials="V." surname="Jacobson">
            <organization/>
          </author>
          <date month="July" year="2003"/>
          <abstract>
            <t>This memorandum describes RTP, the real-time transport protocol.  RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services.  RTP does not address resource reservation and does not guarantee quality-of- service for real-time services.  The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality.  RTP and RTCP are designed to be independent of the underlying transport and network layers.  The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes.  There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="64"/>
        <seriesInfo name="RFC" value="3550"/>
        <seriesInfo name="DOI" value="10.17487/RFC3550"/>
      </reference>
      <reference anchor="RFC3758">
        <front>
          <title>Stream Control Transmission Protocol (SCTP) Partial Reliability Extension</title>
          <author fullname="R. Stewart" initials="R." surname="Stewart">
            <organization/>
          </author>
          <author fullname="M. Ramalho" initials="M." surname="Ramalho">
            <organization/>
          </author>
          <author fullname="Q. Xie" initials="Q." surname="Xie">
            <organization/>
          </author>
          <author fullname="M. Tuexen" initials="M." surname="Tuexen">
            <organization/>
          </author>
          <author fullname="P. Conrad" initials="P." surname="Conrad">
            <organization/>
          </author>
          <date month="May" year="2004"/>
          <abstract>
            <t>This memo describes an extension to the Stream Control Transmission Protocol (SCTP) that allows an SCTP endpoint to signal to its peer that it should move the cumulative ack point forward.  When both sides of an SCTP association support this extension, it can be used by an SCTP implementation to provide partially reliable data transmission service to an upper layer protocol.  This memo describes the protocol extensions, which consist of a new parameter for INIT and INIT ACK, and a new FORWARD TSN chunk type, and provides one example of a partially reliable service that can be provided to the upper layer via this mechanism.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3758"/>
        <seriesInfo name="DOI" value="10.17487/RFC3758"/>
      </reference>
      <reference anchor="RFC4733">
        <front>
          <title>RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals</title>
          <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
            <organization/>
          </author>
          <author fullname="T. Taylor" initials="T." surname="Taylor">
            <organization/>
          </author>
          <date month="December" year="2006"/>
          <abstract>
            <t>This memo describes how to carry dual-tone multifrequency (DTMF) signalling, other tone signals, and telephony events in RTP packets. It obsoletes RFC 2833.</t>
            <t>This memo captures and expands upon the basic framework defined in RFC 2833, but retains only the most basic event codes.  It sets up an IANA registry to which other event code assignments may be added. Companion documents add event codes to this registry relating to modem, fax, text telephony, and channel-associated signalling events. The remainder of the event codes defined in RFC 2833 are conditionally reserved in case other documents revive their use.</t>
            <t>This document provides a number of clarifications to the original document.  However, it specifically differs from RFC 2833 by removing the requirement that all compliant implementations support the DTMF events.  Instead, compliant implementations taking part in out-of-band negotiations of media stream content indicate what events they support.  This memo adds three new procedures to the RFC 2833 framework: subdivision of long events into segments, reporting of multiple events in a single packet, and the concept and reporting of state events.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4733"/>
        <seriesInfo name="DOI" value="10.17487/RFC4733"/>
      </reference>
      <reference anchor="RFC5594">
        <front>
          <title>Report from the IETF Workshop on Peer-to-Peer (P2P) Infrastructure, May 28, 2008</title>
          <author fullname="J. Peterson" initials="J." surname="Peterson">
            <organization/>
          </author>
          <author fullname="A. Cooper" initials="A." surname="Cooper">
            <organization/>
          </author>
          <date month="July" year="2009"/>
          <abstract>
            <t>This document reports the outcome of a workshop organized by the Real-time Applications and Infrastructure Area Directors of the IETF to discuss network delay and congestion issues resulting from increased Peer-to-Peer (P2P) traffic volumes.  The workshop was held on May 28, 2008 at MIT in Cambridge, MA, USA.  The goals of the workshop were twofold: to understand the technical problems that ISPs and end users are experiencing as a result of high volumes of P2P traffic, and to begin to understand how the IETF may be helpful in addressing these problems.  Gaining an understanding of where in the IETF this work might be pursued and how to extract feasible work items were highlighted as important tasks in pursuit of the latter goal.  The workshop was very well attended and produced several work items that have since been taken up by members of the IETF community.   This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5594"/>
        <seriesInfo name="DOI" value="10.17487/RFC5594"/>
      </reference>
      <reference anchor="RFC5762">
        <front>
          <title>RTP and the Datagram Congestion Control Protocol (DCCP)</title>
          <author fullname="C. Perkins" initials="C." surname="Perkins">
            <organization/>
          </author>
          <date month="April" year="2010"/>
          <abstract>
            <t>The Real-time Transport Protocol (RTP) is a widely used transport for real-time multimedia on IP networks.  The Datagram Congestion Control Protocol (DCCP) is a transport protocol that provides desirable services for real-time applications.  This memo specifies a mapping of RTP onto DCCP, along with associated signalling, such that real- time applications can make use of the services provided by DCCP. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5762"/>
        <seriesInfo name="DOI" value="10.17487/RFC5762"/>
      </reference>
      <reference anchor="RFC6190">
        <front>
          <title>RTP Payload Format for Scalable Video Coding</title>
          <author fullname="S. Wenger" initials="S." surname="Wenger">
            <organization/>
          </author>
          <author fullname="Y.-K. Wang" initials="Y.-K." surname="Wang">
            <organization/>
          </author>
          <author fullname="T. Schierl" initials="T." surname="Schierl">
            <organization/>
          </author>
          <author fullname="A. Eleftheriadis" initials="A." surname="Eleftheriadis">
            <organization/>
          </author>
          <date month="May" year="2011"/>
          <abstract>
            <t>This memo describes an RTP payload format for Scalable Video Coding (SVC) as defined in Annex G of ITU-T Recommendation H.264, which is technically identical to Amendment 3 of ISO/IEC International Standard 14496-10.  The RTP payload format allows for packetization of one or more Network Abstraction Layer (NAL) units in each RTP packet payload, as well as fragmentation of a NAL unit in multiple RTP packets. Furthermore, it supports transmission of an SVC stream over a single as well as multiple RTP sessions.  The payload format defines a new media subtype name "H264-SVC", but is still backward compatible to RFC 6184 since the base layer, when encapsulated in its own RTP stream, must use the H.264 media subtype name ("H264") and the packetization method specified in RFC 6184.  The payload format has wide applicability in videoconferencing, Internet video streaming, and high-bitrate entertainment-quality video, among others.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6190"/>
        <seriesInfo name="DOI" value="10.17487/RFC6190"/>
      </reference>
      <reference anchor="RFC6582">
        <front>
          <title>The NewReno Modification to TCP's Fast Recovery Algorithm</title>
          <author fullname="T. Henderson" initials="T." surname="Henderson">
            <organization/>
          </author>
          <author fullname="S. Floyd" initials="S." surname="Floyd">
            <organization/>
          </author>
          <author fullname="A. Gurtov" initials="A." surname="Gurtov">
            <organization/>
          </author>
          <author fullname="Y. Nishida" initials="Y." surname="Nishida">
            <organization/>
          </author>
          <date month="April" year="2012"/>
          <abstract>
            <t>RFC 5681 documents the following four intertwined TCP congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery.  RFC 5681 explicitly allows certain modifications of these algorithms, including modifications that use the TCP Selective Acknowledgment (SACK) option (RFC 2883), and modifications that respond to "partial acknowledgments" (ACKs that cover new data, but not all the data outstanding when loss was detected) in the absence of SACK.  This document describes a specific algorithm for responding to partial acknowledgments, referred to as "NewReno".  This response to partial acknowledgments was first proposed by Janey Hoe.  This document obsoletes RFC 3782.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6582"/>
        <seriesInfo name="DOI" value="10.17487/RFC6582"/>
      </reference>
      <reference anchor="RFC6817">
        <front>
          <title>Low Extra Delay Background Transport (LEDBAT)</title>
          <author fullname="S. Shalunov" initials="S." surname="Shalunov">
            <organization/>
          </author>
          <author fullname="G. Hazel" initials="G." surname="Hazel">
            <organization/>
          </author>
          <author fullname="J. Iyengar" initials="J." surname="Iyengar">
            <organization/>
          </author>
          <author fullname="M. Kuehlewind" initials="M." surname="Kuehlewind">
            <organization/>
          </author>
          <date month="December" year="2012"/>
          <abstract>
            <t>Low Extra Delay Background Transport (LEDBAT) is an experimental delay-based congestion control algorithm that seeks to utilize the available bandwidth on an end-to-end path while limiting the consequent increase in queueing delay on that path.  LEDBAT uses changes in one-way delay measurements to limit congestion that the flow itself induces in the network.  LEDBAT is designed for use by background bulk-transfer applications to be no more aggressive than standard TCP congestion control (as specified in RFC 5681) and to yield in the presence of competing flows, thus limiting interference with the network performance of competing flows.  This document defines  an Experimental Protocol for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6817"/>
        <seriesInfo name="DOI" value="10.17487/RFC6817"/>
      </reference>
      <reference anchor="RFC6843">
        <front>
          <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Delay Metric Reporting</title>
          <author fullname="A. Clark" initials="A." surname="Clark">
            <organization/>
          </author>
          <author fullname="K. Gross" initials="K." surname="Gross">
            <organization/>
          </author>
          <author fullname="Q. Wu" initials="Q." surname="Wu">
            <organization/>
          </author>
          <date month="January" year="2013"/>
          <abstract>
            <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of delay metrics for use in a range of Real-time Transport Protocol (RTP) applications.   [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6843"/>
        <seriesInfo name="DOI" value="10.17487/RFC6843"/>
      </reference>
      <reference anchor="RFC7258">
        <front>
          <title>Pervasive Monitoring Is an Attack</title>
          <author fullname="S. Farrell" initials="S." surname="Farrell">
            <organization/>
          </author>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
            <organization/>
          </author>
          <date month="May" year="2014"/>
          <abstract>
            <t>Pervasive monitoring is a technical attack that should be mitigated in the design of IETF protocols, where possible.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="188"/>
        <seriesInfo name="RFC" value="7258"/>
        <seriesInfo name="DOI" value="10.17487/RFC7258"/>
      </reference>
      <reference anchor="RFC7510">
        <front>
          <title>Encapsulating MPLS in UDP</title>
          <author fullname="X. Xu" initials="X." surname="Xu">
            <organization/>
          </author>
          <author fullname="N. Sheth" initials="N." surname="Sheth">
            <organization/>
          </author>
          <author fullname="L. Yong" initials="L." surname="Yong">
            <organization/>
          </author>
          <author fullname="R. Callon" initials="R." surname="Callon">
            <organization/>
          </author>
          <author fullname="D. Black" initials="D." surname="Black">
            <organization/>
          </author>
          <date month="April" year="2015"/>
          <abstract>
            <t>This document specifies an IP-based encapsulation for MPLS, called MPLS-in-UDP for situations where UDP (User Datagram Protocol) encapsulation is preferred to direct use of MPLS, e.g., to enable UDP-based ECMP (Equal-Cost Multipath) or link aggregation.  The MPLS- in-UDP encapsulation technology must only be deployed within a single network (with a single network operator) or networks of an adjacent set of cooperating network operators where traffic is managed to avoid congestion, rather than over the Internet where congestion control is required.  Usage restrictions apply to MPLS-in-UDP usage for traffic that is not congestion controlled and to UDP zero checksum usage with IPv6.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7510"/>
        <seriesInfo name="DOI" value="10.17487/RFC7510"/>
      </reference>
      <reference anchor="RFC7656">
        <front>
          <title>A Taxonomy of Semantics and Mechanisms for Real-Time Transport Protocol (RTP) Sources</title>
          <author fullname="J. Lennox" initials="J." surname="Lennox">
            <organization/>
          </author>
          <author fullname="K. Gross" initials="K." surname="Gross">
            <organization/>
          </author>
          <author fullname="S. Nandakumar" initials="S." surname="Nandakumar">
            <organization/>
          </author>
          <author fullname="G. Salgueiro" initials="G." surname="Salgueiro">
            <organization/>
          </author>
          <author fullname="B. Burman" initials="B." role="editor" surname="Burman">
            <organization/>
          </author>
          <date month="November" year="2015"/>
          <abstract>
            <t>The terminology about, and associations among, Real-time Transport Protocol (RTP) sources can be complex and somewhat opaque.  This document describes a number of existing and proposed properties and relationships among RTP sources and defines common terminology for discussing protocol entities and their relationships.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7656"/>
        <seriesInfo name="DOI" value="10.17487/RFC7656"/>
      </reference>
      <reference anchor="RFC7661">
        <front>
          <title>Updating TCP to Support Rate-Limited Traffic</title>
          <author fullname="G. Fairhurst" initials="G." surname="Fairhurst">
            <organization/>
          </author>
          <author fullname="A. Sathiaseelan" initials="A." surname="Sathiaseelan">
            <organization/>
          </author>
          <author fullname="R. Secchi" initials="R." surname="Secchi">
            <organization/>
          </author>
          <date month="October" year="2015"/>
          <abstract>
            <t>This document provides a mechanism to address issues that arise when TCP is used for traffic that exhibits periods where the sending rate is limited by the application rather than the congestion window.  It provides an experimental update to TCP that allows a TCP sender to restart quickly following a rate-limited interval.  This method is expected to benefit applications that send rate-limited traffic using TCP while also providing an appropriate response if congestion is experienced.</t>
            <t>This document also evaluates the Experimental specification of TCP Congestion Window Validation (CWV) defined in RFC 2861 and concludes that RFC 2861 sought to address important issues but failed to deliver a widely used solution.  This document therefore reclassifies the status of RFC 2861 from Experimental to Historic.  This document obsoletes RFC 2861.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7661"/>
        <seriesInfo name="DOI" value="10.17487/RFC7661"/>
      </reference>
      <reference anchor="RFC8083">
        <front>
          <title>Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions</title>
          <author fullname="C. Perkins" initials="C." surname="Perkins">
            <organization/>
          </author>
          <author fullname="V. Singh" initials="V." surname="Singh">
            <organization/>
          </author>
          <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="RFC8084">
        <front>
          <title>Network Transport Circuit Breakers</title>
          <author fullname="G. Fairhurst" initials="G." surname="Fairhurst">
            <organization/>
          </author>
          <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>
      <reference anchor="RFC8085">
        <front>
          <title>UDP Usage Guidelines</title>
          <author fullname="L. Eggert" initials="L." surname="Eggert">
            <organization/>
          </author>
          <author fullname="G. Fairhurst" initials="G." surname="Fairhurst">
            <organization/>
          </author>
          <author fullname="G. Shepherd" initials="G." surname="Shepherd">
            <organization/>
          </author>
          <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="RFC8216">
        <front>
          <title>HTTP Live Streaming</title>
          <author fullname="R. Pantos" initials="R." role="editor" surname="Pantos">
            <organization/>
          </author>
          <author fullname="W. May" initials="W." surname="May">
            <organization/>
          </author>
          <date month="August" year="2017"/>
          <abstract>
            <t>This document describes a protocol for transferring unbounded streams of multimedia data.  It specifies the data format of the files and the actions to be taken by the server (sender) and the clients (receivers) of the streams.  It describes version 7 of this protocol.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8216"/>
        <seriesInfo name="DOI" value="10.17487/RFC8216"/>
      </reference>
      <reference anchor="RFC8312">
        <front>
          <title>CUBIC for Fast Long-Distance Networks</title>
          <author fullname="I. Rhee" initials="I." surname="Rhee">
            <organization/>
          </author>
          <author fullname="L. Xu" initials="L." surname="Xu">
            <organization/>
          </author>
          <author fullname="S. Ha" initials="S." surname="Ha">
            <organization/>
          </author>
          <author fullname="A. Zimmermann" initials="A." surname="Zimmermann">
            <organization/>
          </author>
          <author fullname="L. Eggert" initials="L." surname="Eggert">
            <organization/>
          </author>
          <author fullname="R. Scheffenegger" initials="R." surname="Scheffenegger">
            <organization/>
          </author>
          <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="RFC8446">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla">
            <organization/>
          </author>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
      <reference anchor="RFC8622">
        <front>
          <title>A Lower-Effort Per-Hop Behavior (LE PHB) for Differentiated Services</title>
          <author fullname="R. Bless" initials="R." surname="Bless">
            <organization/>
          </author>
          <date month="June" year="2019"/>
          <abstract>
            <t>This document specifies properties and characteristics of a Lower- Effort Per-Hop Behavior (LE PHB).  The primary objective of this LE PHB is to protect Best-Effort (BE) traffic (packets forwarded with the default PHB) from LE traffic in congestion situations, i.e., when resources become scarce, BE traffic has precedence over LE traffic and may preempt it.  Alternatively, packets forwarded by the LE PHB can be associated with a scavenger service class, i.e., they scavenge otherwise-unused resources only.  There are numerous uses for this PHB, e.g., for background traffic of low precedence, such as bulk data transfers with low priority in time, non-time-critical backups, larger software updates, web search engines while gathering information from web servers and so on.  This document recommends a standard Differentiated Services Code Point (DSCP) value for the LE PHB.</t>
            <t>This specification obsoletes RFC 3662 and updates the DSCP recommended in RFCs 4594 and 8325 to use the DSCP assigned in this specification.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8622"/>
        <seriesInfo name="DOI" value="10.17487/RFC8622"/>
      </reference>
      <reference anchor="RFC8723">
        <front>
          <title>Double Encryption Procedures for the Secure Real-Time Transport Protocol (SRTP)</title>
          <author fullname="C. Jennings" initials="C." surname="Jennings">
            <organization/>
          </author>
          <author fullname="P. Jones" initials="P." surname="Jones">
            <organization/>
          </author>
          <author fullname="R. Barnes" initials="R." surname="Barnes">
            <organization/>
          </author>
          <author fullname="A.B. Roach" initials="A.B." surname="Roach">
            <organization/>
          </author>
          <date month="April" year="2020"/>
          <abstract>
            <t>In some conferencing scenarios, it is desirable for an intermediary to be able to manipulate some parameters in Real-time Transport Protocol (RTP) packets, while still providing strong end-to-end security guarantees. This document defines a cryptographic transform for the Secure Real-time Transport Protocol (SRTP) that uses two separate but related cryptographic operations to provide hop-by-hop and end-to-end security guarantees.  Both the end-to-end and hop-by-hop cryptographic algorithms can utilize an authenticated encryption with associated data (AEAD) algorithm or take advantage of future SRTP transforms with different properties.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8723"/>
        <seriesInfo name="DOI" value="10.17487/RFC8723"/>
      </reference>
      <reference anchor="RFC8825">
        <front>
          <title>Overview: Real-Time Protocols for Browser-Based Applications</title>
          <author fullname="H. Alvestrand" initials="H." surname="Alvestrand">
            <organization/>
          </author>
          <date month="January" year="2021"/>
          <abstract>
            <t>This document gives an overview and context of a protocol suite intended for use with real-time applications that can be deployed in browsers -- "real-time communication on the Web".</t>
            <t>It intends to serve as a starting and coordination point to make sure that (1) all the parts that are needed to achieve this goal are findable and (2) the parts that belong in the Internet protocol suite are fully specified and on the right publication track.</t>
            <t>This document is an applicability statement -- it does not itself specify any protocol, but it specifies which other specifications implementations are supposed to follow to be compliant with Web Real-Time Communication (WebRTC).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8825"/>
        <seriesInfo name="DOI" value="10.17487/RFC8825"/>
      </reference>
      <reference anchor="RFC8999">
        <front>
          <title>Version-Independent Properties of QUIC</title>
          <author fullname="M. Thomson" initials="M." surname="Thomson">
            <organization/>
          </author>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document defines the properties of the QUIC transport protocol that are common to all versions of the protocol.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8999"/>
        <seriesInfo name="DOI" value="10.17487/RFC8999"/>
      </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">
            <organization/>
          </author>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
            <organization/>
          </author>
          <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="RFC9001">
        <front>
          <title>Using TLS to Secure QUIC</title>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
            <organization/>
          </author>
          <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
            <organization/>
          </author>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9001"/>
        <seriesInfo name="DOI" value="10.17487/RFC9001"/>
      </reference>
      <reference anchor="RFC9002">
        <front>
          <title>QUIC Loss Detection and Congestion Control</title>
          <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
            <organization/>
          </author>
          <author fullname="I. Swett" initials="I." role="editor" surname="Swett">
            <organization/>
          </author>
          <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>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAHdVHmIAA9S963LbWJYu+F9PgVBGnpS6CUrUXY4TPS1LctpVtlMlyc7u
OXGiAiRBEWUQYAGgZKbaEec15i3mAebXnDc5TzLrW5e9N0BS6aye+TEV0Z0y
SWzsy9rr+q214jjearImT19Fv8zTKmmyskjy6LIs6mys/66jSVlFd02VJrOs
eIg+pOMs2UqGwyp9fCX/Cr79ZV5vjctRkcxozHGVTJo4S5tJPCvndVzbz+Jy
PqKR4/3zrXHSpK+2RvT/H8pq+SrKikm5lc2rV1FTLermYH//fP9gK6EHaY43
d1tPZfXloSoXc3o3/v0lXdJH41fRu6JJqyJt4iu8dWurbpJi/NckLwuayTKt
t+bZq+i/NeWoF9VlRTOZ1PTXciZ/0JxnyXxOc/vvW1vJopmW1autKIrp/yKa
U/0q+lM/elvmOQ3Kn8kK/5R8SVsfl9XDq+jiSzJLsug+HU2LMi8fspTe8K4Y
9fkn2IW0eRUNjvej11WZjJ+SJX8xyhragMtkNqyy8UPaiz5cRPsHg6Mj+bZc
FA126FORNemY9pz2rI7KSXQxS6tslPCvUnpx/ir6G81rKtPq05786wM+7o/K
WXtNF/3odfqQFsGKLvIs+IyX8zFtsOv0Tjn71mzuF/TNMnx3kmf9IUb418Ie
7M/0weDdd/3oKnn6Qn8Hb7+bp8UorVrf8Bzu8XnR2Fqj9+8v//iu1DL6WAbv
gzCDndkC6VUzIvpHokh67vLzx3ev+PkmqR5wZNOmmdev9vaenp76o6welXhw
b7SXFnuLeq8u8wXfmL0Rtp7IMcn36rR6zEZpPK/KR9ypvcesXiR5rHuDy5AV
4/Rr/Fhke09TWkQ8T+guxqPBID49Ghyd7/enzSznefBliQ72D/bj/UOZmdze
7UvMJvrMY9uB4T6+w9ivojdllY6SuomIIKL7Ki3GRJEH+4PTmAY7iH7Fe6Mb
vHe79aLBebx/EB+cYjtuLi/X70aWpunXeU6v6OPPPh3YHt2nxYwObO/s+HRw
cHbWmuw1Hc0D85Kb659xZMU4qcbCaG7KjI75Mi8XY+JDs3mV1jXtqUzLX0z8
L3aEdDeaPiXVb+3PU1pt3l9ZjuwbHQvdSpw4cY7r6+voT+WiAu8ri8hND5t1
l+bpCJR1X86zUU1DR5dZNVpkTS3fL+smndXYIKxmA8G8uEXnh6dHJ0ftLeKd
eTejmdREjnSw47Sk/RhjWrZhq3sSO1b1gW52uRylW+s3JFz+TVWO0hQj871p
pinvCK/oAy1vMFi/pnHeT0YzXUq2N9jvDwZHx3uD86PD4+ODPv/39Ki1qosi
om2gd2PdtNnpY5IvWMrgzSRv0jgZJ/NGPkpyEglZM53xrvMX2AsnRaLykVjF
2/v7m5ep4+LLtJ4mw6z9BfG+y5D9uS/o06vysSrzrG4Tz4DuwsruXVx+kG3S
/bo52P9HSODg7HQwOG3fEt0cWijOhLaN2RNxMGZv83me/lRHefkUg9cUo2X0
9v3dCzvxZ1rXokq+/O4tAXc5X39LsEAs9P37+Ori7u0GwkjqaTaxBdZ7l7fx
e5rle5ll/J4OMa7O+vPxpLXe98FKPpTjVPgBXvPCovB1/O7NGu4IBv7h4k18
eX+9mYknLKmZixMDJzY+W+RNxtLKHU4dsuW9YL8DfYaUh0nMP+NfraztU95U
SbgLgcr0qcb/v5wuCpKU8XUxorWPmbfoZ8Swk6KepFVFf2NNa/dD/2uS9Ncs
z6P3yZP7mLfr137rMxat2xvVlY4sOIsH+9jWi9e3d4vqMV1+P6EnQ9qrZNQE
cuHo4Ohs0BZiF5GMCyb8OmvAD6ILzw+Iy6ezdK0+Gv3yHazgdT+6T5LiD/CB
+wwcOK3aX9z2o/+dv6DLWHS3X7Wo4TjNp8kXGheMLh2G9ywKta/Vr72wWn8H
SSrOFgWpNqKdy5bV0X8hVawhfpnkzIqYjsDTN9zR9DHNS5BqAkbCN8DOhgfe
wy//mtNd/asj871pXv9Vtpb+9VdSp0bZRCfyVzqVv/JYf6WxSeOpW0dLrCm6
sCeh5vkn+TyZnUVX8uQLZ8i/C5Tp8M6fMAvO6mmVbGJMtDYiwy+0bCh/TJoz
Usaxtgz2QzaLeSw2V/YHezNocdjSvTonEVzH634V16SjJHEyr7I8HhwH39mv
kyJezDHVuCwCrgGFsIyTPM/A1buSUp7AXfDELnrAhT7xstiTnWh/TJrB/TQb
pgmxuZX9O2LOngxJUW1+28wzi/JLljDBDIlZ7KkiG9PGTuhIac119jBt6hh8
NB5B641J75LdOdd92GstVvXVSIeIbAiIfYg+jASZd/nL53dXNBjIgEaLznWP
XtiHy75b0cvrvboq79av+ZGuxKJKadMaXjU44d4+KTqHJBiWMU0wfqBLDzWe
DNZqGWewdIn9xo+LvCAjYJincVPG44y+zYYLUibjcVoQVcXlJDb7IGkaIsy6
vTG/Tpe8ARg/svGjrI54/MiPHzVlhBVEOsxLEhNc8EsyhZDu8vf9Y2zJu4vX
fGx/4BIR69hTaz8ZyqHTmeNQ62k5by3qNp2T+R1NqnImuubFa3ewZrmQ5jsn
aVFHv+oIfGKb10RkfVF9+VKu3IE3CQnNvP0xqcZ//p//1zRPnzI12kNquUkr
Z3kGxDIYsEJxf0G3++Rk/c5gov1Rk/QbkqR7ZPCNF7SGPX/f/07GGdn4OHZR
g2GOxikIrIaBSB81xOuJXYzjWUrEMmoxUc8G/iID4U5cu4Giax6oB4VeR2It
4kMwUnf3WAGAu4cYf+U1gGV0UdflKGP+vEG3oq043t8/+kNb8ZQOY8gI5fzK
ANNRWbMVRYQzm9HHrH/Fo5yW1cSgt5iG4reF23HJP1b5f8k/jq7ox9HO5YfL
q90XeML9xRp9FzLz/cXd/bt/xMo9OTkfHB0dtPV3HS26iHQpcKpFo7JoyLjI
ab8h+MZL0hiI571k3kQ7UHN3X7jU70m3T8kwHY06d+AzaTdJTtZikq9+c5Pk
s6xOitV78yGpR6U+4fjDYTxYtX9uwAkaFUx2XbGZv9ymxKOW8dub1x/X7+h0
PiyIo+4NF1kOVSUmeUK8C9ejGbWZxvZbEgi4m84Eel2VTzSP0NexczmlPaTP
DkjX0zGj1zwmbsr95c1uW6M9GCjH+1MyKoc1Ud6fE2IXG1QmOvN8mPcfysc9
VvLh5ikekscyG3f1fbpRD2nNys0FvucZs0Yvh7/5IOlUbDKrXIsnF6xgcH52
Zpzpl5uLwdkGoZ0O+7Os6afjBU15nrR39pI+gROA+C1dy5zoKE+W8eukTsfh
OnTmTLPMttXd+gJRfgZXXnTWEb0lrTfJky8VqSdF0uYuEEFHKyT26e7647t/
iz7eXb1jPxSJj6Ojw80KCulGiVgdNekRhdhwJmehnxOzpTHiYjEb4hg3f9Vv
vjatzbqTn0YfIZDFl0amGQs04rpNSZeG5xd95AFI2D1A6i9X6Y6Vj8ur7Oof
UFUHpH2saKb0YdzUj/CUxyN3bqRpTNKihnZCf86baby/31rRDnEn0kBxrrvh
eV/Jc1DBrvDcyzrW2wWZvrOOsskGV5WQpZS33Zdww7FL0eZLc/9PbwOxTFKt
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
eowX/iRX/ZUEFmrfmk3qE34B6E5aGklCgYujSvqbvFqC7PyKnnZl1966kphp
yVu+dpl/wJnf9JGUw4dxyLUd2i/03hGZmiYixuUT4h6/Zl+yVxHcsfWrvT16
x3JR5X0SW3vuvOJyDgYYa/9P1kjeWSvje193m63RzxfRz0AJ0+3wwz7oJ303
Joc3iJtlsJn6ZfWwRw+jmPZvANVJ9fkb8URzie0rCYa3RkW9pP5Yn+ln5d50
tJcW8aLeY/M+T+u9w5P9/cPB4cHh4WCw+gKtKQ/FaTniNM4s+cPDH50MTk8H
5wPelrsF2ZBLLfi4AF2Sui91xK+1j4BEOX0nynky5xoFyoM47UwLZdZa4ZNx
uAZPkO9cV4J2h1VuLE3aHLNu7RgoYRbtNe5ctdxQ7JdHJFOkT4ZIgYuWbjdd
DdmgS3lq5/Nn0mHv9E2iJxE/ugiTD3ds27I0VYhnH3/y2Rot7p0f7x8enp7u
0rvtDTPAFmsR9uwqvJSS4o723/YPTo72Lj5f+hl838sGhyfnJ+fHeNmVhy7z
1ggm3NwCrcXeuXiGiAxRcej1PborXKW9tW0vbtl3bsrhwdnx4AjzvJCWDVwh
JXzLxefBdw92cnh+yDt8ef9JMLj0/1XPuvCQfrY2rj9fvqKXCtn6NyTV1+yR
x02G9d7BYP+ov39Gs9wVUoa2zV6hDbRM1sAsAXtWLVpqxkojrjxI9RfPEofy
HxZm3Li6R9M06HUfWye4eZJV7KzRlpD2XM+AA2BV7BZ/JCOdgy7E6mNX6d23
SUybEV8CNiBuUzbuUOTC+g2/T8auKsiFdQORQ/ZYQ7dl47yfjGZ6FtneYL8/
GBwd7x0eHZ8d7p/08d+z00M+FkaE4+E32VfNMPys87RuoNHVIjT2Nr3+FcmX
t9ZT4MIirr87p8PDc7JR+/SfwdmxHeqlKr1X6uzonq2IJ8emat9nO6z167tP
V+mDws6c8Wb5ViKrQ/e587C4HGVmT3MyKC6lLcor+Zdnd9iXS2uZQjf67sb8
n7Xn4U9PTy/JHK2uGz+QoTDfIwFQxNqFBeKIhpvk2VedhszdD41f64L6hfwS
YlM2E8Vn/V2TreQGfyof3DYKzphTBAIez2mi3IFG3Qv+2mbS6oJ9l/4Ba5zA
BVgU1Da25gV76hnpadcB/swuRM83mCVlUrZzUkn3AXrCANHeJ0PHmztF0+6Q
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

-->

</rfc>
