One document matched: draft-seedorf-ppsp-design-considerations-00.xml


<?xml version="1.0" encoding="US-ASCII"?>
<?rfc strict="yes"?>
<?rfc toc="yes" ?>
<?rfc tocompact="yes" ?>
<?rfc symrefs="yes" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc category="info" ipr="trust200902">
  <front>
    <title abbrev="PPSP Design">Design Considerations for a Peer-to-Peer
    Streaming Protocol</title>

    <author fullname="Jan Seedorf" initials="J." surname="Seedorf">
      <organization abbrev="NEC">NEC Laboratories Europe, NEC Europe
      Ltd.</organization>

      <address>
        <postal>
          <street>Kurfuersten-Anlage 36</street>

          <city>Heidelberg</city>

          <code>69115</code>

          <country>Germany</country>
        </postal>

        <phone>+49 (0) 6221 4342 221</phone>

        <email>jan.seedorf@neclab.eu</email>

        <uri>http://www.nw.neclab.eu</uri>
      </address>
    </author>

    <author fullname="Martin Stiemerling" initials="M." surname="Stiemerling">
      <organization abbrev="NEC">NEC Laboratories Europe / University of
      Goettingen</organization>

      <address>
        <postal>
          <street>Kurfuersten-Anlage 36</street>

          <city>Heidelberg</city>

          <code>69115</code>

          <country>Germany</country>
        </postal>

        <phone>+49 (0) 6221 4342 113</phone>

        <email>martin.stiemerling@neclab.eu</email>

        <uri>http://ietf.stiemerling.org</uri>
      </address>
    </author>

    <date year="2010" />

    <area>Transport</area>

    <workgroup>PPSP</workgroup>

    <abstract>
      <t>Streaming video on P2P overlays puts extremely high demands and
      stress on the underlying network, especially in case of TV and live
      streaming. The EU research project NAPA-WINE has devised an overall
      architecture for live video streaming that supports the needs of the
      users and content providers, while being respective of network-level
      needs, as reducing inter-AS traffic using ALTO-like services. In this
      document, we describe generic elements of this software architecture for
      P2P live streaming and derive the corresponding implications for
      standardizing a Peer-to-Peer streaming protocol.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>In recent years, Peer-to-peer (P2P) technology became increasingly
      popular for video streaming applications, including TV services
      (P2P-TV). Examples of commercial P2P-TV include SopCast, TVAnts, PPLive,
      UUSee, and TVUplayer. The interest of the research and standardization
      communities, content providers and network operators is also on the
      rise. Content providers see a novel opportunity to reach users, but at
      the same time they are concerned about the threats posed to their
      standard business models. Network operators are mainly worried by the
      stress posed by such a bandwidth-hungry and delay sensitive application
      on their infrastructure. The research community is stimulated by the
      opportunities offered by live P2P distribution and broadcasting, looking
      both for novel technical solutions and innovative business models.</t>

      <t>NAPA-WINE (Network Aware P2P-TV Application over WIse NEtworks) is a
      three years project (STREP) within the 7-th Research Framework of the
      European Commission whose goal is finding innovative solutions for P2P
      live streaming to meet opportunities envisaged by content providers
      while soothing worries of network operators.</t>

      <t>In a P2P-TV system, a source divides the video stream into chunks of
      data, which are exchanged among nodes to distribute them to all
      participating peers. Peers form an overlay topology at the application
      layer, where neighbor peers are connected and exchange chunks using the
      underlying IP network. The IP and overlay layer are both
      “network” layers in that they both perform routing and
      forwarding of the data: packets in the IP layer and chunks (normally a
      sequence of packets) in the overlay. In this context, the NAPA-WINE
      project has developed an innovative, network cooperative P2P
      architecture that explicitly targets the optimization of the quality
      perceived by the users while minimizing the impact on the underlying
      transport network. Our architecture does not impose any structure on the
      overlay topology, which can be any type of generic mesh. The video
      distribution is chunk-based, but chunk construction is free enough to
      accommodate anything from a single video frame (even less if required)
      to large swaths of a video in case of nearly on-demand applications. The
      focus is on the design of a system empowering future P2P High Quality
      TV, a system where a source peer produces the video stream, chops it
      into chunks, and injects them in the overlay where peers cooperate to
      distribute them, without the need for the source to have enormous
      resources and bandwidth to support the service.</t>

      <t>In this document, we summarize our architecture for P2P live
      streaming (a more detailed description can be found in <xref
      target="refs.napa-architecture"></xref>). The goal of this draft is to
      derive the implications for standardizing a P2P-based streaming protocol
      from the aforemetioned architecture. We thus highlight key design
      considerations for a P2P-based streaming protocol which we believe are
      important input to the IETF PPSP working group.</t>
    </section>

    <section anchor="architecture"
             title="An Architecture for a P2P-based Live Streaming Application">
      <t>The architecture we developed is based on five main building blocks:
      <list style="symbols">
          <t>Application Layer</t>

          <t>Topology Management</t>

          <t>Chunk Scheduling</t>

          <t>Monitoring Layer</t>

          <t>Messaging Layer</t>
        </list> In addition, our architecture contains an external ALTO
      interface that can support the topology management providing information
      that cannot be measured at the application level. In the following we
      briefly outline the role and key features of each building block.</t>

      <section anchor="app-layer" title="Application Layer">
        <t>The Application Layer (or User Layer) is mainly responsible for of
        video encoding and its packaging into chunks (at the source) and
        de-chunkization and decoding at receivers. Standard encoding tools
        like ffmpeg can be used by the User Layer, whose goal is not
        implementing a proprietary video encoder, but supporting as many as
        possible standard formats (MPEG1/2/4, H.264, etc.). Depending on the
        type of video source this may include analog/digital conversion,
        encoding and any other video manipulation that the content provider
        whishes to do, like advertising introduction and similar.</t>

        <t>The standardization of the application layer is out-of-scope for
        IETF PPSP work other than considerations on how to express and
        transport metadata information about the content.</t>
      </section>

      <section anchor="top-manr" title="Topology Management">
        <t>A P2P-TV client needs to communicate efficiently with other peers
        to receive and redistribute the huge amount of information embedded in
        a video stream. Information must arrive in nearly real-time and with
        small delay variation. The application goal is then to deliver all the
        video information to all peers in the system in the smallest possible
        amount of time. One of the key enabling factors is who are the peers
        to communicate with, i.e. the neighborhood selection.</t>

        <t>The overlay network in P2P systems is the result of a distributed
        algorithm that builds and maintains the neighborhood at each peer.
        When a peer joins the system, it selects an initial set of neighbors,
        then the set of neighbors of every node in the system is dynamically
        optimized over time. The bootstrapping phase can be helped by the
        source or a web server where the user selects a channel, which can
        behave as a bit-torrent like tracker. The maintenance of the topology
        is based on a gossiping protocol that enables discovery of peers in
        the overlay. Once peers are discovered, the optimal topology
        management is obtained through an topology manager which chooses which
        peers to connect to.</t>

        <t>IMPLICATIONS ON STANDARDIZATION:<list style="symbols">
            <t>A tracker protocol is required that supports the goals of the
            topology management</t>

            <t>The topology management algorithm can be standardized, but this
            would probably be beyond the scope of the PPSP WG</t>

            <t>The definition of information about the employed topology
            management and the exchange as part of the PPSP WG can be
            standardized</t>
          </list></t>
      </section>

      <section anchor="chunk-sched" title="Chunk Scheduling">
        <t>Strictly related to topology management is the problem of chunk
        trading. The goal of chunk trading is receiving the stream smoothly
        (and with small delay) and to cooperate in the distribution
        procedure.</t>

        <t>Chunks transferring is the operation that most affects performance
        and network friendliness. It includes protocol and algorithmic
        problems. First of all, peers need to exchange information about their
        current status to enable scheduling decisions. The information
        exchanged refers to the state of the peer with respect to the flow,
        i.e., a map of which chunks are needed by a peer to smoothly playout
        the stream. This task means i) sending buffer maps to other nodes with
        the proper timing, ii) receiving them from other nodes and merging the
        information in the local buffer map data base, iii) negotiating if
        this and other information should be spread by gossiping protocols or
        not, and to which depth it should spread in the topology.</t>

        <t>Besides the buffer map exchange, the signaling includes
        Offer/Request/Select primitives used to trade chunks. These messages
        can be piggybacked on chunks for efficiency. Another key protocol
        decision is about "Pushing" or "Pulling" information. A chunk is
        pushed when the peer owning the chunk decides to offer it to some
        other peer, while it is pulled when a peer needing the chunk requests
        it from another peer. From a theoretical point of view, as shown in
        <xref target="refs.opt-scheduling"></xref>, pushing is more effective.
        Regardless of the protocol and the signaling strategy used, the core
        of a scheduler is the algorithm to choose the chunks to be exchanged
        and the peers to communicate with. Many different strategies have been
        studied, including both fundamental algorithms and their adaptation to
        heterogeneous scenarios, multiple sub-streams etc.</t>

        <t>IMPLICATIONS ON STANDARDIZATION:<list style="symbols">
            <t>The PPSP protocol design should allow to operate either with a
            push or pull regime</t>

            <t>The PPSP protocol design should allow to select if push or pull
            is used in the PPSP system during runtime</t>

            <t>The PPSP protocol design should allow to employ multiple chunk
            scheduling algorithms with the same protocol</t>
          </list></t>
      </section>

      <section anchor="mon-layer" title="Monitoring Layer">
        <t>Beside the information provided by e.g. an ALTO Server, both the
        chunk scheduler and the overlay manager can exploit timely information
        about the quality of the connectivity between peers collected in real
        time by monitoring modules. This includes, but is not limited to, the
        distance and the available bandwidth between two peers, or the
        presence of Network Address Translation (NAT). The Monitoring Layer
        may employ passive or active measurement. Passive measurements are
        performed by observing the messages that are exchanged between peers.
        Active measurements craft special probe messages which are sent to
        other peers at the discretion of the Monitoring Layer. Monitoring the
        network conditions is important for the peer-to-peer streaming
        application in order to judge the current state of the surrounding
        network environment</t>

        <t>IMPLICATIONS ON STANDARDIZATION:<list style="symbols">
            <t>The PPSP protocol should allow the exchange of monitoring
            status information (e.g., in the spirit of "Do you see what I
            see?" <xref target="refs.dywis"></xref>)</t>

            <t>The PPSP protocol should support active and passive
            measurements between peers</t>
          </list></t>
      </section>

      <section anchor="mess-layer" title="Messaging Layer">
        <t>The Messaging Layer offers primitives to other modules for sending
        and receiving data to/from other peers. It provides an abstract
        interface to transport protocols (UDP/TCP) and the corresponding
        service access points offered by the operating system by extending
        their capabilities and providing an application level addressing,
        i.e., assigning a unique identifier to each peer. For example, it
        provides the ability to send a chunk to another peer, which has to be
        segmented and then reassembled to fit into UDP datagrams. The
        messaging layer also provides an interface to the monitoring module
        invoked for passive measurements: whenever a message is sent or
        received an indication will be given to the monitoring module, which
        can update its statistics. The last important feature of the messaging
        layer is mechanisms for the traversal of NAT boxes.</t>

        <t>IMPLICATIONS ON STANDARDIZATION:<list style="symbols">
            <t>The PPSP protocol should allow to negotiate or select different
            transport protocols, e.g., between plain TCP and LEDBAT.</t>

            <t>The PPSP protocol or framework should support peers in NAT
            traversal.</t>
          </list></t>
      </section>
    </section>

    <section anchor="summary"
             title="Summary of Considerations for PPSP Protocol Design">
      <t>Future versions of this draft will summarize the key design
      considerations for a PPSP protocol in this section.</t>
    </section>

    <section anchor="conclusions" title="Conclusions">
      <t>Video Streaming applications exploiting the P2P communication
      paradigm are a commercial reality, but their overall architecture is
      still biased by file-sharing applications and they operate without any
      coordination with the IP network, often resulting in poor, even wasteful
      resource usage. This will prevent them to support High Quality TV in the
      future, or to make the transition to High Definition, which will require
      several Mbit/s per peer.</t>

      <t>This document presented the NAPA-WINE architecture for a P2P-TV
      system, which has been developed with the goal of efficiency and
      cooperation between the application and both the network operators and
      the content providers. Prototypes of the peers and system are already
      running on the Internet and are demonstrated at major venues <xref
      target="refs.demo-iptcomm2010"></xref> <xref
      target="refs.demo-p2p2010"></xref>.</t>

      <t>The overlay topology management and the chunk scheduling of
      information have been identified as important features for the
      application to be network-friendly. The first function enables building
      efficient and rational overlay topologies that are correctly mapped on
      top of the transport network structure (e.g., considering minimal number
      of hops between neighbors, locality w.r.t. Autonomous Systems, etc.).
      The second function guarantees that the network capacity is exploited
      without waste (e.g., by minimizing retransmissions and pursuing an
      efficient distribution of chunks, etc.).</t>

      <t>Based on our experience in designing and implementing a P2P live
      streaming system, we highlighted key implications for standardization.
      We believe that these key design considerations we derived based on our
      architecture will be important input to the IETF PPSP working group for
      standardizing a P2P live streaming protocol.</t>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>Security considerations will be detailed in future versions of this
      draft.</t>
    </section>

    <section anchor="ack" title="Acknowledgements">
      <t>The authors would like to thank all the people participating in
      NAPA-WINE and contributing to the project success with their work and
      research.</t>

      <t>Jan Seedorf is partially supported by the NAPA-WINE project
      (Network-Aware P2P-TV Application over Wise Networks,
      http://www.napa-wine.org), a research project supported by the European
      Commission under its 7th Framework Program (contract no. 214412). The
      views and conclusions contained herein are those of the authors and
      should not be interpreted as necessarily representing the official
      policies or endorsements, either expressed or implied, of the NAPA-WINE
      project or the European Commission.</t>

      <t>Martin Stiemerling is partially supported by the COAST project
      (COntent Aware Searching, retrieval and sTreaming,
      http://www.coast-fp7.eu), a research project supported by the European
      Commission under its 7th Framework Program (contract no. 248036). The
      views and conclusions contained herein are those of the authors and
      should not be interpreted as necessarily representing the official
      policies or endorsements, either expressed or implied, of the COAST
      project or the European Commission.</t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      <reference anchor="refs.napa-architecture">
        <front>
          <title>Architecture of a Network-Aware P2P-TV Application: the
          NAPA-WINE Approach</title>

          <author fullname="R. Birke" initials="R." surname="Birke">
            <organization />
          </author>

          <author fullname="E. Leonardi" initials="E." surname="Leonardi">
            <organization />
          </author>

          <author fullname="M. Mellia" initials="M." surname="Mellia">
            <organization />
          </author>

          <author fullname="A. Bakay" initials="A." surname="Bakay">
            <organization />
          </author>

          <author fullname="T. Szemethy" initials="T." surname="Szemethy">
            <organization />
          </author>

          <author fullname="C. Kiraly" initials="C." surname="Kiraly">
            <organization />
          </author>

          <author fullname="R. Lo Cigno" initials="R." surname="Lo Cigno">
            <organization />
          </author>

          <author fullname="F. Mathieu" initials="F." surname="Mathieu">
            <organization />
          </author>

          <author fullname="L. Muscariello" initials="L."
                  surname="Muscariello">
            <organization />
          </author>

          <author fullname="S. Niccolini" initials="S." surname="Niccolini">
            <organization />
          </author>

          <author fullname="J. Seedorf" initials="J." surname="Seedorf">
            <organization />
          </author>

          <author fullname="G. Tropea" initials="G." surname="Tropea">
            <organization />
          </author>
        </front>

        <seriesInfo name="" value="IEEE Communication Magazine, to appear" />
      </reference>

      <reference anchor="refs.opt-scheduling">
        <front>
          <title>On the Optimal Scheduling of Streaming Applications in
          Unstructured Meshes</title>

          <author fullname="L. Abeni" initials="L." surname="Abeni">
            <organization />
          </author>

          <author fullname="C. Kiraly" initials="C." surname="Kiraly">
            <organization />
          </author>

          <author fullname="R. Lo Cigno" initials="R." surname="Lo Cigno">
            <organization />
          </author>
        </front>

        <seriesInfo name="" value="IFIP Networking 2009" />
      </reference>

      <reference anchor="refs.demo-iptcomm2010">
        <front>
          <title>Prototypical Implementation of ALTO Client and ALTO Server
          and Integration into a P2P Live Streaming Software</title>

          <author fullname="J. Seedorf" initials="J." surname="Seedorf">
            <organization />
          </author>

          <author fullname="S. Niccolini" initials="S." surname="Niccolini">
            <organization />
          </author>

          <author fullname="R. Lo Cigno" initials="R." surname="Lo Cigno">
            <organization />
          </author>

          <author fullname="C. Kiraly" initials="C." surname="Kiraly">
            <organization />
          </author>
        </front>

        <seriesInfo name="" value="Demonstration, IPTComm 2010" />
      </reference>

      <reference anchor="refs.demo-p2p2010">
        <front>
          <title>Network Friendly P2P-TV: The Napa-Wine Approach</title>

          <author fullname="L. Abeni" initials="L" surname="Abeni">
            <organization />
          </author>

          <author fullname="A. Bakay" initials="A." surname="Bakay">
            <organization />
          </author>

          <author fullname="M. Biazzini" initials="M." surname="Biazzini">
            <organization />
          </author>

          <author fullname="R. Birke" initials="R." surname="Birke">
            <organization />
          </author>

          <author fullname="E. Leonardi" initials="E." surname="Leonardi">
            <organization />
          </author>

          <author fullname="R. Lo Cigno" initials="R." surname="Lo Cigno">
            <organization />
          </author>

          <author fullname="C. Kiraly" initials="C." surname="Kiraly">
            <organization />
          </author>

          <author fullname="M. Mellia" initials="M." surname="Mellia">
            <organization />
          </author>

          <author fullname="S. Niccolini" initials="S." surname="Niccolini">
            <organization />
          </author>

          <author fullname="J. Seedorf" initials="J." surname="Seedorf">
            <organization />
          </author>

          <author fullname="T. Szemethy" initials="T." surname="Szemethy">
            <organization />
          </author>

          <author fullname="G. Tropea" initials="G." surname="Tropea">
            <organization />
          </author>
        </front>

        <seriesInfo name=""
                    value="Live Demonstration and Extended Abstract, IEEE P2P 2010" />
      </reference>

      <reference anchor="refs.dywis">
        <front>
          <title>Distributed Self Fault-Diagnosis for SIP Multimedia
          Applications</title>

          <author fullname="X. Miao" initials="X." surname="Miao">
            <organization />
          </author>

          <author fullname="Henning Schulzrinne" initials="H"
                  surname="Schulzrinne">
            <organization />
          </author>

          <author fullname="Vishal Kumar Singh" initials="V.K."
                  surname="Singh">
            <organization />
          </author>

          <author fullname="Qianni Deng" initials="Q." surname="Deng">
            <organization />
          </author>
        </front>

        <seriesInfo name=""
                    value="Springer Real-Time Mobile Multimedia Services, 2007" />
      </reference>
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 10:25:30