<?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-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shi-scone-rtc-requirement-01" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="SCONE RTC">SCONE Real Time Communication Requirement</title>
    <seriesInfo name="Internet-Draft" value="draft-shi-scone-rtc-requirement-01"/>
    <author initials="H." surname="Shi" fullname="Hang Shi">
      <organization>Huawei</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>shihang9@huawei.com</email>
      </address>
    </author>
    <author initials="X." surname="Geng" fullname="Xuesong Geng">
      <organization>Huawei</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>gengxuesong@huawei.com</email>
      </address>
    </author>
    <author initials="Q." surname="Wu" fullname="Qinghua Wu">
      <organization>Chinese Academy of Sciences</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>wuqinghua@ict.ac.cn</email>
      </address>
    </author>
    <author initials="J." surname="Zhang" fullname="Jiaxing Zhang">
      <organization>Chinese Academy of Sciences</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhangjiaxing20g@ict.ac.cn</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <area>Web and Internet Transport</area>
    <workgroup>Standard Communication with Network Elements</workgroup>
    <keyword>RTC</keyword>
    <keyword>Feedback</keyword>
    <abstract>
      <?line 57?>

<t>In real-time communication (RTC) applications, low latency is essential, but unstable network conditions make it challenging. Traditional control loop reacts slowly and inaccurately to network changes. A new approach is proposed, communicating bandwidth and queue information from the bottleneck to the end-host for more accurate control.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Standard Communication with Network Elements Working Group mailing list (scone@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/scone"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/VMatrix1900/draft-scone-rtc-requirement"/>.</t>
    </note>
  </front>
  <middle>
    <?line 61?>

<section anchor="intro">
      <name>Introduction</name>
      <t>In real-time communication (RTC) transmission scenarios, low latency is one of the key requirements, especially in real-time interactive applications such as video conferencing, live streaming, and cloud gaming. For these applications, any significant delay can severely impact the user's quality of experience. However, the network environment especially in mobile networks is often changing dynamically, and factors such as bandwidth fluctuations, and delay jitters can affect transmission performance. Therefore, addressing these network fluctuations to ensure RTC with low latency is a significant technical challenge.</t>
      <t>Traditional RTC transmission protocols typically rely on end-to-end network condition detection methods, such as ACKs or NACKs that adjust sending rates based on packet loss and latency changes. The Cubic, Reno and BBR are typical congestion control algorithms (CCAs) that adjusts transmission rates by estimating network congestion. However, end-to-end feedback mechanisms like them have several limitations:</t>
      <ul spacing="normal">
        <li>
          <t>High feedback latency: Traditional end-to-end feedback mechanisms rely on detecting and adjusting to network conditions. For example, CCAs only react after detecting congestion or latency changes. This mechanism cannot predict sudden changes in network conditions, leading to delayed adjustments and reduced transmission efficiency.</t>
        </li>
        <li>
          <t>Insufficient feedback accuracy: Feedback mechanisms based on packet loss or latency measurements only provide rough estimates of network conditions. Due to varying network environments’ sensitivity to packet loss and latency, relying solely on these indicators makes precise adaptation difficult, often resulting in inaccurate adjustment.</t>
        </li>
      </ul>
      <t>To overcome these limitations, Explicit Network Feedback mechanisms like ECN have been proposed. Unlike implicit end-to-end feedback, explicit network feedback obtains real-time status information from network devices (such as routers and switches), providing faster and more accurate feedback on network conditions. However, the limited number of bits in ECN feedback results in low precision, making it difficult to meet the feedback accuracy requirements of RTC applications. Therefore, this document proposes an explicit network feedback mechanism, using bandwidth and queue information to assist the end-host in fine-grained control and reduce RTC latency. Detailed solution is out of scope of this document.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>RTC: real-time communication.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="network-assisted-real-time-communication-optimization">
      <name>Network Assisted Real-Time Communication Optimization</name>
      <t>The process is shown in the diagram below: the end-to-end RTC stream is sent from the server to the client. The bottleneck node provides real-time feedback of stream-level Capacity and Queue Length to the sender, assisting the sender in rate control.</t>
      <artwork><![CDATA[
                                            Feedback Loop
                                    +--->------->---------->-+
                                    |                        |
     +--------+              +-----------------+              +--------+
     |        |              |                 |              |        |
     | Client +--------------+ bottleneck node +--------------+ Server |
     |        |              |                 |              |        |
     +--------+              +-----------------+              +--------+
     --------<-----------------<------------------<---------------------
                                Data Flow
]]></artwork>
      <t>Feedback Mechanism: The bottleneck node sends network status information, including current network capacity and queue length, to the sender at fixed intervals (e.g., every 100ms). The feedback is transmitted using a lightweight way (such as emmbedding in IP header) to ensure low overhead and high timeliness.</t>
      <t>Rate Control Strategy: The sender adjusts the transmission rate based on the network capacity feedback from the bottleneck node. If capacity is sufficient, the sender increases the transmission rate; if capacity is limited or the queue length increases, the sender reduces the rate to avoid network congestion. Additionally, the  bottleneck node can prioritize scheduling key video frames to ensure smooth playback.</t>
      <t>With explicit feedback from the bottleneck node, the sender can respond to network changes more quickly, reducing transmission delays caused by congestion. Compared to traditional end-to-end implicit feedback, explicit feedback is more accurate and better ensures the continuity and quality of the video stream.</t>
    </section>
    <section anchor="requirement-of-the-feedback-signal">
      <name>Requirement of the feedback signal</name>
      <t>To ensure that signaling is transmitted alongside the data flow, this scheme employs in-band signaling, where feedback is embedded in the headers of returning ACK packets.</t>
      <t>The feedback contents includes:</t>
      <ul spacing="normal">
        <li>
          <t>Network Capacity: The bottleneck node monitors the currently available network bandwidth in real-time and feeds back the available bandwidth capacity to the sender. The sender adjusts the RTC rate control (including sending rate and encoding bitrate) based on this information to maximize bandwidth utilization while avoiding network congestion.</t>
        </li>
        <li>
          <t>Queue Length: The bottleneck node also monitors the length of its internal buffer queue. When the queue length increases, it indicates growing transmission delays and potential congestion. Based on this information, the sender can timely reduce the transmission rate to prevent packet loss.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document does not introduce any new security considerations.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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
TLNDPNihvsl3f3X7P3pt2NUTHQAA

-->

</rfc>
