<?xml version="1.0" encoding="US-ASCII"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<rfc category="std" docName="draft-trossen-bier-frrm-00"
     ipr="trust200902">
  <front>
    <title abbrev="FRRM">Realizing Forward Requests Return Multicast Semantic with BIER</title>

    <author fullname="Dirk Trossen" initials="D." surname="Trossen">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street/>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>dirk.trossen@huawei.com</email>
      </address>
    </author>

    <date month="" year="2022"/>

    <area>Routing</area>
    <workgroup>BIER</workgroup>

    <keyword></keyword>

    <abstract>

      <t>This document introduces a semantic for multicast that is based on initiating forward requests, resulting in
      dynamic return multicast to the set of initiating clients. The key dynamic nature here is represented in the
      return multicast being possibly different for every transmission. </t>

      <t>We introduce this semantic more formally, present exemplifying use cases and then focus on realizing this
        semantic using BIER technology.</t>

      <t>Although this document formally introduces the FRRM semantic as a new communication semantic, it does not
        intend to show the realization of it through any other means besides BIER. This is left for separate documents, if desired.</t>

    </abstract>

  </front>

  <middle>

    <section anchor="intro" title="Introduction">

      <t>Multicast communication semantics complements unicast communication with the ability to define the delivery
        of packets to more than one destination. For instance, <xref target="RFC4607"/> defines source-specific multicast (SSM) as</t>

      <list style="hanging" hangIndent="5">
        <t hangText="">A datagram sent with source IP address S and destination IP address G in the SSM range is delivered to each host socket that
        has specifically requested delivery of datagrams sent by S to G, and only to those sockets.</t>
      </list>

      <t>The nature of the 'specific request' for delivery is reflected in an explicit group management protocol, e.g., <xref target="RFC4604"/>
      through which a host can request that delivery, becoming a member of the group (address) G as a consequence.</t>

      <t>In this document, we introduce a different multicast semantic where the nature of the 'specifically requested delivery' is that of a forward
        request to the server S, which in response either adds the response to that request to an existing multicast group or forms a new one on-demand.
        The nature of the multicast group, equivalent to G in <xref target="RFC4607"/>, is ephemeral, limited by the time it takes to send a response to
        the (dynamically created) group of respondents. </t>

      <t>Multicast semantics of the aforementioned nature have been exploited and realized in previous work, such as <xref target="ICC2016"/>
      <xref target="POINT2016"/>, focussing on HTTP-based forward requests with multicast-delivered HTTP responses.</t>

      <t>These works were transferred onto a BIER-based systems in a previous draft <xref target="I-D.ietf-bier-multicast-http-response"/>. Similarly,
      this draft focussed entirely on the delivery of HTTP responses under such multicast semantic, progressing to WG last call in 2021. Due to organizational
      reasons on the side of (some of) the authors of this draft, comments from the BIER and application area community were not be possible to address with
      the draft finally abandoned in 2022.</t>

      <t>This document aims to take this initial work in <xref target="I-D.ietf-bier-multicast-http-response"/> further by (a) formally defining the
      underlying communication semantic for use across a number of use cases, (b) outline use case examples beyond 'just HTTP', (c) formulate requirements
      for its realization and (d) outline the realization in BIER.</t>

    </section>

    <section anchor="Abbreviations" title="Abbreviations">

      <t>The following abbreviations are used throughout the remainder of this draft, with reference to <xref target="RFC8279"/> and
      <xref target="I-D.ietf-bier-te-arch"/> for the definition (and technical explanation) of those terms:</t>

      <list style="hanging" hangIndent="7">
          <t hangText="BFER">: Bit-Forwarding Egress Routers</t>

          <t hangText="BFIR">: Bit-Forwarding Ingress Routers</t>

          <t hangText="BFR">: Bit-Forwarding Routers</t>

          <t hangText="PCE">: Path Computation Element</t>

          <t hangText="SH">: Service Handler</t>

          <t hangText="NAP">: Network Access Point</t>

      </list>

    </section>

    <section anchor="Definition" title="Definition of FRRM Semantic">

      <t>As the name FRRM (forward requests return multicast) indicates, multicast communication under this semantic is initiated
      through one or more forward request communication, i.e., from one or more of the eventual receivers of the multicast response(s).</t>

      <t>More formally, we define the FRRM semantic as</t>

      <list style="hanging" hangIndent="3">
        <t hangText="">A datagram with source address S towards destinations D1, ..., Dn is formed as one or more responses to adequate requests
          from D1, ..., Dn to S, where the ephemeral group address R is defined through an identifying characteristic across all received requests
          from D1, ..., Dn.</t>
      </list>

      <t>Where</t>

      <list style="hanging" hangIndent="3">
        <t hangText="">'identifying characteristic' is an implementation-specific parameter used to distinguish among different requests
          (e.g., identifiers such as URIs) from any of the D1, ..., Dn to S. </t>
      </list>

      <t>The nature of FRRM multicast is inherently dynamic, i.e., the multicast responses are formed in response to incoming requests.
      One or more responses may be created for the ephemeral group that is being formed, thereby supporting request-response patterns
      as much as initiated streaming patterns (i.e. a single request may lead to a stream of responses).</t>

      <t>The ephemeral groups are not unique but several may exist with different receiver groups each. This may happen when a set of forward
      requests arrives before time t_1, upon which the server S decides to form the ephemeral group R towards the senders of those requests,
      while another group R may be formed for those incoming forward requests arriving after time t_1 and before another checkpoint time t_2.</t>

      <t>The decision when to form an ephemeral group R as a result of incoming forward requests is entirely left to the implementation
      considerations at the server S and may depend on the specific use case (see <xref target="Use_cases"/>).</t>

    </section>

    <section anchor="Use_cases" title="Use Cases">

      <t>This section expands on the original HTTP-focussed use case in <xref target="I-D.ietf-bier-multicast-http-response"/>
      (still listed as an example in <xref target="HTTP_use_case"/>) through utilizing the FRRM semantic in, e.g., CDN
      optimization, distributed AI and more.</t>

      <section anchor="HTTP_use_case" title="HTTP-based Streaming">

        <t>Referring to the BIER Use Cases <xref target="I-D.ietf-bier-use-cases"/>, multicast
        is used to scale HTTP Live Streaming (HLS) to a large number of receivers that use HTTP.
        Multicast can speed up both live and high-demand VoD streaming.
        Adaptive Bit Rate IPMC <xref target="TR_IPMC_ABR"/> describes the use of IP Multicast
        towards the CMTS or a box beside it, where the content is converted
        to HTTP/TCP to stream to the receivers (e.g., homes).
        A server hosting the HLS content is shown as "NAP Server".
        The gateways acting as receivers for the multicast from the server are shown as
        "Client-NAP" (CNAP).  Each CNAP can serve multiple clients.</t>

        <t>Dynamic Adaptive Streaming (DASH) <xref target="ISO_DASH"/> over
        HTTP is another HTTP-based streaming approach.  In DASH, each media
        is described by a Media Presentation Description (MPD) file, through
        which a DASH client (e.g. a media player) is instructed how to download, interpret
        and play the media.  The media content is encoded into fragments or
        chunks at different bit rates.  Both the MPD and media fragments are
        stored at a server.  The DASH client first needs to retrieve the MPD
        file from the server; then it can start to retrieve media fragments
        encoded at different bits rates from the server.  DASH players may
        use rate adaptation, i.e., switching the retrieval from one rate
        chunks to another rate.  Usually this rate adaptation is utilizing
        delay measurements, resulting in TCP like behavior in terms of
        backoff in case of increasing delay.  DASH has been designed to reuse
        most of existing Internet infrastructure and protocols and can run
        over different underlying transports including HTTP.  For example,
        two major media service providers Netflix and Youtube use DASH over
        HTTP as their streaming technology.</t>

        <t>HTTP request and response used in media streaming services like HLS
        and DASH over HTTP, use HTTP responses for delivery of content, i.e.,
        each chunk is returned as an HTTP response to the requesting client.
        In such scenarios, where semi-synchronous access to the same resource
        occurs (such as watching prominent videos over Netflix or similar
        platforms or live TV over HTTP), traffic grows linearly with the
        number of viewers since the HTTP-based server will provide an HTTP
        response to each individual viewer.  This poses a significant burden
        on operators in terms of costs and on users in terms of likely
        degradation of quality.</t>

        <t>The use of HTTP-based streaming of video content is not limited to
        traditional TV broadcasting.  Consider a virtual reality use case
        where several users are joining a VR session at the same time, e.g.,
        centered around a joint event.  Hence, due to the temporal
        correlation of the VR sessions, we can assume that multiple requests
        are sent for the same content at any point, particularly when viewing
        angles of VR clients are similar or the same.  Due to availability of
        virtual functions and cloud technology, the actual end point from
        where content is delivered may change.</t>

        <t>HTTP streaming is not limited to video content, however. Software
        updates for, e.g., mobile devices or vehicles, become increasingly
        important, introducing point-to-multipoint traffic from a software
        server to devices.  Using V2X as an example, the software server
        could be a part of telecom operators or maintained by car
        manufacturers.  In either case, the software server keeps vehicle
        software or firmware images, which will be transmitted to many
        vehicles across the global Internet, based on a pull or push model.
        HTTP is commonly used for those software updates to provide an E2E
        transport between the software server and each vehicle requesting
        software updates.  As a result, the traffic from the software server
        to vehicles increases linearly with the number of connected vehicles
        since each vehicle will establish a HTTP connection with the software
        server.</t>
      </section>

      <section anchor="CDN_use_case" title="Intra-CDN Content Distribution">

        <t>More to come here based on the work outlined in <xref target="fCDN"/></t>

      </section>

      <section anchor="AI_use_case" title="Distributed Reasoning">

        <t>TODO: solicit a co-author with more background to cover this</t>

      </section>

    </section>

    <section anchor="Requirements" title="Requirements">

      <t>TBD: capture formal requirements here</t>

    </section>

    <section anchor="BIER_Architecture" title="BIER Architecture">

      <t><xref target="Architecture"/> shows the architecture for FRRM over a BIER overlay.</t>

        <figure anchor="Architecture" title="BIER Architecture for FRRM"><artwork align="center">
          <![CDATA[
+---------+   +----+  +------+
|         |   |    |  |      |/
+ IP only +---+ SH |--| BFER +----|
|receiver |   |    |  |      |\   |
|   UE    |   +-/\-+  +------+    |
+---------+     ||                |
                ||          +----------+   +---------+
                ||          |          |   |         |
            |-----          |  BFR     |---|  BFR    |------|
            |               |          |   |         |      |
            |               +----------+   +---------+      |
      +---------+                                       +-------+
      |         |                                       | BFIR  |
      + BIER TE +                              |--------|       |
      |  PCE    |           +---------+    +---+---+    +---+---+
      |         |-||        |   BFR   |----| BFR   |        |
      +---------+ ||        +-----+---|    +-------+    +---+---+
                  ||==============|====================>|  SH   |
                  ||              |                     +-------+
+---------+   +---\/+ +----+      |                        /|\
|         |   |     | |    |/     |                         |
+ IP only +---+ SH  +-+BFER+------|                   +----------+
|receiver |   |     | |    |\                         | IP only  |
+---------+   +-----+ +----+                          |  Sender  |
                                                      | (Server) |
                                                      +----------+

          [SH : Service Handler, PCE : Path Computation Element]
]]>
        </artwork></figure>

        <t>The multicast overlay is formed by the BFIR and BFER of the BIER
          layer and the additional Service Handler (SH) and Path Computation
          Element (PCE) elements shown in the figure.  When interconnecting
          with a non-BIER enabled IP routed peering network, a special SH, such
          as Border Gateway may be used.</t>

        <t>The Service Handler and BFER could be collocated, forming therefore the
          equivalent of a Client or Server Network Attachment Point (CNAP or SNAP) <xref target="TR_IPMC_ABR"/>.
          However, the SH may also be implemented in the clients and servers directly,
          avoiding some of the realization considerations discussed later, specifically
          those related to security associations. Lastly, the SH may be provisioned
          separately from both client/server and BFER/BFIR components. For instance, the SH
          may be part of a CPE deployment, where special applications access the FRRM
          capabilities, while utilizing a separate BIER overlay deployment of a network
          operator.</t>

        <t>Clients send and receive service transactions through the SH, i.e. forward requests
          and the responses, possibly delivered via BIER multicast capabilities.</t>

        <t>The SH on the server side is responsible for aggregating the relevant
          incoming forward requests and sending one or more BIER-based multicast response
          to multiple clients who requested the same content, following the FRRM semantic in
          <xref target="Definition"/>.</t>

        <section anchor="multicast_overlay" title="Description of a BIER Multicast Overlay">

           <t>The Service Handler (as in <xref target="Architecture"/>) in BIER Multicast Overlay,
           process the service request.  At the service level, e.g., for an HTTP service,
           the fixed relationship among consumer and providers may
           be abstracted using "Service Names", and the changing relationship at
           the Service execution endpoints can be managed at the "multicast
           overlay" level, handing out the exact locations where service requests
           or responses needs to be sent to BIER layer.</t>

           <figure anchor="Translation" title="Service Name to Path ID Translation"><artwork align="center">
             <![CDATA[
  +-------------+        +-----------+       +-----------+
  |             |        |           |       | PATH ID   |
  | Service name|        | Multicast |       | translates|
  | [producer,  |------->| Overlay   |------>| to BIER   |
  |  consumer]  |        | Layer     |       | header    |
  |             |        |           |       |           |
  +-------------+        +-----------+       +-----------+
  ]]>
          </artwork></figure>

           <t>It should be noted, a number of identifiers can be used as service name,
           such as a URI or an IP address. In the example illustration, other layers such as TCP,
           IP have been terminated at the egress point.  Outside BIER domain we
           terminate TCP/IP session to extract the service name to be processed by
           the "multicast overlay" layer to generate the PATH IDENTIFIER, which is
           used as BIER header.</t>

           <t>Path Identifier or PATH ID, is used in path-based approach, which
           utilizes path information provided by the source of the packet for
           forwarding said packet in the network.  This is similar to segment
           routing albeit differing in the type of information provided for such
           source-based forwarding.</t>

           <t>Once the BIER header is determined and added at the BFIR, the rest of
           the transport layers is assumed to be any underlay technology as
           supported by BIER.  We assume TCP friendly transport, which can
           assure reliable delivery.</t>

         </section>

         <section anchor="components" title="BIER Multicast Overlay Components">

           <t>With reference to <xref target="Architecture"/>, the following components
           are part of BIER Multicast Overlay Layer.</t>

           <t><list style="numbers">

             <t>Service Handler (SH): The Service handler terminates transport
              level protocols, such as TCP, and extracts the service name. It processes
              the service name in order to determine the PATH ID by contacting the PCE
              for a suitable path resolution, which in turn is used to send the
              service request.</t>

             <t>Optional PCE : Path Computation Element keeps track of all service
              execution end points through a registration process.  SH interacts
              with the PCE to obtain PATH information by resolving the service name
              at the ingress SH to a suitable PATH ID.</t>

             <t>Interface functions to BFIR where the PATH ID is mapped to BIER
              header.  An Interface to the BFER is likely not required because
              the BFER will only receive the traffic that they need and should
              be able to derive from the BIER payload which subset of its
              receivers need to get an encapsulated version of a particular
              reply.</t>
            </list></t>
          </section>

    </section>

    <section anchor="Interactions" title="Protocol Interactions">

      <section anchor="overlay_operations" title="BIER Multicast Overlay Operations">

         <t>As shown in <xref target="Protocol_stack"/>, the "Multicast overlay function" includes a
         function called PCE (Path Computation Element function), which is
         responsible for selecting the correct multicast end point and
         possibly realizing path policy enforcement.  The result of the
         selection is a BIER path identifier, which is delivered to the SH
         upon initial path computation request (or provided to the ingress
         router BFIR to be added as BIER header ) (i.e., when sending a
         request to or response for a specific URL for the first time).  The
         path identifier is utilized for any future request for a given URL-
         based request.</t>

         <t>All service end points indicate availability to the PCE through a
         registration procedure, the PCE will instruct all SHs to invalidate
         previous path identifiers to the specific URL that might exist.  This
         may result in an a renewed path computation request at the next
         service request forwarding.  Through this, the newly registered
         service endpoint might be utilized if the policy-governed path
         computation selects said service instance.  Otherwise, a previously
         resolved PATH ID for the URI determined at the ingress SH is being
         used instead, removing any resolution latency to an SH-local lookup
         of the PATH ID.</t>


      <figure anchor="Protocol_stack" title="Protocol Stack for Multicast Overlay Layer"><artwork align="center">
        <![CDATA[
+-------+    +------+----+   +--------+                  +----+-----+
|Apps   |    |Apps---->  |   | PCE    |                  |    | APP |
|layer  |--->|layer | SH |   +---/\---+                  | SH-->    |
|prot   |    |prot  |    |       ||                      |    | LYR |
+-------+    +------+----+   +---------+   +---------+   +----+-----+
|   L2  |    |      L2   |-->|Forwarder|-->|Forwarder|-->|    L2    |
+-------+    +------+----+   +---------+   +---------+   +----------+
                           |--------BIER DOMAIN -------|
]]>
      </artwork></figure>

         <t>In the diagram shown above, a service request is sent by an IP-based
         device towards the service name of the server defined in the service request.</t>

         <t>At the client facing SH, the service request is terminated at the TCP
         level.  The server side SH at the egress terminates any transport protocol on the outgoing (server) side.
         These terminating functions are assumed to be part of the client/
         server SH.  As a consequence, the SH obtains the destination "Service
         Name" from the received service request.</t>

         <t>If no local BIER forwarding information exists at the client side SH,
         the path computation entity (PCE) is consulted, which calculates a
         unicast path from the BFIR to which the client SH is connected to the
         BFER to which the server SH is connected. The PCE provides the
         forwarding information (Path ID) to the client SH, which in turn
         caches the result.  The Client SH may forward the Path ID to BFIR,
         which creates the BIER header.</t>

         <figure anchor="Encapsulation" title="Encapsulation of Service Request"><artwork align="center">
           <![CDATA[
+-------------+--------------+
|             | SERVICE      |
| BIER HEADER | REQUEST      |
|             | [ENCODED IN  |
|             | TEXT]        |
|             |              |
+-------------+--------------+
]]>
         </artwork></figure>

         <t>Ultimately, the "Service Request" encapsulated by BIER header, as shown
         in above diagram, is forwarded by the client SH towards the server-
         facing SH via the local BFIR.  We assume a (TCP-friendly) transport
         protocol being used for the transmission between client and server
         SH.  The possibility of sending one service response to several SHs
         makes this a reliable multicast transport protocol.  The exact nature
         of this transport protocol is left for further studies.  A suitable
         transport or Layer 2 encapsulation, as supported by BIER layer, is
         added to the above payload.</t>

         <figure anchor="Transport_encapsulation" title="Transport Encapsulation of BIER payload"><artwork align="center">
           <![CDATA[
+-------------+-------------+--------------+
|             |             | SERVICE      |
| Transport L2| BIER HEADER | REQUEST      |
|   HEADER    |             | [ENCODED IN  |
|             |             | TEXT]        |
|             |             |              |
+-------------+-------------+--------------+
]]>
          </artwork></figure>

         <t>Upon arrival of a service request at the server SH, it forwards the
         service request as a well-formed service request locally to the server,
         awaiting an service response for the reverse direction.</t>

         <t>If no BIER forwarding information exists for the reverse direction
         towards the requesting client SH, this information is requested from
         the PCE, similar to the operation in forward direction.</t>

       </section>

       <section anchor="multicast_responses" title="Achieving Multicast Responses">

         <t>Upon arrival of any further client SH request at the server SH to an
         service request whose response is still outstanding, the client SR is
         added to an internal request table. Optionally, the request is
         suppressed from being sent to the server.</t>

         <t>Upon arrival of a service response at the server SH, the server SH
         consults its internal request table for any outstanding service requests
         to the same request.  The server SH retrieves the stored BIER
         forwarding information for the reverse direction for all outstanding
         service requests and determines the path information to all client SHs
         through a binary OR over all BIER forwarding identifiers with the
         same SI field.  This newly formed joint BIER multicast response
         identifier is used to send the service response across the network.</t>

         <t>BIER makes the solution scalable. Instead of IP Multicast with IGMP/
         PIM, BIER is being used between Server SH and client SHs, the server-facing SH
         simply coalesces the forwarded service requests from the client-facing SH, and
         determines for every requested block the set of SHs requesting it.
         A set of SHs corresponds to a set of bits in the BIER-bitstring,
         one bit per SH.  The SH then sends the block into BIER with the
         appropriate bitstring set.</t>

         <t>This completely eliminates any dynamic multicast signaling between
         client-facing SHs and server-facing SH. It also avoids sending of any unnecessary data block.</t>

         <t>Furthermore, using the approach with BIER, the server-facing SH can also easily
         control how long to delay sending of blocks.  For example, it may
         wait for some percentage of the time of a block (e.g, 50% = 1
         second), therefore ensuring that it is coalescing as many requests
         into one BIER multicast answer as possible. The realization of such controlled
         sending of a single response, however, needs further study as to the possible
         interaction with upper-layer methods, particularly congestion control.</t>
       </section>

       <section anchor="traffic_management" title="BIER Multicast Overlay Traffic Management">

         <t>BIER-TE (BIER Traffic Engineering <xref target="I-D.ietf-bier-te-arch"/>) forwards
         and replicates packets like BIER based on a BitString in the packet
         header.  Where BIER forwards and replicates its packets on shortest
         paths towards BFER, BIER-TE allows (and requires) to also use bits in
         the bitstring to indicate the paths in the BIER domain across which
         the BIER-TE packets are to be sent.  This is done to support Traffic
         Engineering for BIER packets via explicit hop-by-hop and/or loose hop
         forwarding of BIER-TE packets.  A BIER-TE controller calculates
         explicit paths for this packet forwarding.</t>

         <t>The Multicast Flow Overlay operates as in BIER.  Instead of
         interacting with the BIER layer, it interacts with the BIER-TE
         Controller.</t>

         <t>In this draft, "Name-based" service forwarding over BIER, is
         described to handle changes in service execution end points and
         manage adhoc relationship in a multicast group.  BIER-TE is another
         way of doing this, while integrated with BIER architecture. The PCE
         function described earlier in the BIER Multicast Overlay, may become
         part of BIER-TE Controller. The server- and client-facing SH function
         communicates with the BIER TE controller. SH sends the service name to
         the controller, which processes the request using the PCE function and
         returns the "bitstring" to be used as BIER header for delivery of the
         service response to multiple clients.</t>
       </section>

    </section>

    <section anchor="Upper_layers" title="Upper Layer Considerations">

      <section anchor="Application" title="Application (Protocol) Considerations">

        <t>TBD: add something on DASH here, app considerations for using SH capabilities, ...</t>

      </section>

      <section anchor="Transport" title="Transport Protocol Considerations">

        <t>TBD: move transport discussions in <xref target="Interactions"/> into this place and pose the
        challenges that need addressing beyond the FRRM aspect at the BIER level</t>

      </section>

    </section>

    <section anchor="Conclusions" title="Conclusions">
      <t>This draft generalizes the work in <xref target="I-D.ietf-bier-multicast-http-response"/> beyond
      HTTP being the application protocol. Instead, this draft proposes a general multicast semantic
      termed 'forward requests return multicast' (FRRM), which can be utilized by any application layer
      protocol atop a BIER transport network.</t>

    </section>

    <section anchor="security" title="Security Considerations">

      <t>The operations in <xref target="Interactions"/> consider the forwarding of service request packets
         between ingress and egress points based on information derived from
         the service request.  The support for transport-level security, e.g., TLS, is foreseen to ensure
         suitable encryption capability of such exchanges.  For this to
         happen, we expect certificate sharing agreements to exist between the
         content provider and the BIER overlay provider, ensuring the
         extraction of the suitable request parameters while allowing for the
         re-encryption of the content for an encrypted delivery over the BIER
         network.  Since we liken the relationship between content and BIER
         overlay provider to that between content and CDN provider, the
         existence of certificate sharing agreements is similar to the
         practice used for CDNs.</t>
    </section>

    <section anchor="privacy-consider" title="Privacy Considerations">

      <t>TBD: Anything here on exposing request IDs?</t>

    </section>

    <section title="IANA Considerations">

      <t>This draft does not request any IANA action.</t>

    </section>

    <section title="Acknowledgements">
      <t>This draft originated from the narrower use case described in <xref target="I-D.ietf-bier-multicast-http-response"/>. We acknowledge the work
      that has gone into the development of this draft and the contributions through discussions on the mailing list. We specifically thank
      Toerless Eckert, Sebastian Robitzsch, Akbar Rahman and Chonggang Wang for their contributions to the original draft, some of which have been
      transferred to this draft, where appropriate.</t>
    </section>

  </middle>

  <back>
    <references title="Informative References">

      <?rfc include='reference.RFC.4604'?>
      <?rfc include='reference.RFC.4607'?>
      <?rfc include='reference.RFC.8279'?>

      <?rfc include='reference.I-D.ietf-bier-multicast-http-response'?>
      <?rfc include='reference.I-D.ietf-bier-te-arch'?>
      <?rfc include='reference.I-D.ietf-bier-use-cases'?>

      <reference anchor="fCDN" target="https://arxiv.org/abs/1803.00876">
       <front>
         <title>fCDN: A Flexible and Efficient CDN Infrastructure without DNS Redirection or Content Reflection</title>

         <author initials="M." surname="Al-Naday">
           <organization/>
         </author>
         <author initials="M." surname="Reed">
           <organization/>
         </author>
         <author initials="J." surname="Riihijarvi">
           <organization/>
         </author>
         <author initials="D." surname="Trossen">
           <organization/>
         </author>
         <author initials="N." surname="Thomos">
           <organization/>
         </author>
         <author initials="M." surname="Al-Khalidi">
           <organization/>
         </author>
         <date year="2018"/>
       </front>

       <seriesInfo name="Paper" value="Arxiv"/>
      </reference>

      <reference anchor="ICC2016">
        <front>
          <title>Stateless multicast switching in software defined networks</title>
          <author initials="M." surname="Reed">
            <organization></organization>
          </author>
          <author initials="M." surname="Al-Naday">
            <organization></organization>
          </author>
          <author initials="N" surname="Thomos">
            <organization></organization>
          </author>
          <author initials="D." surname="Trossen">
            <organization></organization>
          </author>
          <author initials="G." surname="Petropoulos">
            <organization></organization>
          </author>
          <author initials="S." surname="Spirou">
            <organization></organization>
          </author>
          <date year="2016"/>
        </front>
        <seriesInfo name="Paper" value="IEEE ICC 2016" />
      </reference>

      <reference anchor="POINT2016">
        <front>
          <title>Realizing IP-based Services over an Information-Centric Networking Transport Network</title>
          <author initials="S.-Y." surname="Kim">
            <organization></organization>
          </author>
          <author initials="S." surname="Robitzsch">
            <organization></organization>
          </author>
          <author initials="D." surname="Trossen">
            <organization></organization>
          </author>
          <author initials="M." surname="Reed">
            <organization></organization>
          </author>
          <author initials="M." surname="Al-Naday">
            <organization></organization>
          </author>
          <author initials="J." surname="Riihijarvi">
            <organization></organization>
          </author>
          <date year="2016"/>
        </front>
        <seriesInfo name="Paper" value="Proceedings of the 3rd ACM Conference on Information-Centric Networking, Pages 215-216" />
      </reference>

      <reference anchor="DVB_REF_ARCH" target="https://www.dvb.org/resources/public/standards/a176_adaptive_media_streaming_over_ip_multicast_2018-02-16_draft_bluebook.pdf">
        <front>
          <title>Adaptive media streaming over IP Multicast</title>
          <author initials="" surname="DVB">
            <organization></organization>
          </author>
          <date year="2018"/>
        </front>
        <seriesInfo name="Report" value="DVB Document A176" />
      </reference>

      <reference anchor="ISO_DASH" target="http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html">
        <front>
          <title>Information technology -- Dynamic adaptive streaming over HTTP (DASH) -- Part 1: Media presentation description and segment formats</title>
          <author initials="" surname="ISO">
            <organization></organization>
          </author>
          <date year="2014"/>
        </front>
        <seriesInfo name="Report" value="ISO/IEC 23009-1:2014" />
      </reference>

      <reference anchor="TR_IPMC_ABR" target="https://community.cablelabs.com/wiki/plugins/servlet/cablelabs/alfresco/download?id=51b3c11a-3ba4-40ab-b234-42700e0d4669;1.0>">
        <front>
          <title>IP Multicast Adaptive Bit Rate Architecture Technical Report</title>
          <author initials="" surname="CableLabs">
            <organization></organization>
          </author>
          <date year="2016"/>
        </front>
        <seriesInfo name="Report" value="OC-TR-IP-MULTI-ARCH-V01-141112 C01" />
      </reference>

   </references>

  </back>
</rfc>
