<?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.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shi-moq-design-space-analysis-of-moq-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <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-00"/>
    <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>
    <date year="2022" month="October" day="21"/>
    <area>Applications and Real-Time Area</area>
    <workgroup>moq</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>
  </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>
      <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" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
      <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>
