| rfc8837xml2.original.xml | rfc8837.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | |||
| <?rfc toc="yes"?> | nsus="true" docName="draft-ietf-tsvwg-rtcweb-qos-18" indexInclude="true" ipr="tr | |||
| <?rfc tocompact="yes"?> | ust200902" number="8837" prepTime="2021-01-16T23:27:34" scripts="Common,Latin" s | |||
| <?rfc tocdepth="3"?> | ortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="tru | |||
| <?rfc tocindent="yes"?> | e" xml:lang="en"> | |||
| <?rfc symrefs="yes"?> | <link href="https://datatracker.ietf.org/doc/draft-ietf-tsvwg-rtcweb-qos-18" r | |||
| <?rfc sortrefs="yes"?> | el="prev"/> | |||
| <?rfc comments="yes"?> | <link href="https://dx.doi.org/10.17487/rfc8837" rel="alternate"/> | |||
| <?rfc inline="yes"?> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" docName="draft-ietf-tsvwg-rtcweb-qos-18" | ||||
| ipr="trust200902"> | ||||
| <front> | <front> | |||
| <title abbrev="WebRTC QoS"> | <title abbrev="WebRTC QoS">Differentiated Services Code Point (DSCP) Packet | |||
| DSCP Packet Markings for WebRTC QoS | Markings for WebRTC QoS</title> | |||
| </title> | <seriesInfo name="RFC" value="8837" stream="IETF"/> | |||
| <author fullname="Paul E. Jones" initials="P." surname="Jones"> | <author fullname="Paul E. Jones" initials="P." surname="Jones"> | |||
| <organization>Cisco Systems</organization> | <organization showOnFrontPage="true">Cisco Systems</organization> | |||
| <address> | <address> | |||
| <email>paulej@packetizer.com</email> | <email>paulej@packetizer.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Subha Dhesikan" initials="S." surname="Dhesikan"> | <author fullname="Subha Dhesikan" initials="S." surname="Dhesikan"> | |||
| <organization>Cisco Systems</organization> | <organization showOnFrontPage="true">Individual</organization> | |||
| <address> | <address> | |||
| <email>sdhesika@cisco.com</email> | <email>sdhesikan@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Cullen Jennings" initials="C." surname="Jennings"> | ||||
| <author fullname="Cullen Jennings" initials="C." | <organization showOnFrontPage="true">Cisco Systems</organization> | |||
| surname="Jennings"> | ||||
| <organization>Cisco Systems</organization> | ||||
| <address> | <address> | |||
| <email>fluffy@cisco.com</email> | <email>fluffy@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Dan Druta" initials="D." surname="Druta"> | <author fullname="Dan Druta" initials="D." surname="Druta"> | |||
| <organization>AT&T</organization> | <organization showOnFrontPage="true">AT&T</organization> | |||
| <address> | <address> | |||
| <email>dd5826@att.com</email> | <email>dd5826@att.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="01" year="2021"/> | ||||
| <date/> | <keyword>Diffserv</keyword> | |||
| <keyword>rtcweb</keyword> | ||||
| <abstract> | <abstract pn="section-abstract"> | |||
| <t> | <t indent="0" pn="section-abstract-1"> | |||
| Many networks, such as service provider and enterprise networks, | Networks can provide different forwarding treatments for individual | |||
| can provide different forwarding treatments for individual | ||||
| packets based on Differentiated Services Code Point (DSCP) | packets based on Differentiated Services Code Point (DSCP) | |||
| values on a per-hop basis. This document provides the | values on a per-hop basis. This document provides the | |||
| recommended DSCP values for web browsers to use for various | recommended DSCP values for web browsers to use for various | |||
| classes of WebRTC traffic. | classes of Web Real-Time Communication (WebRTC) traffic. | |||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| <boilerplate> | ||||
| <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
| "exclude" pn="section-boilerplate.1"> | ||||
| <name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
| > | ||||
| <t indent="0" pn="section-boilerplate.1-1"> | ||||
| This is an Internet Standards Track document. | ||||
| </t> | ||||
| <t indent="0" pn="section-boilerplate.1-2"> | ||||
| This document is a product of the Internet Engineering Task Force | ||||
| (IETF). It represents the consensus of the IETF community. It has | ||||
| received public review and has been approved for publication by | ||||
| the Internet Engineering Steering Group (IESG). Further | ||||
| information on Internet Standards is available in Section 2 of | ||||
| RFC 7841. | ||||
| </t> | ||||
| <t indent="0" pn="section-boilerplate.1-3"> | ||||
| Information about the current status of this document, any | ||||
| errata, and how to provide feedback on it may be obtained at | ||||
| <eref target="https://www.rfc-editor.org/info/rfc8837" brackets="non | ||||
| e"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
| ude" pn="section-boilerplate.2"> | ||||
| <name slugifiedName="name-copyright-notice">Copyright Notice</name> | ||||
| <t indent="0" pn="section-boilerplate.2-1"> | ||||
| Copyright (c) 2021 IETF Trust and the persons identified as the | ||||
| document authors. All rights reserved. | ||||
| </t> | ||||
| <t indent="0" pn="section-boilerplate.2-2"> | ||||
| This document is subject to BCP 78 and the IETF Trust's Legal | ||||
| Provisions Relating to IETF Documents | ||||
| (<eref target="https://trustee.ietf.org/license-info" brackets="none | ||||
| "/>) in effect on the date of | ||||
| publication of this document. Please review these documents | ||||
| carefully, as they describe your rights and restrictions with | ||||
| respect to this document. Code Components extracted from this | ||||
| document must include Simplified BSD License text as described in | ||||
| Section 4.e of the Trust Legal Provisions and are provided without | ||||
| warranty as described in the Simplified BSD License. | ||||
| </t> | ||||
| </section> | ||||
| </boilerplate> | ||||
| <toc> | ||||
| <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p | ||||
| n="section-toc.1"> | ||||
| <name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
| c.1-1"> | ||||
| <li pn="section-toc.1-1.1"> | ||||
| <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der | ||||
| ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>. <xref | ||||
| derivedContent="" format="title" sectionFormat="of" target="name-introduction"> | ||||
| Introduction</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.2"> | ||||
| <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref der | ||||
| ivedContent="2" format="counter" sectionFormat="of" target="section-2"/>. <xref | ||||
| derivedContent="" format="title" sectionFormat="of" target="name-terminology">T | ||||
| erminology</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3"> | ||||
| <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref der | ||||
| ivedContent="3" format="counter" sectionFormat="of" target="section-3"/>. <xref | ||||
| derivedContent="" format="title" sectionFormat="of" target="name-relation-to-ot | ||||
| her-specifica">Relation to Other Specifications</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4"> | ||||
| <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form | ||||
| at="counter" sectionFormat="of" target="section-4"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-inputs">Inputs</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5"> | ||||
| <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form | ||||
| at="counter" sectionFormat="of" target="section-5"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-dscp-mappings">DSCP Mappings</xref | ||||
| ></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.6"> | ||||
| <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form | ||||
| at="counter" sectionFormat="of" target="section-6"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-security-considerations">Security | ||||
| Considerations</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.7"> | ||||
| <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form | ||||
| at="counter" sectionFormat="of" target="section-7"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-iana-considerations">IANA Consider | ||||
| ations</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.8"> | ||||
| <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" form | ||||
| at="counter" sectionFormat="of" target="section-8"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-downward-references">Downward Refe | ||||
| rences</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.9"> | ||||
| <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" form | ||||
| at="counter" sectionFormat="of" target="section-9"/>. <xref derivedContent="" f | ||||
| ormat="title" sectionFormat="of" target="name-references">References</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.9.2"> | ||||
| <li pn="section-toc.1-1.9.2.1"> | ||||
| <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent= | ||||
| "9.1" format="counter" sectionFormat="of" target="section-9.1"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-normative-references"> | ||||
| Normative References</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.9.2.2"> | ||||
| <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent= | ||||
| "9.2" format="counter" sectionFormat="of" target="section-9.2"/>. <xref derived | ||||
| Content="" format="title" sectionFormat="of" target="name-informative-references | ||||
| ">Informative References</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.10"> | ||||
| <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" form | ||||
| at="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent=" | ||||
| " format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgeme | ||||
| nts</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.11"> | ||||
| <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" form | ||||
| at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent=" | ||||
| " format="title" sectionFormat="of" target="name-dedication">Dedication</xref></ | ||||
| t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.12"> | ||||
| <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" form | ||||
| at="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent=" | ||||
| " format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add | ||||
| resses</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </toc> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="include" removeInRFC="false" pn="section-1"> | |||
| <t> | <name slugifiedName="name-introduction">Introduction</name> | |||
| Differentiated Services Code Point (DSCP) <xref target="RFC2474"/> | <t indent="0" pn="section-1-1"> | |||
| Differentiated Services Code Point (DSCP) <xref target="RFC2474" format= | ||||
| "default" sectionFormat="of" derivedContent="RFC2474"/> | ||||
| packet marking can help provide QoS in some environments. | packet marking can help provide QoS in some environments. | |||
| This specification provides default packet marking for browsers | This specification provides default packet marking for browsers | |||
| that support WebRTC applications, but does not change any advice | that support WebRTC applications, but does not change any advice | |||
| or requirements in other IETF RFCs. The contents of this | or requirements in other RFCs. The contents of this | |||
| specification are intended to be a simple set of implementation | specification are intended to be a simple set of implementation | |||
| recommendations based on the previous RFCs. | recommendations based on previous RFCs. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-1-2"> | ||||
| <t> | Networks in which these DSCP markings are beneficial (likely to | |||
| Networks where these DSCP markings are beneficial (likely to | ||||
| improve QoS for WebRTC traffic) include: | improve QoS for WebRTC traffic) include: | |||
| </t> | </t> | |||
| <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-1-3" | ||||
| <t> | > | |||
| <list style="numbers"> | <li pn="section-1-3.1" derivedCounter="1."> | |||
| <t> | ||||
| Private, wide-area networks. Network administrators have | Private, wide-area networks. Network administrators have | |||
| control over remarking packets and treatment of packets. | control over remarking packets and treatment of packets. | |||
| </t> | </li> | |||
| <li pn="section-1-3.2" derivedCounter="2."> | ||||
| <t> | ||||
| Residential Networks. If the congested link is the | Residential Networks. If the congested link is the | |||
| broadband uplink in a cable or DSL scenario, often | broadband uplink in a cable or DSL scenario, residential | |||
| residential routers/NAT support preferential treatment based | routers/NAT often support preferential treatment based | |||
| on DSCP. | on DSCP. | |||
| </t> | </li> | |||
| <li pn="section-1-3.3" derivedCounter="3."> | ||||
| <t> | ||||
| Wireless Networks. If the congested link is a local | Wireless Networks. If the congested link is a local | |||
| wireless network, marking may help. | wireless network, marking may help. | |||
| </t> | </li> | |||
| </list> | </ol> | |||
| </t> | <t indent="0" pn="section-1-4"> | |||
| There are cases where these DSCP markings do not help but, | ||||
| <t> | aside from possible priority inversion for "Less-than-Best-Effort | |||
| There are cases where these DSCP markings do not help, but, | traffic" (see <xref target="dscp-mappings" format="default" sectionFormat | |||
| aside from possible priority inversion for "less than best | ="of" derivedContent="Section 5"/>), they seldom make things worse | |||
| effort traffic" (see Section 5), they seldom make things worse | ||||
| if packets are marked appropriately. | if packets are marked appropriately. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-1-5"> | ||||
| <t> | DSCP values are, in principle, site specific with each site | |||
| DSCP values are in principle site specific, with each site | selecting its own code points for controlling per-hop behavior | |||
| selecting its own code points for controlling per-hop-behavior | to influence the QoS for transport-layer flows. However, in the | |||
| to influence the QoS for transport-layer flows. However in the | ||||
| WebRTC use cases, the browsers need to set them to something | WebRTC use cases, the browsers need to set them to something | |||
| when there is no site specific information. This document | when there is no site-specific information. This document | |||
| describes a subset of DSCP code point values drawn from existing | describes a subset of DSCP code point values drawn from existing | |||
| RFCs and common usage for use with WebRTC applications. These | RFCs and common usage for use with WebRTC applications. These | |||
| code points are intended to be the default values used by a | code points are intended to be the default values used by a | |||
| WebRTC application. While other values could be used, using a | WebRTC application. While other values could be used, using a | |||
| non-default value may result in unexpected per-hop behavior. It | non-default value may result in unexpected per-hop behavior. It | |||
| is RECOMMENDED that WebRTC applications use non-default values | is <bcp14>RECOMMENDED</bcp14> that WebRTC applications use non-default v alues | |||
| only in private networks that are configured to use different | only in private networks that are configured to use different | |||
| values. | values. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-1-6"> | ||||
| <t> | ||||
| This specification defines inputs that are provided by the | This specification defines inputs that are provided by the | |||
| WebRTC application hosted in the browser that aid the browser in | WebRTC application hosted in the browser that aid the browser in | |||
| determining how to set the various packet markings. The | determining how to set the various packet markings. The | |||
| specification also defines the mapping from abstract QoS | specification also defines the mapping from abstract QoS | |||
| policies (flow type, priority level) to those packet markings. | policies (flow type, priority level) to those packet markings. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="include" removeInRFC="false" pn="section-2"> | ||||
| <section title="Terminology"> | <name slugifiedName="name-terminology">Terminology</name> | |||
| <t> | <t indent="0" pn="section-2-1"> | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | |||
| "OPTIONAL" in this document are to be interpreted as described | ", | |||
| in <xref target="RFC2119"/>. | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be | ||||
| interpreted as described in BCP 14 <xref target="RFC2119" format="default" s | ||||
| ectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="defa | ||||
| ult" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they app | ||||
| ear in all capitals, as | ||||
| shown here. | ||||
| </t> | </t> | |||
| <t indent="0" pn="section-2-2"> | ||||
| <t> | ||||
| The terms "browser" and "non-browser" are defined in | The terms "browser" and "non-browser" are defined in | |||
| <xref target="RFC7742"/> and carry the same meaning in this | <xref target="RFC7742" format="default" sectionFormat="of" derivedConten t="RFC7742"/> and carry the same meaning in this | |||
| document. | document. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="include" removeInRFC="false" pn="section-3"> | ||||
| <section title="Relation to Other Specifications"> | <name slugifiedName="name-relation-to-other-specifica">Relation to Other S | |||
| <t> | pecifications</name> | |||
| This document is a complement to <xref target="RFC7657"/>, which | <t indent="0" pn="section-3-1"> | |||
| This document is a complement to <xref target="RFC7657" format="default" | ||||
| sectionFormat="of" derivedContent="RFC7657"/>, which | ||||
| describes the interaction between DSCP and real-time | describes the interaction between DSCP and real-time | |||
| communications. That RFC covers the implications of using | communications. That RFC covers the implications of using | |||
| various DSCP values, particularly focusing on Real-time | various DSCP values, particularly focusing on the Real-time | |||
| Transport Protocol (RTP) <xref target="RFC3550"/> streams that | Transport Protocol (RTP) <xref target="RFC3550" format="default" section | |||
| Format="of" derivedContent="RFC3550"/> streams that | ||||
| are multiplexed onto a single transport-layer flow. | are multiplexed onto a single transport-layer flow. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-3-2"> | ||||
| <t> | ||||
| There are a number of guidelines specified in | There are a number of guidelines specified in | |||
| <xref target="RFC7657"/> that apply to marking traffic sent by | <xref target="RFC7657" format="default" sectionFormat="of" derivedConten t="RFC7657"/> that apply to marking traffic sent by | |||
| WebRTC applications, as it is common for multiple RTP streams to | WebRTC applications, as it is common for multiple RTP streams to | |||
| be multiplexed on the same transport-layer flow. Generally, the | be multiplexed on the same transport-layer flow. Generally, the | |||
| RTP streams would be marked with a value as appropriate from | RTP streams would be marked with a value as appropriate from | |||
| <xref target="table-dscp"/>. A WebRTC application might also | <xref target="tab-dscp" format="default" sectionFormat="of" derivedConte nt="Table 1"/>. A WebRTC application might also | |||
| multiplex data channel | multiplex data channel | |||
| <xref target="I-D.ietf-rtcweb-data-channel"/> traffic over the | <xref target="RFC8831" format="default" sectionFormat="of" derivedConten | |||
| same 5-tuple as RTP streams, which would also be marked as per | t="RFC8831"/> traffic over the | |||
| that table. The guidance in <xref target="RFC7657"/> says that | same 5-tuple as RTP streams, which would also be marked per | |||
| that table. The guidance in <xref target="RFC7657" format="default" sec | ||||
| tionFormat="of" derivedContent="RFC7657"/> says that | ||||
| all data channel traffic would be marked with a single value | all data channel traffic would be marked with a single value | |||
| that is typically different than the value(s) used for RTP | that is typically different from the value(s) used for RTP | |||
| streams multiplexed with the data channel traffic over the same | streams multiplexed with the data channel traffic over the same | |||
| 5-tuple, assuming RTP streams are marked with a value other than | 5-tuple, assuming RTP streams are marked with a value other than | |||
| default forwarding (DF). This is expanded upon further in the | Default Forwarding (DF). This is expanded upon further in the | |||
| next section. | next section. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-3-3"> | ||||
| <t> | ||||
| This specification does not change or override the advice in any | This specification does not change or override the advice in any | |||
| other IETF RFCs about setting packet markings. Rather, it | other RFCs about setting packet markings. Rather, it | |||
| simply selects a subset of DSCP values that is relevant in the | simply selects a subset of DSCP values that is relevant in the | |||
| WebRTC context. | WebRTC context. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-3-4"> | ||||
| <t> | ||||
| The DSCP value set by the endpoint is not trusted by the | The DSCP value set by the endpoint is not trusted by the | |||
| network. In addition, the DSCP value may be remarked at any | network. In addition, the DSCP value may be remarked at any | |||
| place in the network for a variety of reasons to any other DSCP | place in the network for a variety of reasons to any other DSCP | |||
| value, including default forwarding (DF) value to provide basic | value, including the DF value to provide basic | |||
| best effort service. Even so, there is benefit in marking | best-effort service. Even so, there is a benefit to marking | |||
| traffic even if it only benefits the first few hops. The | traffic even if it only benefits the first few hops. The | |||
| implications are discussed in Secton 3.2 of | implications are discussed in | |||
| <xref target="RFC7657"/>. Further, a mitigation for such action | <xref target="RFC7657" sectionFormat="of" section="3.2" format="default" | |||
| derivedLink="https://rfc-editor.org/rfc/rfc7657#section-3.2" derivedContent="RF | ||||
| C7657"/>. Further, a mitigation for such action | ||||
| is through an authorization mechanism. Such an authorization | is through an authorization mechanism. Such an authorization | |||
| mechanism is outside the scope of this document. | mechanism is outside the scope of this document. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="include" removeInRFC="false" pn="section-4"> | ||||
| <section title="Inputs"> | <name slugifiedName="name-inputs">Inputs</name> | |||
| <t> | <t indent="0" pn="section-4-1"> | |||
| WebRTC applications send and receive two types of flows of | This document recommends DSCP values for two classes of WebRTC flows: | |||
| significance to this document: | ||||
| <list style="symbols"> | ||||
| <t> | ||||
| media flows which are RTP streams | ||||
| <xref target="I-D.ietf-rtcweb-rtp-usage"/> | ||||
| </t> | ||||
| <t> | ||||
| data flows which are data channels | ||||
| <xref target="I-D.ietf-rtcweb-data-channel"/> | ||||
| </t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-2 | ||||
| <t> | "> | |||
| Each of the RTP streams and distinct data channels consists of | <li pn="section-4-2.1"> | |||
| media flows that are RTP streams | ||||
| <xref target="RFC8834" format="default" sectionFormat="of" derivedCo | ||||
| ntent="RFC8834"/> | ||||
| </li> | ||||
| <li pn="section-4-2.2"> | ||||
| data flows that are data channels | ||||
| <xref target="RFC8831" format="default" sectionFormat="of" derivedCo | ||||
| ntent="RFC8831"/> | ||||
| </li> | ||||
| </ul> | ||||
| <t indent="0" pn="section-4-3"> | ||||
| Each of the RTP streams and distinct data channels consist of | ||||
| all of the packets associated with an independent media entity, | all of the packets associated with an independent media entity, | |||
| so an RTP stream or distinct data channel is not always | so an RTP stream or distinct data channel is not always | |||
| equivalent to a transport-layer flow defined by a 5-tuple | equivalent to a transport-layer flow defined by a 5-tuple | |||
| (source address, destination address, source port, destination | (source address, destination address, source port, destination | |||
| port, and protocol). There may be multiple RTP streams and data | port, and protocol). There may be multiple RTP streams and data | |||
| channels multiplexed over the same 5-tuple, with each having a | channels multiplexed over the same 5-tuple, with each having a | |||
| different level of importance to the application and, therefore, | different level of importance to the application and, therefore, | |||
| potentially marked using different DSCP values than another RTP | potentially marked using different DSCP values than another RTP | |||
| stream or data channel within the same transport-layer flow. | stream or data channel within the same transport-layer flow. | |||
| (Note that there are restrictions with respect to marking | (Note that there are restrictions with respect to marking | |||
| different data channels carried within the same SCTP association | different data channels carried within the same Stream Control | |||
| as outlined in <xref target="dscp-mappings"/>.) | Transmission Protocol (SCTP) association | |||
| as outlined in <xref target="dscp-mappings" format="default" sectionForm | ||||
| at="of" derivedContent="Section 5"/>.) | ||||
| </t> | </t> | |||
| <t indent="0" pn="section-4-4"> | ||||
| <t> | ||||
| The following are the inputs provided by the WebRTC application | The following are the inputs provided by the WebRTC application | |||
| to the browser: | to the browser: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-5 | |||
| "> | ||||
| <li pn="section-4-5.1"> | ||||
| Flow Type: The application provides this input because it knows | Flow Type: The application provides this input because it knows | |||
| if the flow is audio, interactive video <xref target="RFC4594"/> | if the flow is audio, interactive video (<xref target="RFC4594" form | |||
| <xref target="G.1010"/> with or without audio, or data. | at="default" sectionFormat="of" derivedContent="RFC4594"/> | |||
| </t> | <xref target="G.1010" format="default" sectionFormat="of" derivedConte | |||
| nt="G.1010"/>) with or without audio, or data. | ||||
| <t> | </li> | |||
| <li pn="section-4-5.2"> | ||||
| Application Priority: Another input is the relative | Application Priority: Another input is the relative | |||
| importance of an RTP stream or data channel. Many | importance of an RTP stream or data channel. Many | |||
| applications have multiple flows of the same Flow Type and | applications have multiple flows of the same flow type and | |||
| often some flows are more important than others. For | some flows are often more important than others. For | |||
| example, in a video conference where there are usually audio | example, in a video conference where there are usually audio | |||
| and video flows, the audio flow may be more important than | and video flows, the audio flow may be more important than | |||
| the video flow. JavaScript applications can tell the | the video flow. JavaScript applications can tell the | |||
| browser whether a particular flow is high, medium, low or | browser whether a particular flow is of High, Medium, Low, or | |||
| very low importance to the application. | Very Low importance to the application. | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | <t indent="0" pn="section-4-6"> | |||
| <xref target="RFC8835" format="default" sectionFormat="of" derivedConten | ||||
| <t> | t="RFC8835"/> defines in more | |||
| <xref target="I-D.ietf-rtcweb-transports"/> defines in more | ||||
| detail what an individual flow is within the WebRTC | detail what an individual flow is within the WebRTC | |||
| context and priorities for media and data flows. | context and priorities for media and data flows. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-4-7"> | ||||
| <t> | ||||
| Currently in WebRTC, media sent over RTP is assumed to be | Currently in WebRTC, media sent over RTP is assumed to be | |||
| interactive <xref target="I-D.ietf-rtcweb-transports"/> and | interactive <xref target="RFC8835" format="default" sectionFormat="of" d | |||
| browser APIs do not exist to allow an application to to | erivedContent="RFC8835"/> and | |||
| browser APIs do not exist to allow an application to | ||||
| differentiate between interactive and non-interactive video. | differentiate between interactive and non-interactive video. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="dscp-mappings" numbered="true" toc="include" removeInRFC="f | ||||
| <section anchor="dscp-mappings" title="DSCP Mappings"> | alse" pn="section-5"> | |||
| <t> | <name slugifiedName="name-dscp-mappings">DSCP Mappings</name> | |||
| <t indent="0" pn="section-5-1"> | ||||
| The DSCP values for each flow type of interest to WebRTC based | The DSCP values for each flow type of interest to WebRTC based | |||
| on application priority are shown in <xref target="table-dscp"/>. | on application priority are shown in <xref target="tab-dscp" format="def ault" sectionFormat="of" derivedContent="Table 1"/>. | |||
| These values are based on the framework and recommended values in | These values are based on the framework and recommended values in | |||
| <xref target="RFC4594"/>. A web browser SHOULD use these values | <xref target="RFC4594" format="default" sectionFormat="of" derivedConten | |||
| to mark the appropriate media packets. More information on EF | t="RFC4594"/>. A web browser <bcp14>SHOULD</bcp14> use these values | |||
| can be found in <xref target="RFC3246"/>. More information on | to mark the appropriate media packets. More information on Expedited | |||
| AF can be found in <xref target="RFC2597"/>. DF is default | Forwarding (EF) and Assured Forwarding (AF) can be found in <xref target= | |||
| forwarding which provides the basic best effort service | "RFC3246" format="default" sectionFormat="of" derivedContent="RFC3246"/> and <xr | |||
| <xref target="RFC2474"/>. | ef target="RFC2597" format="default" sectionFormat="of" derivedContent="RFC2597" | |||
| />, respectively. DF is Default Forwarding, which provides the basic best-effor | ||||
| t service | ||||
| <xref target="RFC2474" format="default" sectionFormat="of" derivedConten | ||||
| t="RFC2474"/>. | ||||
| </t> | </t> | |||
| <t indent="0" pn="section-5-2"> | ||||
| <t> | WebRTC's use of multiple DSCP values may result in packets with | |||
| WebRTC use of multiple DSCP values may encounter network blocking | certain DSCP values being blocked by a network. See | |||
| of packets with certain DSCP values. See section 4.2 of | <xref target="RFC8835" sectionFormat="of" section="4.2" format="default" | |||
| <xref target="I-D.ietf-rtcweb-transports"/> for further | derivedLink="https://rfc-editor.org/rfc/rfc8835#section-4.2" derivedContent="RF | |||
| C8835"/> for further | ||||
| discussion, including how WebRTC implementations establish and | discussion, including how WebRTC implementations establish and | |||
| maintain connectivity when such blocking is encountered. | maintain connectivity when such blocking is encountered. | |||
| </t> | </t> | |||
| <table anchor="tab-dscp" align="center" pn="table-1"> | ||||
| <texttable anchor="table-dscp" | <name slugifiedName="name-recommended-dscp-values-for">Recommended DSCP | |||
| title="Recommended DSCP Values for WebRTC Applications"> | Values for WebRTC Applications</name> | |||
| <ttcol align="center">Flow Type</ttcol> | <thead> | |||
| <ttcol align="center">Very Low</ttcol> | <tr> | |||
| <ttcol align="center">Low</ttcol> | <th align="center" colspan="1" rowspan="1">Flow Type</th> | |||
| <ttcol align="center">Medium</ttcol> | <th align="center" colspan="1" rowspan="1">Very Low</th> | |||
| <ttcol align="center">High</ttcol> | <th align="center" colspan="1" rowspan="1">Low</th> | |||
| <c>Audio</c> | <th align="center" colspan="1" rowspan="1">Medium</th> | |||
| <c>CS1 (8)</c> | <th align="center" colspan="1" rowspan="1">High</th> | |||
| <c>DF (0)</c> | </tr> | |||
| <c>EF (46)</c> | </thead> | |||
| <c>EF (46)</c> | <tbody> | |||
| <c> </c> | <tr> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1">Audio</td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1">LE (1)</td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1">DF (0)</td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1">EF (46)</td> | |||
| <c>Interactive Video with or without Audio</c> | <td align="center" colspan="1" rowspan="1">EF (46)</td> | |||
| <c>CS1 (8)</c> | </tr> | |||
| <c>DF (0)</c> | <tr> | |||
| <c>AF42, AF43 (36, 38)</c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c>AF41, AF42 (34, 36)</c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c> </c> | </tr> | |||
| <c> </c> | <tr> | |||
| <c>Non-Interactive Video with or without Audio</c> | <td align="center" colspan="1" rowspan="1">Interactive Video with or | |||
| <c>CS1 (8)</c> | without Audio</td> | |||
| <c>DF (0)</c> | <td align="center" colspan="1" rowspan="1">LE (1)</td> | |||
| <c>AF32, AF33 (28, 30)</c> | <td align="center" colspan="1" rowspan="1">DF (0)</td> | |||
| <c>AF31, AF32 (26, 28)</c> | <td align="center" colspan="1" rowspan="1">AF42, AF43 (36, 38)</td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1">AF41, AF42 (34, 36)</td> | |||
| <c> </c> | </tr> | |||
| <c> </c> | <tr> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c> </c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c>Data</c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c>CS1 (8)</c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c>DF (0)</c> | <td align="center" colspan="1" rowspan="1"> </td> | |||
| <c>AF11</c> | </tr> | |||
| <c>AF21</c> | <tr> | |||
| </texttable> | <td align="center" colspan="1" rowspan="1">Non-Interactive Video wit | |||
| h or without Audio</td> | ||||
| <t> | <td align="center" colspan="1" rowspan="1">LE (1)</td> | |||
| The application priority, indicated by the columns "very low", | <td align="center" colspan="1" rowspan="1">DF (0)</td> | |||
| "low", "Medium", and "high", signifies the relative importance | <td align="center" colspan="1" rowspan="1">AF32, AF33 (28, 30)</td> | |||
| <td align="center" colspan="1" rowspan="1">AF31, AF32 (26, 28)</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center" colspan="1" rowspan="1"> </td> | ||||
| <td align="center" colspan="1" rowspan="1"> </td> | ||||
| <td align="center" colspan="1" rowspan="1"> </td> | ||||
| <td align="center" colspan="1" rowspan="1"> </td> | ||||
| <td align="center" colspan="1" rowspan="1"> </td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center" colspan="1" rowspan="1">Data</td> | ||||
| <td align="center" colspan="1" rowspan="1">LE (1)</td> | ||||
| <td align="center" colspan="1" rowspan="1">DF (0)</td> | ||||
| <td align="center" colspan="1" rowspan="1">AF11</td> | ||||
| <td align="center" colspan="1" rowspan="1">AF21</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t indent="0" pn="section-5-4"> | ||||
| The application priority, indicated by the columns "Very Low", | ||||
| "Low", "Medium", and "High", signifies the relative importance | ||||
| of the flow within the application. It is an input that the | of the flow within the application. It is an input that the | |||
| browser receives to assist in selecting the DSCP value and | browser receives to assist in selecting the DSCP value and | |||
| adjusting the network transport behavior. | adjusting the network transport behavior. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-5"> | ||||
| <t> | The above table assumes that packets marked with LE are treated as | |||
| The above table assumes that packets marked with CS1 are treated | lower effort (i.e., "less than best effort"), such as the LE behavior | |||
| as "less than best effort", such as the LE behavior described in | described in <xref target="RFC8622" format="default" sectionFormat="of" deriv | |||
| <xref target="RFC3662"/>. However, the treatment of CS1 is | edContent="RFC8622"/>. However, the treatment of LE is | |||
| implementation dependent. If an implementation treats CS1 as | implementation dependent. If an implementation treats LE as other | |||
| other than "less than best effort", then the actual priority | than "less than best effort", then the actual priority (or, more | |||
| (or, more precisely, the per-hop-behavior) of the packets may be | precisely, the per-hop behavior) of the packets may be changed from | |||
| changed from what is intended. It is common for CS1 to be | what is intended. It is common for LE to be treated the same as DF, | |||
| treated the same as DF, so applications and browsers using CS1 | so applications and browsers using LE cannot assume that LE will be | |||
| cannot assume that CS1 will be treated differently than DF | treated differently than DF <xref target="RFC7657" format="default" sectionFo | |||
| <xref target="RFC7657"/>. However, it is also possible per | rmat="of" derivedContent="RFC7657"/>. During development of this | |||
| <xref target="RFC2474"/> for CS1 traffic to be given better | document, the CS1 DSCP was recommended for "very low" application | |||
| treatment than DF, thus caution should be exercised when | priority traffic; implementations that followed that recommendation | |||
| electing to use CS1. This is one of the cases where marking | <bcp14>SHOULD</bcp14> be updated to use the LE DSCP instead of the CS1 DSCP. | |||
| packets using these recommendations can make things worse. | ||||
| </t> | </t> | |||
| <t indent="0" pn="section-5-6"> | ||||
| <t> | ||||
| Implementers should also note that excess EF traffic is dropped. | Implementers should also note that excess EF traffic is dropped. | |||
| This could mean that a packet marked as EF may not get through, | This could mean that a packet marked as EF may not get through, | |||
| although the same packet marked with a different DSCP value would | although the same packet marked with a different DSCP value would | |||
| have gotten through. This is not a flaw, but how excess EF | have gotten through. This is not a flaw, but how excess EF | |||
| traffic is intended to be treated. | traffic is intended to be treated. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-7"> | ||||
| <t> | The browser <bcp14>SHOULD</bcp14> first select the flow type of the flow | |||
| The browser SHOULD first select the flow type of the flow. | . | |||
| Within the flow type, the relative importance of the flow | Within the flow type, the relative importance of the flow | |||
| SHOULD be used to select the appropriate DSCP value. | <bcp14>SHOULD</bcp14> be used to select the appropriate DSCP value. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-8"> | ||||
| <t> | ||||
| Currently, all WebRTC video is assumed to be interactive | Currently, all WebRTC video is assumed to be interactive | |||
| <xref target="I-D.ietf-rtcweb-transports"/>, for which the | <xref target="RFC8835" format="default" sectionFormat="of" derivedConten | |||
| Interactive Video DSCP values in Table 1 SHOULD be used. | t="RFC8835"/>, for which the | |||
| Browsers MUST NOT use the AF3x DSCP values (for Non-Interactive | interactive video DSCP values in Table 1 <bcp14>SHOULD</bcp14> be used. | |||
| Video in Table 1) for WebRTC applications. Non-browser | Browsers <bcp14>MUST NOT</bcp14> use the AF3x DSCP values (for non-inter | |||
| implementations of WebRTC MAY use the AF3x DSCP values for video | active | |||
| video in Table 1) for WebRTC applications. Non-browser | ||||
| implementations of WebRTC <bcp14>MAY</bcp14> use the AF3x DSCP values fo | ||||
| r video | ||||
| that is known not to be interactive, e.g., all video in a WebRTC | that is known not to be interactive, e.g., all video in a WebRTC | |||
| video playback application that is not implemented in a | video playback application that is not implemented in a | |||
| browser. | browser. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-9"> | ||||
| <t> | ||||
| The combination of flow type and application priority provides | The combination of flow type and application priority provides | |||
| specificity and helps in selecting the right DSCP value for the | specificity and helps in selecting the right DSCP value for the | |||
| flow. All packets within a flow SHOULD have the same application | flow. All packets within a flow <bcp14>SHOULD</bcp14> have the same app lication | |||
| priority. In some cases, the selected application priority cell | priority. In some cases, the selected application priority cell | |||
| may have multiple DSCP values, such as AF41 and AF42. These offer | may have multiple DSCP values, such as AF41 and AF42. These offer | |||
| different drop precedences. The different drop precedence | different drop precedences. The different drop precedence | |||
| values provides additional granularity in classifying packets | values provide additional granularity in classifying packets | |||
| within a flow. For example, in a video conference the video | within a flow. For example, in a video conference, the video | |||
| flow may have medium application priority, thus either AF42 or | flow may have medium application priority, thus either AF42 or | |||
| AF43 may be selected. More important video packets (e.g., a | AF43 may be selected. More important video packets (e.g., a | |||
| video picture or frame encoded without any dependency on any | video picture or frame encoded without any dependency on any | |||
| prior pictures or frames) might be marked with AF42 and less | prior pictures or frames) might be marked with AF42 and less | |||
| important packets (e.g., a video picture or frame encoded based | important packets (e.g., a video picture or frame encoded based | |||
| on the content of one or more prior pictures or frames) might be | on the content of one or more prior pictures or frames) might be | |||
| marked with AF43 (e.g., receipt of the more important packets | marked with AF43 (e.g., receipt of the more important packets | |||
| enables a video renderer to continue after one or more packets | enables a video renderer to continue after one or more packets | |||
| are lost). | are lost). | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-10"> | ||||
| <t> | ||||
| It is worth noting that the application priority is utilized by | It is worth noting that the application priority is utilized by | |||
| the coupled congestion control mechanism for media flows per | the coupled congestion control mechanism for media flows per | |||
| <xref target="I-D.ietf-rmcat-coupled-cc"/> and the SCTP | <xref target="RFC8699" format="default" sectionFormat="of" derivedConten t="RFC8699"/> and the SCTP | |||
| scheduler for data channel traffic per | scheduler for data channel traffic per | |||
| <xref target="I-D.ietf-rtcweb-data-channel"/>. | <xref target="RFC8831" format="default" sectionFormat="of" derivedConten t="RFC8831"/>. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-11"> | ||||
| <t> | For reasons discussed in | |||
| For reasons discussed in Section 6 of | <xref target="RFC7657" sectionFormat="of" section="6" format="default" d | |||
| <xref target="RFC7657"/>, if multiple flows are multiplexed | erivedLink="https://rfc-editor.org/rfc/rfc7657#section-6" derivedContent="RFC765 | |||
| using a reliable transport (e.g., TCP) then all of the packets | 7"/>, if multiple flows are multiplexed | |||
| for all flows multiplexed over that transport-layer flow MUST be | using a reliable transport (e.g., TCP), then all of the packets | |||
| for all flows multiplexed over that transport-layer flow <bcp14>MUST</bc | ||||
| p14> be | ||||
| marked using the same DSCP value. Likewise, all WebRTC data | marked using the same DSCP value. Likewise, all WebRTC data | |||
| channel packets transmitted over an SCTP association MUST be | channel packets transmitted over an SCTP association <bcp14>MUST</bcp14> be | |||
| marked using the same DSCP value, regardless of how many data | marked using the same DSCP value, regardless of how many data | |||
| channels (streams) exist or what kind of traffic is carried over | channels (streams) exist or what kind of traffic is carried over | |||
| the various SCTP streams. In the event that the browser wishes | the various SCTP streams. In the event that the browser wishes | |||
| to change the DSCP value in use for an SCTP association, it MUST | to change the DSCP value in use for an SCTP association, it <bcp14>MUST< /bcp14> | |||
| reset the SCTP congestion controller after changing values. | reset the SCTP congestion controller after changing values. | |||
| Frequent changes in the DSCP value used for an SCTP association | However, frequent changes in the DSCP value used for an SCTP association | |||
| are discouraged, though, as this would defeat any attempts at | are discouraged, as this would defeat any attempts at | |||
| effectively managing congestion. It should also be noted that | effectively managing congestion. It should also be noted that | |||
| any change in DSCP value that results in a reset of the | any change in DSCP value that results in a reset of the | |||
| congestion controller puts the SCTP association back into slow | congestion controller puts the SCTP association back into slow | |||
| start, which may have undesirable effects on application | start, which may have undesirable effects on application | |||
| performance. | performance. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-12"> | ||||
| <t> | ||||
| For the data channel traffic multiplexed over an SCTP | For the data channel traffic multiplexed over an SCTP | |||
| association, it is RECOMMENDED that the DSCP value selected be | association, it is <bcp14>RECOMMENDED</bcp14> that the DSCP value select ed be | |||
| the one associated with the highest priority requested for all | the one associated with the highest priority requested for all | |||
| data channels multiplexed over the SCTP association. Likewise, | data channels multiplexed over the SCTP association. Likewise, | |||
| when multiplexing multiple flows over a TCP connection, | when multiplexing multiple flows over a TCP connection, | |||
| the DCSP value selected should be the one associated with the | the DSCP value selected <bcp14>SHOULD</bcp14> be the one associated with the | |||
| highest priority requested for all multiplexed flows. | highest priority requested for all multiplexed flows. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-13"> | ||||
| <t> | If a packet enters a network that has no support for a flow-type-applica | |||
| If a packet enters a network that has no support for a flow | tion priority combination specified in | |||
| type-application priority combination specified in | <xref target="tab-dscp" format="default" sectionFormat="of" derivedConte | |||
| <xref target="table-dscp"/>, then the network node at the edge | nt="Table 1"/>, then the network node at the edge | |||
| will remark the DSCP value based on policies. This could result | will remark the DSCP value based on policies. This could result | |||
| in the flow not getting the network treatment it expects based | in the flow not getting the network treatment it expects based | |||
| on the original DSCP value in the packet. Subsequently, if the | on the original DSCP value in the packet. Subsequently, if the | |||
| packet enters a network that supports a larger number of these | packet enters a network that supports a larger number of these | |||
| combinations, there may not be sufficient information in the | combinations, there may not be sufficient information in the | |||
| packet to restore the original markings. Mechanisms for | packet to restore the original markings. Mechanisms for | |||
| restoring such original DSCP is outside the scope of this | restoring such original DSCP is outside the scope of this | |||
| document. | document. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-5-14"> | ||||
| <t> | ||||
| In summary, DSCP marking provides neither guarantees nor | In summary, DSCP marking provides neither guarantees nor | |||
| promised levels of service. However, DSCP marking is expected | promised levels of service. However, DSCP marking is expected | |||
| to provide a statistical improvement in real-time service as a | to provide a statistical improvement in real-time service as a | |||
| whole. The service provided to a packet is dependent upon the | whole. The service provided to a packet is dependent upon the | |||
| network design along the path, as well as the network conditions | network design along the path, as well as the network conditions | |||
| at every hop. | at every hop. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="include" removeInRFC="false" pn="section-6"> | ||||
| <section title="Security Considerations"> | <name slugifiedName="name-security-considerations">Security Considerations | |||
| <t> | </name> | |||
| <t indent="0" pn="section-6-1"> | ||||
| Since the JavaScript application specifies the flow type and | Since the JavaScript application specifies the flow type and | |||
| application priority that determine the media flow DSCP values | application priority that determine the media flow DSCP values | |||
| used by the browser, the browser could consider application use | used by the browser, the browser could consider application use | |||
| of a large number of higher priority flows to be suspicious. | of a large number of higher priority flows to be suspicious. | |||
| If the server hosting the JavaScript application is compromised, | If the server hosting the JavaScript application is compromised, | |||
| many browsers within the network might simultaneously transmit | many browsers within the network might simultaneously transmit | |||
| flows with the same DSCP marking. The DiffServ architecture | flows with the same DSCP marking. The Diffserv architecture | |||
| requires ingress traffic conditioning for reasons that include | requires ingress traffic conditioning for reasons that include | |||
| protecting the network from this sort of attack. | protecting the network from this sort of attack. | |||
| </t> | </t> | |||
| <t indent="0" pn="section-6-2"> | ||||
| <t> | ||||
| Otherwise, this specification does not add any additional | Otherwise, this specification does not add any additional | |||
| security implications beyond those addressed in the following | security implications beyond those addressed in the following | |||
| DSCP-related specifications. For security implications on use | DSCP-related specifications. For security implications on use | |||
| of DSCP, please refer to Section 7 of <xref target="RFC7657"/> | of DSCP, please refer to <xref target="RFC7657" sectionFormat="of" secti | |||
| and Section 6 of <xref target="RFC4594"/>. Please also see | on="7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7657#section- | |||
| <xref target="I-D.ietf-rtcweb-security"/> as an additional | 7" derivedContent="RFC7657"/> | |||
| and <xref target="RFC4594" sectionFormat="of" section="6" format="defaul | ||||
| t" derivedLink="https://rfc-editor.org/rfc/rfc4594#section-6" derivedContent="RF | ||||
| C4594"/>. Please also see | ||||
| <xref target="RFC8826" format="default" sectionFormat="of" derivedConten | ||||
| t="RFC8826"/> as an additional | ||||
| reference. | reference. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="include" removeInRFC="false" pn="section-7"> | ||||
| <section title="IANA Considerations"> | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
| <t> | <t indent="0" pn="section-7-1">This document has no IANA actions.</t> | |||
| This specification does not require any actions from IANA. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="include" removeInRFC="false" pn="section-8"> | ||||
| <section title="Downward References"> | <name slugifiedName="name-downward-references">Downward References</name> | |||
| <t> | <t indent="0" pn="section-8-1"> | |||
| This specification contains a downwards reference to | This specification contains downwards references to | |||
| <xref target="RFC4594"/> and <xref target="RFC7657"/>. However, | <xref target="RFC4594" format="default" sectionFormat="of" derivedConten | |||
| the parts of the former RFC used by this specification are | t="RFC4594"/> and <xref target="RFC7657" format="default" sectionFormat="of" der | |||
| sufficiently stable for this downward reference. The guidance | ivedContent="RFC7657"/>. However, | |||
| the parts of the former RFCs used by this specification are | ||||
| sufficiently stable for these downward references. The guidance | ||||
| in the latter RFC is necessary to understand the Diffserv | in the latter RFC is necessary to understand the Diffserv | |||
| technology used in this document and the motivation | technology used in this document and the motivation | |||
| for the recommended DSCP values and procedures. | for the recommended DSCP values and procedures. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </middle> | ||||
| <section title="Acknowledgements"> | <back> | |||
| <t> | <references pn="section-9"> | |||
| Thanks to David Black, Magnus Westerlund, Paolo Severini, Jim | <name slugifiedName="name-references">References</name> | |||
| Hasselbrook, Joe Marcus, Erik Nordmark, Michael Tuexen, and | <references pn="section-9.1"> | |||
| Brian Carpenter for their invaluable input. | <name slugifiedName="name-normative-references">Normative References</na | |||
| me> | ||||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 119" quoteTitle="true" derivedAnchor="RFC2119"> | ||||
| <front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
| le> | ||||
| <author initials="S." surname="Bradner" fullname="S. Bradner"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="1997" month="March"/> | ||||
| <abstract> | ||||
| <t indent="0">In many standards track documents several words are | ||||
| used to signify the requirements in the specification. These words are often ca | ||||
| pitalized. This document defines these words as they should be interpreted in IE | ||||
| TF documents. This document specifies an Internet Best Current Practices for th | ||||
| e Internet Community, and requests discussion and suggestions for improvements.< | ||||
| /t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4594" target="https://www.rfc-editor.org/info/rfc4 | ||||
| 594" quoteTitle="true" derivedAnchor="RFC4594"> | ||||
| <front> | ||||
| <title>Configuration Guidelines for DiffServ Service Classes</title> | ||||
| <author initials="J." surname="Babiarz" fullname="J. Babiarz"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="K." surname="Chan" fullname="K. Chan"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="F." surname="Baker" fullname="F. Baker"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2006" month="August"/> | ||||
| <abstract> | ||||
| <t indent="0">This document describes service classes configured w | ||||
| ith Diffserv and recommends how they can be used and how to construct them using | ||||
| Differentiated Services Code Points (DSCPs), traffic conditioners, Per-Hop Beha | ||||
| viors (PHBs), and Active Queue Management (AQM) mechanisms. There is no intrins | ||||
| ic requirement that particular DSCPs, traffic conditioners, PHBs, and AQM be use | ||||
| d for a certain service class, but as a policy and for interoperability it is us | ||||
| eful to apply them consistently. This memo provides information for the Interne | ||||
| t community.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4594"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4594"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7657" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 657" quoteTitle="true" derivedAnchor="RFC7657"> | ||||
| <front> | ||||
| <title>Differentiated Services (Diffserv) and Real-Time Communicatio | ||||
| n</title> | ||||
| <author initials="D." surname="Black" fullname="D. Black" role="edit | ||||
| or"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="P." surname="Jones" fullname="P. Jones"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2015" month="November"/> | ||||
| <abstract> | ||||
| <t indent="0">This memo describes the interaction between Differen | ||||
| tiated Services (Diffserv) network quality-of-service (QoS) functionality and re | ||||
| al- time network communication, including communication based on the Real-time T | ||||
| ransport Protocol (RTP). Diffserv is based on network nodes applying different | ||||
| forwarding treatments to packets whose IP headers are marked with different Diff | ||||
| serv Codepoints (DSCPs). WebRTC applications, as well as some conferencing appli | ||||
| cations, have begun using the Session Description Protocol (SDP) bundle negotiat | ||||
| ion mechanism to send multiple traffic streams with different QoS requirements u | ||||
| sing the same network 5-tuple. The results of using multiple DSCPs to obtain di | ||||
| fferent QoS treatments within a single network 5-tuple have transport protocol i | ||||
| nteractions, particularly with congestion control functionality (e.g., reorderin | ||||
| g). In addition, DSCP markings may be changed or removed between the traffic so | ||||
| urce and destination. This memo covers the implications of these Diffserv aspec | ||||
| ts for real-time network communication, including WebRTC.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7657"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7657"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7742" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 742" quoteTitle="true" derivedAnchor="RFC7742"> | ||||
| <front> | ||||
| <title>WebRTC Video Processing and Codec Requirements</title> | ||||
| <author initials="A.B." surname="Roach" fullname="A.B. Roach"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2016" month="March"/> | ||||
| <abstract> | ||||
| <t indent="0">This specification provides the requirements and con | ||||
| siderations for WebRTC applications to send and receive video across a network. | ||||
| It specifies the video processing that is required as well as video codecs and | ||||
| their parameters.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7742"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7742"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 174" quoteTitle="true" derivedAnchor="RFC8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2017" month="May"/> | ||||
| <abstract> | ||||
| <t indent="0">RFC 2119 specifies common key words that may be used | ||||
| in protocol specifications. This document aims to reduce the ambiguity by cla | ||||
| rifying that only UPPERCASE usage of the key words have the defined special mea | ||||
| nings.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8622" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 622" quoteTitle="true" derivedAnchor="RFC8622"> | ||||
| <front> | ||||
| <title>A Lower-Effort Per-Hop Behavior (LE PHB) for Differentiated S | ||||
| ervices</title> | ||||
| <author initials="R." surname="Bless" fullname="R. Bless"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2019" month="June"/> | ||||
| <abstract> | ||||
| <t indent="0">This document specifies properties and characteristi | ||||
| cs 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 defaul | ||||
| t PHB) from LE traffic in congestion situations, i.e., when resources become sca | ||||
| rce, BE traffic has precedence over LE traffic and may preempt it. Alternativel | ||||
| y, packets forwarded by the LE PHB can be associated with a scavenger service cl | ||||
| ass, i.e., they scavenge otherwise-unused resources only. There are numerous us | ||||
| es for this PHB, e.g., for background traffic of low precedence, such as bulk da | ||||
| ta transfers with low priority in time, non-time-critical backups, larger softwa | ||||
| re 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 indent="0">This specification obsoletes RFC 3662 and updates th | ||||
| e DSCP recommended in RFCs 4594 and 8325 to use the DSCP assigned in this specif | ||||
| ication.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8622"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8622"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8826" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 826" quoteTitle="true" derivedAnchor="RFC8826"> | ||||
| <front> | ||||
| <title>Security Considerations for WebRTC</title> | ||||
| <author initials="E." surname="Rescorla" fullname="Eric Rescorla"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8826"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8826"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8831" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 831" quoteTitle="true" derivedAnchor="RFC8831"> | ||||
| <front> | ||||
| <title>WebRTC Data Channels</title> | ||||
| <author initials="R" surname="Jesup" fullname="Randell Jesup"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Loreto" fullname="Salvatore Loreto"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M" surname="Tüxen" fullname="Michael Tüxen"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8831"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8831"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8834" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 834" quoteTitle="true" derivedAnchor="RFC8834"> | ||||
| <front> | ||||
| <title>Media Transport and Use of RTP in WebRTC</title> | ||||
| <author initials="C." surname="Perkins" fullname="Colin Perkins"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M." surname="Westerlund" fullname="Magnus Westerlu | ||||
| nd"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J." surname="Ott" fullname="Jörg Ott"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8834"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8834"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8835" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 835" quoteTitle="true" derivedAnchor="RFC8835"> | ||||
| <front> | ||||
| <title>Transports for WebRTC</title> | ||||
| <author initials="H." surname="Alvestrand" fullname="Harald Alvestra | ||||
| nd"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8835"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8835"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references pn="section-9.2"> | ||||
| <name slugifiedName="name-informative-references">Informative References | ||||
| </name> | ||||
| <reference anchor="G.1010" target="https://www.itu.int/rec/T-REC-G.1010- | ||||
| 200111-I/en" quoteTitle="true" derivedAnchor="G.1010"> | ||||
| <front> | ||||
| <title>End-user multimedia QoS categories</title> | ||||
| <author> | ||||
| <organization showOnFrontPage="true">ITU-T</organization> | ||||
| </author> | ||||
| <date month="November" year="2001"/> | ||||
| </front> | ||||
| <seriesInfo name="ITU-T Recommendation" value="G.1010"/> | ||||
| </reference> | ||||
| <reference anchor="RFC2474" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 474" quoteTitle="true" derivedAnchor="RFC2474"> | ||||
| <front> | ||||
| <title>Definition of the Differentiated Services Field (DS Field) in | ||||
| the IPv4 and IPv6 Headers</title> | ||||
| <author initials="K." surname="Nichols" fullname="K. Nichols"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Blake" fullname="S. Blake"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="F." surname="Baker" fullname="F. Baker"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D." surname="Black" fullname="D. Black"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="1998" month="December"/> | ||||
| <abstract> | ||||
| <t indent="0">This document defines the IP header field, called th | ||||
| e DS (for differentiated services) field. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2474"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2474"/> | ||||
| </reference> | ||||
| <reference anchor="RFC2597" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 597" quoteTitle="true" derivedAnchor="RFC2597"> | ||||
| <front> | ||||
| <title>Assured Forwarding PHB Group</title> | ||||
| <author initials="J." surname="Heinanen" fullname="J. Heinanen"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="F." surname="Baker" fullname="F. Baker"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="W." surname="Weiss" fullname="W. Weiss"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J." surname="Wroclawski" fullname="J. Wroclawski"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="1999" month="June"/> | ||||
| <abstract> | ||||
| <t indent="0">This document defines a general use Differentiated S | ||||
| ervices (DS) Per-Hop-Behavior (PHB) Group called Assured Forwarding (AF). [STAND | ||||
| ARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2597"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2597"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3246" target="https://www.rfc-editor.org/info/rfc3 | ||||
| 246" quoteTitle="true" derivedAnchor="RFC3246"> | ||||
| <front> | ||||
| <title>An Expedited Forwarding PHB (Per-Hop Behavior)</title> | ||||
| <author initials="B." surname="Davie" fullname="B. Davie"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="A." surname="Charny" fullname="A. Charny"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J.C.R." surname="Bennet" fullname="J.C.R. Bennet"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="K." surname="Benson" fullname="K. Benson"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J.Y." surname="Le Boudec" fullname="J.Y. Le Boudec | ||||
| "> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="W." surname="Courtney" fullname="W. Courtney"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Davari" fullname="S. Davari"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="V." surname="Firoiu" fullname="V. Firoiu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D." surname="Stiliadis" fullname="D. Stiliadis"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2002" month="March"/> | ||||
| <abstract> | ||||
| <t indent="0">This document defines a PHB (per-hop behavior) calle | ||||
| d Expedited Forwarding (EF). The PHB is a basic building block in the Different | ||||
| iated Services architecture. EF is intended to provide a building block for low | ||||
| delay, low jitter and low loss services by ensuring that the EF aggregate is se | ||||
| rved at a certain configured rate. This document obsoletes RFC 2598. [STANDARDS | ||||
| -TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3246"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3246"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3550" target="https://www.rfc-editor.org/info/rfc3 | ||||
| 550" quoteTitle="true" derivedAnchor="RFC3550"> | ||||
| <front> | ||||
| <title>RTP: A Transport Protocol for Real-Time Applications</title> | ||||
| <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne | ||||
| "> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Casner" fullname="S. Casner"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Frederick" fullname="R. Frederick"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="V." surname="Jacobson" fullname="V. Jacobson"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2003" month="July"/> | ||||
| <abstract> | ||||
| <t indent="0">This memorandum describes RTP, the real-time transpo | ||||
| rt protocol. RTP provides end-to-end network transport functions suitable for a | ||||
| pplications transmitting real-time data, such as audio, video or simulation data | ||||
| , over multicast or unicast network services. RTP does not address resource res | ||||
| ervation 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 prov | ||||
| ide 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 govern | ||||
| ing how the protocol is used. The biggest change is an enhancement to the scalab | ||||
| le timer algorithm for calculating when to send RTCP packets in order to minimiz | ||||
| e transmission in excess of the intended rate when many participants join a sess | ||||
| ion 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="RFC8699" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 699" quoteTitle="true" derivedAnchor="RFC8699"> | ||||
| <front> | ||||
| <title>Coupled Congestion Control for RTP Media</title> | ||||
| <author initials="S." surname="Islam" fullname="S. Islam"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M." surname="Welzl" fullname="M. Welzl"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Gjessing" fullname="S. Gjessing"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2020" month="January"/> | ||||
| <abstract> | ||||
| <t indent="0">When multiple congestion-controlled Real-time Transp | ||||
| ort Protocol (RTP) sessions traverse the same network bottleneck, combining thei | ||||
| r controls can improve the total on-the-wire behavior in terms of delay, loss, a | ||||
| nd fairness. This document describes such a method for flows that have the same | ||||
| sender, in a way that is as flexible and simple as possible while minimizing the | ||||
| number of changes needed to existing RTP applications. This document also speci | ||||
| fies how to apply the method for the Network-Assisted Dynamic Adaptation (NADA) | ||||
| congestion control algorithm and provides suggestions on how to apply it to othe | ||||
| r congestion control algorithms.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8699"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8699"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| <section numbered="false" toc="include" removeInRFC="false" pn="section-appe | ||||
| ndix.a"> | ||||
| <name slugifiedName="name-acknowledgements">Acknowledgements</name> | ||||
| <t indent="0" pn="section-appendix.a-1"> | ||||
| Thanks to <contact fullname="David Black"/>, <contact fullname="Magnus | ||||
| Westerlund"/>, <contact fullname="Paolo Severini"/>, <contact fullname="Jim | ||||
| Hasselbrook"/>, <contact fullname="Joe Marcus"/>, <contact fullname="Erik N | ||||
| ordmark"/>, <contact fullname="Michael Tüxen"/>, and | ||||
| <contact fullname="Brian Carpenter"/> for their invaluable input. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="false" toc="include" removeInRFC="false" pn="section-appe | ||||
| <section title="Dedication"> | ndix.b"> | |||
| <t> | <name slugifiedName="name-dedication">Dedication</name> | |||
| This document is dedicated to the memory of James Polk, a | <t indent="0" pn="section-appendix.b-1"> | |||
| This document is dedicated to the memory of <contact fullname="James Pol | ||||
| k"/>, a | ||||
| long-time friend and colleague. James made important | long-time friend and colleague. James made important | |||
| contributions to this specification, including serving initially | contributions to this specification, including serving initially | |||
| as one of the primary authors. The IETF global community mourns | as one of the primary authors. The IETF global community mourns | |||
| his loss and he will be missed dearly. | his loss and he will be missed dearly. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
| <section title="Document History"> | ="include" pn="section-appendix.c"> | |||
| <t> | <name slugifiedName="name-authors-addresses">Authors' Addresses</name> | |||
| Note to RFC Editor: Please remove this section. | <author fullname="Paul E. Jones" initials="P." surname="Jones"> | |||
| </t> | <organization showOnFrontPage="true">Cisco Systems</organization> | |||
| <address> | ||||
| <t> | <email>paulej@packetizer.com</email> | |||
| This document was originally an individual submission in RTCWeb WG. | </address> | |||
| The RTCWeb working group selected it to be become a WG document. | </author> | |||
| Later the transport ADs requested that this be moved to the TSVWG WG | <author fullname="Subha Dhesikan" initials="S." surname="Dhesikan"> | |||
| as that seemed to be a better match. | <organization showOnFrontPage="true">Individual</organization> | |||
| </t> | <address> | |||
| <email>sdhesikan@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Cullen Jennings" initials="C." surname="Jennings"> | ||||
| <organization showOnFrontPage="true">Cisco Systems</organization> | ||||
| <address> | ||||
| <email>fluffy@cisco.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Dan Druta" initials="D." surname="Druta"> | ||||
| <organization showOnFrontPage="true">AT&T</organization> | ||||
| <address> | ||||
| <email>dd5826@att.com</email> | ||||
| </address> | ||||
| </author> | ||||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| <?rfc include='reference.RFC.4594'?> | ||||
| <?rfc include='reference.RFC.2119'?> | ||||
| <?rfc include='reference.RFC.7657'?> | ||||
| <?rfc include='reference.RFC.7742'?> | ||||
| <?rfc include='reference.I-D.ietf-rtcweb-security'?> | ||||
| <?rfc include='reference.I-D.ietf-rtcweb-transports'?> | ||||
| <?rfc include='reference.I-D.ietf-rtcweb-rtp-usage'?> | ||||
| <?rfc include='reference.I-D.ietf-rtcweb-data-channel'?> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <?rfc include='reference.RFC.2474'?> | ||||
| <?rfc include='reference.RFC.2597'?> | ||||
| <?rfc include='reference.RFC.3246'?> | ||||
| <?rfc include='reference.RFC.3550'?> | ||||
| <?rfc include='reference.RFC.3662'?> | ||||
| <?rfc include='reference.I-D.ietf-rmcat-coupled-cc'?> | ||||
| <reference anchor="G.1010"> | ||||
| <front> | ||||
| <title>End-user multimedia QoS categories</title> | ||||
| <author> | ||||
| <organization>International Telecommunications Union</organization> | ||||
| </author> | ||||
| <date month="November" year="2001"/> | ||||
| </front> | ||||
| <seriesInfo name="Recommendation" value="ITU-T G.1010"/> | ||||
| </reference> | ||||
| </references> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 89 change blocks. | ||||
| 351 lines changed or deleted | 907 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||