<?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.6.25 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shi-moq-design-space-analysis-of-moq-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="MoQ Design Space">Design Space Analysis of MoQ</title>
    <seriesInfo name="Internet-Draft" value="draft-shi-moq-design-space-analysis-of-moq-01"/>
    <author initials="H." surname="Shi" fullname="Hang Shi" role="editor">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>shihang9@huawei.com</email>
      </address>
    </author>
    <author initials="Y." surname="Cui" fullname="Yong Cui">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>cuiyong@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="X." surname="Yu" fullname="Xiaobo Yu">
      <organization>Alibaba Group</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>shibo.yxb@alibaba-inc.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="13"/>
    <area>Applications and Real-Time</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document investigates potential solution directions within the charter scope of MoQ WG. MoQ aims to provide low-latency, efficient media delivery solution for use cases including live streaming, gaming and video conferencing. To achieve low-latency media transfer efficiently, the network topology of relay nodes and the computation done at the relay nodes should be considered carefully. This document provides the analysis of those factors which can help the design of the MoQ protocols.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://VMatrix1900.github.io/moq-design-space-analysis-of-moq/draft-shi-moq-design-space-analysis-of-moq.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-shi-moq-design-space-analysis-of-moq/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Media Over QUIC Working Group mailing list (<eref target="mailto:moq@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/moq/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/moq/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/VMatrix1900/moq-design-space-analysis-of-moq"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Media over QUIC aims to provide low-latency, efficient media delivery solution for use cases including live streaming, gaming, and video conferencing. The latency requirement and the transmission pattern are analyzed in <xref target="moq-req"/>. To scale efficiently, relay can be used to optimize the delivery performance by caching, selective dropping, etc. However, how to accomplish that remains unclear. Lots of factors of the relay and protocol design choice can affect the performance gain of leveraging relay. This document aims to provide analysis of those design choices.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>Relay: An element which participates in the forwarding of the media content. Possibly support caching, selective dropping to optimize the media transmission performance.</li>
        <li>Producer: An endpoint which generate the media stream. Could be the original content producer (a live streaming uploader) or the re-encoder in the cloud.</li>
        <li>Consumer: An endpoint which receive the media stream. Could be the live stream viewer or the re-encoder in the cloud.</li>
      </ul>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="design-choice-1-static-tree-topology-versus-dynamic-mesh-topology">
      <name>Design Choice 1: Static Tree Topology versus Dynamic Mesh Topology</name>
      <t>The first question of using relay to forward the media between the producer and the consumer is the topology of relays. In traditional CDN network, each CDN site can be viewed as a relay. Those relays are organized in a tree (see <xref target="tree"/>). The producer and the consumer are usually connected to the edge node of the CDN which is the leaf node in the tree. In this case, the path for media in live streaming is usually producer - edge node 1 (relay 1) - parent node 1 (relay 2) - origin node (relay 3) - parent node 2 (relay 4) - edge node 2 (relay 5) - consumer, i.e. the media need to first go up to the root of the tree, then go down to another leaf node, traversing multiple (at least 3) relays if the CDN hierarchy is deep or the producer and the consumer is highly distributed. The tree topology is simple to build since the path of the stream is fixed and the leaf node can be lightweight and deployed closely to user. The computing intensive process can be put in the much more powerful root servers.</t>
      <t><xref target="QUICR-arch"/> is similar to the tree topology of CDN with one improvement: the relay can shortcut the media transmission. If the producer and the consumer share a parent relay, the media will be forwarded in the relay instead of the root of the tree (called Origin in QUICR's term).</t>
      <figure anchor="tree">
        <name>static tree topology</name>
        <artwork><![CDATA[
                               +----------+
                  +----------->|   Root   +-----------+
                  |            +----------+           |
                  |                                   |
             +----+-----+                        +----v-----+
      +----->| Parent-1 |                        | Parent-2 +--------+
      |      +----------+                        +----------+        |
      |                                                              |
 +----+-----+                                                   +----v-----+
 |  Edge-1  |                                                   |  Edge-2  |
 +----^-----+                                                   +----------+
      |                                                              |
      |                                                              |
+-----+----+                                                     +---v------+
| Producer |                                                     | Consumer |
+----------+                                                     +----------+
]]></artwork>
      </figure>
      <t>Another approach is to connect the relays in a dynamic mesh instead of a static hierarchy. Alibaba's  low-latency live streaming network builds on a flat CDN overlay <xref target="LiveNet"/>. A centralized controller collects the latency between each relay periodically and calculates the optimal path (latency-wise) for each media stream dynamically. Alibaba claims the flat topology reduce the latency by half compared to static hierarchy. An example is shown in <xref target="mesh"/>, the media stream is forwarded through relay 1 and relay 4, only 2 hops. If the network path between relay 1 and relay 4 are congested, relay 1 - relay 2/3 - relay 4 maybe used to provide lower-latency forwarding.</t>
      <t>The controller can be connected with 3rd party application provider and manages the interactive media communication between producer and consumer for the application provider. The interactive media can be delivered to other consumers via certain relays of the live streaming network. A request of interactive media communication can be triggered by a consumer. The request is sent to the application provider which then attempts to pull related media of corresponding consumer and producer from the live streaming network. The application provider merges the media containing the producer and the consumer and delivers the merged media to the live streaming network. The live steaming network conducts the media switching for the corresponding producer, consumer and other consumers via the corresponding relays upon the receipt of the media switching request.</t>
      <figure anchor="mesh">
        <name>dynamic mesh topology</name>
        <artwork><![CDATA[
              +-----------------------------------------+
              |              Controller                 |
              +-----------------------------------------+
              |                                         |
              |              +---------+                |
              |      +-------> Relay-2 +---------+      |
              |      |       +----+----+ path 2  |      |
              |      |            |              |      |
+----------+  | +----+----+       |         +----v----+ |   +----------+
| Producer +--+>| Relay-1 +-------+---------> Relay-4 +-+-->| Consumer |
+----------+  | +----+----+       | path 1  +---------+ |   +----------+
              |      |            |              |      |
              |      |            |              |      |
              |      |       +----+----+         |      |
              |      +-------+ Relay-3 +---------+      |
              |              +---------+                |
              |                                         |
              +-----------------------------------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="design-choice-2-stateless-http-versus-stateful-pubsub">
      <name>Design Choice 2: Stateless HTTP versus Stateful pub/sub</name>
      <t>Traditionally the CDN are using HTTP to support live streaming. The media stream is broken into a series of chunks which are mapped to HTTP resources. In this way, the HTTP stack and infrastructure is reused. Since HTTP is stateless, each relay only need to act as an HTTP server/client. There is no need to store the relationship between different HTTP flows hence the relay is easier to implement. However, such a stateless HTTP server will suffer from the delay of the chunk because each relay need to download the chunk first before it can serve the chunk to the downstream node as an HTTP server. The delay will be stacked along with the relay chain. Reducing the chunk size can reduce the delay, but the number of chunk will increase thus brings higher burden of management and signalling.</t>
      <t>Using pub/sub as the metaphor requires that the relay node keeps track of the mapping between the publisher and subscribers, i.e. the subscription information state. A packet receive from the publisher can be duplicated and forwarded to subscribers immediately without any delay, forming a relay chain for packets instead of chunks. HTTP can be modified to send partial chunks before a full chunk is received, then the downstream HTTP stream will bind with the upstream one, essentially brings back the subscription information state.</t>
      <t>Another way to eliminate the state in the relay node is to encode the state information on the data-plane. When the producer sends out the media, it tags the subscriber information in each packet or flow. The relay forwards the packet or flow based on the tag. The relay node need to be preloaded the tag forwarding rule. Luckily this tag forwarding rule is related to the topology which is rather static comparing to the highly dynamic media stream subscriber information.</t>
    </section>
    <section anchor="design-choice-3-quic-hop-by-hop-versus-end-to-end">
      <name>Design Choice 3: QUIC hop-by-hop versus end-to-end</name>
      <t>The media flow sending from the producer to the consumer will go through several relays. The media content will be encrypted using QUIC encryption as requested in charter. But whether the relay node will terminate the QUIC connection remains open. There are following two options to implement the MoQ protocol stack.</t>
      <t>The first option is to running the entire MoQ protocol inside QUIC encryption, including the media metadata which is needed by relay (see <xref target="node-by-node"/>). Thus the relay has to terminate the QUIC connection, decrypting the QUIC payload. This will require each relay node hold a valid CA certificate and run the CA verification process. Just like what the CDN node does nowadays.</t>
      <figure anchor="node-by-node">
        <name>MoQ running over QUIC, like HTTP</name>
        <artwork><![CDATA[
        Media (Metadata + Content)
----------------------------------------------
    Protocol header  |  Protocol payload           <-------- MoQ
----------------------------------------------
                   QUIC                            <-------- Transport
]]></artwork>
      </figure>
      <t>The second option is to only encrypt the media content using QUIC encryption but leave the metadata to other mechanism (see <xref target="end-to-end"/>). In this way, the QUIC connection is from producer to consumer. The relay does not need to decrypt the QUIC, saving the computing power. As the charter put it: "Even when media content is end-to-end encrypted, the relays can access metadata. Hence a new mechanism to convey the metadata to the relay is needed, similar to SDP for RTP, or m3u8 file for HLS.</t>
      <figure anchor="end-to-end">
        <name>MoQ using QUIC for media, other for metadata, like WebRTC</name>
        <artwork><![CDATA[
      Media metadata     |  Media content            <-----\
-------------------------|-----------------------           \
     Protocol header     |  Protocol payload         <------ MoQ
-------------------------|-----------------------           /
         Other           |    QUIC                   <-----/
]]></artwork>
      </figure>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>When the metadata is not carried inside the QUIC payload, it should be protected from unauthorized third-part access to to protect the privacy. Relay should be authenticated to access the metadata.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
      <references>
        <name>Informative References</name>
        <reference anchor="moq-req" target="https://datatracker.ietf.org/doc/draft-gruessing-moq-requirements/">
          <front>
            <title>draft-gruessing-moq-requirements-02</title>
            <author initials="J." surname="Gruessing" fullname="James Gruessing">
              <organization/>
            </author>
            <author initials="S." surname="Dawkins" fullname="Spencer Dawkins">
              <organization/>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
        <reference anchor="QUICR-arch" target="https://datatracker.ietf.org/doc/draft-jennings-moq-quicr-arch/">
          <front>
            <title>QuicR - Media Delivery Protocol over QUIC</title>
            <author initials="C." surname="Jennings" fullname="Cullen Jennings">
              <organization/>
            </author>
            <author initials="S." surname="Nandakumar" fullname="Suhas Nandakumar">
              <organization/>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
        <reference anchor="LiveNet" target="https://dl.acm.org/doi/abs/10.1145/3544216.3544236">
          <front>
            <title>LiveNet - A Low-Latency Video Transport Network</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
