<?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-00" 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-00"/>
    <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:
- 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.
- 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>
    </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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
gWl2iAc71Bf57ke3/wOBNmG1Eh0AAA==

-->

</rfc>
