Internet DRAFT - draft-zhang-ppsp-usage

draft-zhang-ppsp-usage



PPSP                                                       Hongke Zhang
Internet Draft                                                 Fei song
Intended status: Informational                                    Di Wu
Expires: September 4 2018                                      Mi Zhang
                                                          Tianming Zhao
                                            Beijing Jiaotong University
                                                           March 2 2018



            Usage of the Peer-to-Peer Streaming Protocol (PPSP)
                       draft-zhang-ppsp-usage-08.txt


Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF). Note that other groups may also distribute
   working documents as Internet-Drafts. The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other documents
   at any time.  It is inappropriate to use Internet-Drafts as
   reference material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 4, 2018.

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with
   respect to this document. Code Components extracted from this
   document must include Simplified BSD License text as described in
   Section 4.e of the Trust Legal Provisions and are provided without
   warranty as described in the Simplified BSD License.






Zhang, et al.         Expires September 2, 2018               [Page 1]

Internet-Draft              Usage of PPSP                   March 2018


Abstract

   This document concerns several significant operation issues of Peer-
   to-Peer Streaming Protocol (PPSP) usage, focusing on two basic modes:
   Leech mode and Seed mode. The related parameters setting for default
   PPSP scenario reference to tracker protocol and peer protocol
   respectively. Besides, the limitations and gaps of current PPSP
   system are identified at with the standpoint of satisfying PPSP
   requirements.

Table of Contents


   1. Introduction  ................................................ 2
   2. Tetminology  ................................................. 3
   3. Operation of PPSP System ..................................... 3
      3.1. Operation Overview ...................................... 3
      3.2. Operation Illustration .................................. 4
   4. Suggestions for parameters Setting in PPSP System ............ 8
      4.1. Parameters Setting in Tracker protocol .................. 9
      4.2. Parameters Setting in Peer protocol ..................... 9
   5. Limitations and Gaps Analysis ................................ 9
   6. Security Consideration ...................................... 10
   7. IANA Considerations  ........................................ 10
   8. References  ................................................. 10
      8.1. Normative References ................................... 10
      8.2. Informative References ................................. 10
   9. Acknowledgements  ........................................... 10

1. Introduction

   The Peer-to-Peer Streaming Protocol (PPSP) supports two kinds of
   streaming which include live and Video on Demand (VoD). It is
   constitutive of two basic protocols: the PPSP peer protocol [RFC7574]
   and the PPSP tracker protocol [I-D.ietf-ppsp-base-tracker-protocol].
   Both of them are proposed from individual perspective based on PPSP
   structure. However, it's unnecessary for end user to understand the
   whole procedure works and the parameters setting when combining
   above two mentioned protocol together in application. What's more,
   the potential limitations of current protocol should also be learnt
   and known to the community.

   The tracker protocol which is proposed in a request/response model
   handles the initial and periodic exchange of meta-information
   between trackers and peers. The peer protocol is supposed to run as
   a gossip like protocol controls the advertising and exchange of



Zhang, et al.         Expires September 2, 2018               [Page 2]

Internet-Draft              Usage of PPSP                   March 2018


   media data directly among the peers. It currently runs on the top of
   UDP using LEDBAT for congestion control.

   This document includes several important operation issues in PPSP
   usage, considering two basic modes: Leech mode and Seed mode. In
   addition, the related parameters setting for default PPSP scenario
   are given by the tracker protocol and peer protocol respectively.
   The limitations and gaps of current PPSP system are identified by
   the standpoint of satisfying PPSP requirements.

2. Tetminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC-2119 [RFC2119].

   The document makes extensive use of the terminology and definitions
   inherited from Concepts and Terminology for PPSP peer protocol
   [RFC7574] and PPSP-TP/1.0 [I-D.ietf-ppsp-base-tracker-protocol] in
   this document.

3. Operation of PPSP System

   The operation process of PPSP system in this document focuses on how
   to associate multiple entities working together, such as peers,
   trackers, portals, etc., and achieve corresponding functions, which
   is different with previous protocol-related drafts. The following
   section will provide both macroscopic overview and detailed steps.

3.1. Operation Overview

   The PPSP supports two kinds of modes including real-time and VoD
   streaming modes which involve two protocols: the PPSP tracker
   protocol and the PPSP peer protocol.

   The tracker is defined as a directory service that maintains a list
   of active peers participating in a specific audio/video channel or
   in the distribution of a streaming file. It is a logical entity,
   which can be centralized or distributed, and in this document, it is
   treated as a single logical entity.

   The peer refers to a participant in a P2P streaming system that both
   receives streaming content and caches streaming content to other
   participants. There are two different modes (Leech mode and Seed



Zhang, et al.         Expires September 2, 2018               [Page 3]

Internet-Draft              Usage of PPSP                   March 2018


   mode) in PPSP based on the properties of peers. It will be detailed
   in Section 3.2.

   The basic communication unit of PPSP is message. In peer
   protocol, multiple messages are typically multiplexed into a
   single datagram in transmission process. And in the PPSP system,
   there are several rules MUST be obeyed.
   1. In the same swarm, the same chunk addressing method MUST be
   used to ensure that peers can communicate with each other
   smoothly.
   2. The portal needs to pick an appropriate tracker supporting
   the same encoding type as the peer. Additionally, the VoD
   streaming and live should be distinguished by the portal and
   then the portal should select the appropriate tracker for peers.
   
3.2. Operation Illustration

   Figure 1 illustrates the normal operation process of the PPSP system.
   The related entities and elements are described as follows:

   Tracker: A logical entity that provides the peer list to peers.

   Portal: A logical entity that provides the Media Presentation
   Description (MPD) files to peers.

   Peer A: A peer that has content resource and wants to share it with
   others. (PeerMode is of Seed)

   Peer B: A peer that wants to join swarm x to obtain the content
   provided by Peer A. (PeerMode is of Leech)

   Peer C (Peer D): A peer that obtain the content provided by Peer A
   through joining swarm x. And it has finished part of the content
   transmission. (PeerMode is of Leech)

   Assume that Peer A (Seeder) attends to share a static/dynamic video
   content with other peers. Firstly, Peer A MUST send a CONNECT
   message to a tracker to start/join swarm x.

   After a correct CONNECT message is received, the tracker responses
   to Peer A with an OK message.

   In order to keep in swarm x, Peer A should send the STAT_REPORT
   message to the tracker periodically. Normally, it is recommended 3


Zhang, et al.         Expires September 2, 2018               [Page 4]

Internet-Draft              Usage of PPSP                   March 2018


   minutes for setting the value of Track_timeout (More details
   described in section 4). An OK message should be generated and sent
   back to Peer A whenever STAT_REPORT message reaches the tracker.

   Assume that Peer B (Leecher) attends to watch this video content
   provided by Peer A. Hence, Peer B need connect and login in a
   service Portal with its peer ID to get the MPD file, includes the IP
   address(es) of tracker(s) and swarm x's ID of the selected swarm x.

   Then Peer B starts to communicate with the tracker and try to join
   the swarm x by sending a CONNECT message to the tracker. If the
   previous check was correct, the tracker is triggered to send
   response back to Peer B with an OK+PeerList message. Peer B is
   offered a proper list including peers' name and IP addresses (only
   Peer A and its address here) by the mentioned message.

   Till now, Peer B realizes which peer (Peer A here) has already been
   in the swarm x. And then it sends a datagram with HANDSHAKE message
   to Peer A (Due to there is only a seeder in the swarm x). A channel
   ID and a sequence of protocol options are the payload of HANDSHAKE
   message.

   Then Peer A determines whether to communicate with Peer B based on
   considering the status and current network capacities. Once Peer A
   decides to make response, it returns a datagram wit HANDSHAKE+HAVE
   message to Peer B. (HS is the abbreviation of HANDSHAKE in Figure 1)

   Peer B updates PeerList as OPTIONAL through another way after
   REQ message to Peer A). The message will help Peer B to discover
   other new peers, which could not be provided by the tracker.

   Peer A returns a datagram with PEX_RES message. Assume it including 
   the information of Peer C and Peer D.

   As mentioned before, if Peer B attends to initial a new conversation
   with Peer C or D, it MUST send a datagram including HANDSHAKE
   message.

   Similar with Peer A, Peer C or D needs to decide whether it will
   reply Peer B or not. If Peer C is willing to contact with Peer B, it
   responds a datagram containing HANDSHAKE+HAVE message. If Peer D
   attends to deny Peer B, it MUST reply a datagram including the
   HANDSHAKE+HAVE+CHOKE message.

   Peer B checks the messages and obtains which is available for
   communication once receiving previous datagram. Then datagrams


Zhang, et al.         Expires September 2, 2018               [Page 5]

Internet-Draft              Usage of PPSP                   March 2018


   containing the REQUEST message to Peer A and C asking for chunks is
   send by Peer B.

   After Peer A or C receives the Peer B's request, they SHOULD
   send the datagrams to Peer B. The content of datagram depends
   on the video type: INTEGRITY+DATA message for static video and
   SIGNED_INTEGRITY+DATA message for dynamic video.
   +-------+    +------+    +------+    +------+    +------+    +------+
   |Tracker|    |Portal|    |Peer A|    |Peer B|    |Peer C|    |Peer D|
   +-------+    +------+    +------+    +------+    +------+    +------+
      |         |             |            |            |          |
      |<-CONNECT(Join Swarm x)|            |            |          | 
      |--------OK------------>|            |            |          |
      |<----STAT_REPORT-------|            |            |          |
      |---------OK----------->|            |            |          |
      :                       :            |            |          |
      |         |<------Select Swarm x-----|            |          |
      |         |---------OK+MPD(x)------->|            |          |
      |<-------CONNECT(Join Swarm x)-------|            |          |
      |------------OK+PeerList------------>|            |          |
      :                                  :              |          |
      |                       |<-HANDSHAKE-|            |          |
      |                       |--HS+HAVE-->|            |          |
      |                       |<-PEX_REQ---|            |          |
      |                       |--PEX_RES-->|            |          |
      |                       |            |-HANDSHAKE->|          |
      |                       |            |-------HANDSHAKE------>|
      |<-----STAT_REPORT------|            |            |          |
      |----------OK---------->|            |<-HS+HAVE---|          |
      :                       :            |<----HS+HAVE+CHOKE-----|
      |                       |<--REQUEST--|--REQUEST-->|          |
      |                       |---DATA---->|<----DATA---|          |
      |                       |<--ACK,HAVE-|-ACK,HAVE-->|          |
      |                       :            :            :          |
      |<---------STAT_REPORT---------------|                       |
      |-------------OK-------------------->|<--------UNCHOKE-------|
      |                       |            |---------REQUEST------>|
      :                       |            :<---------DATA---------|
      |                       |            |---------ACK,HAVE----->|
      :                       |<---HAVE----|----HAVE--->|          |
      |                       |            |<--REQUEST--|          |
      |                       |            |<--------REQUEST-------|
      |                       |            |----DATA--->|          |
      |                       |            |----------DATA-------->|
      |                       :            :            :          :
      |                       |<-KEEPALIVE-|-KEEPALIVE->|          |
      |                       |            |--------KEEPALIVE----->|
      |<-------------------STAT_REPORT------------------|          |
      |------------------------OK---------------------->|          |
      |                       |<-HANDSHAKE-|-HANDSHAKE->|          |
      |                       |            |----------HANDSHAK---->|
      |<---CONNECT/FIND(Leave Swarm x)-----|                       |
      |<---CONNECT/FIND(Join Swarm y,z)----|                       |
                           Procedures of PPSP System

   According to the corresponding data received, Peer B replies a
   datagram Containing an ACK message to Peer A and C. Peer B
   SHOULD also send a datagram containing HAVE message to all
   other peers in the swarm x for announcement purpose. The timing
   of sending HAVE message depends on Peer B.
   In order to demonstrate all the functionalities, Peer D is
   supposed to release previous rejection for Peer B by sending an
   UNCHOKE message.
   Then, Peer B can send a new REQUEST message to Peer D.
   Peer D replies with the actually data message. Peer B MAY send
   HAVE message to other peers in swarm x after the content
   integrality is verified.
   Peer C and D can also require the Peer B chunks by sending
   REQUEST message. Whether the corresponding chunks could be sent
   or not depends on Peer B.

   If the above peers attend to keep in the swarm, they need to
   send the STAT_REPORT message to the tracker while send the
   KEEP_ALIVE message to other peers periodically.
   After all the necessary content is received successfully, Peer
   B can close the connection by sending a HANDSHAKE message to
   all peers in swarm x. An all 0-zeros channel ID MUST be
   embedded in HANDSHAKE message. Meanwhile, Peer B SHOULD send
   STAT_REPORT or CONNECT message to log out and eliminate its
   state in tracker.





Zhang, et al.         Expires September 2, 2018               [Page 6]

Internet-Draft              Usage of PPSP                   March 2018


   Peer B MAY employ CONNECT message to join a new swarm, such as
   swarm y or z in Figure 1. Similar instruction mentioned before
   can be capitalized on data exchanging.
   Useful Message List:
   CONNECT message
   This message is used to register/leave a PPSP system and
   request swarm actions with tracker.
   FIND message
   This message is used to request a new peer list to tracker
   whenever needed. It is also used when a peer attends to leave
   the PPSP system with tracker.
   STAT_REPORT message
   This message is used to send status and statistic data to
   tracker, in order to facilitate the tracker service. This
   message MUST be periodically sent while the peer is active.
   OK message
   This message is used for tracker to convey that has
   successfully received the last message.
   OK+PeerList message
   This message is used for tracker to respond proper PeerList to
   peer.
   HANDSHAKE message
   This message MUST be sent as the first message in the first
   datagram between peers, in order to start communication between
   peers.
   HAVE message
   This message is used to convey which chunks a peer has
   available for download.
   DATA message
   This message is used to transfer chunks of content.
   ACK message


Zhang, et al.         Expires September 2, 2018               [Page 7]

Internet-Draft              Usage of PPSP                   March 2018


   This message is used to acknowledge received chunks after
   receiving a DATA message.
   REQUEST message
   This message is used to request one or more chunks from another
   peer.
   INTEGRITY message
   This message carries information required by the receiver to
   verify the integrity of a chunk. It is usually used in static
   content.
   SIGNED_INTEGRITY message
   This message is used to verify chunks in live streaming.
   CHOKE message
   The message is used to inform another peer that it will no
   longer respond to any REQUEST massages from that peer.
   UNCHOKE message
   This message is used to inform another peer that it will
   respond to new REQUEST messages from that peer again.
   PEX_REQ & PEX_RES messages
   These message allows peers to exchange the transport addresses
   of the peers they are currently interacting with, thereby
   reducing the need to contact a central tracker.
   KEEPALIVE message
   This message SHOULD be sent periodically to each peer it wants
   to interact with in the future.
   
4. Suggestions for parameters Setting in PPSP System

   In the procedure of constructing the PPSP system, parameters setting
   is absolutely crucial. This section will discuss related issues in
   tracker protocol and peer protocol. The default values are provided
   as references. The practical setting can be adjusted according to
   different scenarios.





Zhang, et al.         Expires September 2, 2018               [Page 8]

Internet-Draft              Usage of PPSP                   March 2018


4.1. Parameters Setting in Tracker protocol

   Parameters, their default values and description in the PPSP tracker
   protocol is shown in Table 1.
   +--------------------+------------+------------------------------+
   | Name               |  Default   |           Description        |
   +--------------------+------------+------------------------------+
   |    Init_timeout    | 30 seconds |  Maximum value of the "init  |
   |                    |            | timer" used in the "per peer |
   |                    |            | transaction state machine"   |
   |   Track_timeout    |  3 minutes | Maximum value of the "track  |
   |                    |            | timer" used in the "per peer |
   |                    |            | transaction state machine"   |
   | STAT_REPORT Period |  3 minutes | Maximum period of STAT_REPORT|
   |                    |            | message                      |
   |   Retry_timeout    | 3 minutes  | Maximum waiting time until a |
   |                    |            |peer initiates a retry process|
   | ConcurrentLinks    |   NORMAL   |Concurrent connectivity level |
   |                    |            |of peers, HIGH, LOW or NORMAL |
   |    OnlineTime      |   NORMAL   | Availability or online       |
   |                    |            | duration of peers, HIGH or   |
   |                    |            | NORMAL                       |
   |   UploadBWlevel    |   NORMAL   | Upload bandwidth capability  |
   |                    |            | of peers, HIGH OR NORMAL     |
   +--------------------+------------+------------------------------+
                    Table 1 PPSP Tracker Protocol Defaults

4.2. Parameters Setting in Peer protocol

   For the PPSP peer protocol having a detailed description about
   parameters, this section only assume it as a reference to summarize
   Table 2, which reveals some of the parameters default values and
   descriptions. Some parameters should be recommended as a fixed value
   while others should alter according to users' demands or network
   conditions.
   +---------------------+-------------+-----------------------------+
   |         Name        |   Default   |          Description        |
   +---------------------+-------------+-----------------------------+
   |      Chunk Size     |     var     | (Maximum) Size of a chunk   |
   |                     | 1024 bytes  |                             |
   |                     | recommended |                             |
   |  Static Content     | 1 (Merkle   | Methods for protecting the  |
   | Integrity Protection| Hash Tree)  | integrity of static content |
   |       Method        |             |                             |
   |    Live Content     | 3 (Unified  | Methods for protecting the  |
   | Integrity Protection| Merkle Tree | integrity of static content |
   |       Method        |             | including "sign all" and    |
   |                     |             | "Unified Merkle Tree"       |
   |   Merkle Hash Tree  |  0 (SHA1)   | Hash function used for the  |
   |       Function      |             | Merkle Hash Tree            |
   |    Live Signature   | 13 (ECDSAP2 | Must be defined for live    |
   |       Algorithm     |  56SHA256   | streaming                   |
   |   Chunk Addressing  | 2 (32-bit   | Methods of chunk addressing |
   |         Method      |    chunk    |                             |
   |                     |    ranges)  |                             |
   | Live Discard Window |     var     | Must be defined for live    |
   |                     |             | streaming                   |
   | NCHUNKS_PER_SIG     |     var     | Must be defined in the      |
   |                     |             | Signed Munro Hash           |
   | Dead peer detection | No reply in | Guideline for declaring a   |
   |                     | 3 minutes + | peer is dead                |
   |                     | 3 datagrams |                             |
   | KEEPALIVE Period    | 2 minutes   | Maximum period for a peer   |
   |                     |             | to send KEEPALIVE datagram  |
   |                     |             | to other peers              |
   +---------------------+-------------+-----------------------------+
                    Table 2 PPSP Peer Protocol Defaults

5. Limitations and Gaps Analysis

   This section aims to identify the limitations and gaps of the
   current PPSP system from the standpoint of satisfying PPSP
   requirements.

   1. One of the PPSP target is extending current Peer-to-Peer (P2P)
      system in mobile and wireless environments [RFC6972]. However,
      the related information such as the packet loss rate and battery
      status is not included in the message used in PPSP system, which
      is essential for wireless and mobile environments.

   2. The PPSP system provides two ways to acquire the PeerList. Peer
      can obtain the PeerList from the tracker or they can get it
      through the PEX_REQ and PEX_RES messages. It is not definite to
      update the local PeerList efficiently, when both methods are
      available

   3. It not supported by the STAT REPORT message of tracker protocol
      to exchange the content data information between an active peer
      and a tracker. Thus, the relevant tracker could only employ
      PeerMode to choose the PeerList and return the new peer, whenever
      a new peer wants to join a swarm. In the cases which there is
      only one seeding peer while other peers that already finished
      part of the content transmission and are willing to share with
      others. Therefore, the tracker could not provide the high quality
      PeerList but just a seeder. Thus, the peer could only update
      PeerList relying on the PEX-REQ message.



Zhang, et al.         Expires September 2, 2018               [Page 9]

Internet-Draft              Usage of PPSP                   March 2018


   4. In some cases, the user may want to adjust the video definition
      based on the bandwidth (or user demand) automatically (or
      manually). Or the user may watch videos and play online games at
      the same time, and he/she doesn't want the videos occupy too much
      of the bandwidths. This will need adaptive multi-rate control for
      both users and ISPs. It is better to add some controllable limits
      in the protocol, rather than limiting the download links through
      ISPs or government

   5. PT (private tracker) has become popular in recent years for
      safety and manageability reasons. It is uncertain whether this
      should be taken into consideration in PPSP. If the answer is
      positive, the tracker protocol should make some changes in
      finding & connecting private tracker and add data traffic
      statistics part.

6. Security Consideration

   This document does not contain any security considerations.

7. IANA Considerations

   There are presently no IANA considerations with this document.

8. References

8.1. Normative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
   Requirement Levels", BCP 14, RFC 2119, March 1997.

8.2. Informative References

   [RFC7574] Bakker, A., Petrocco, R., and V. Grishchenko, "Peer-to-
   Peer Streaming Peer protocol (PPSPP)", RFC 7574, October 2015.

   [I-D.ietf-ppsp-base-tracker-protocol] Cruz, R., Nunes, M., Gu, Y.,
   Xia, J., and J. Taveira, "PPSP Tracker Protocol-Base Protocol (PPSP-
   TP/1.0)", draft-ietf-ppsp-base-tracker-protocol-12 (work in
   progress), January 2016.

   [RFC6972] Zhang, Y. and N. Zong, "Problem Statement and Requirements
   of the Peer-to-Peer Streaming Protocol (PPSP)", RFC 6972, July 2013.

9. Acknowledgements

   This document was prepared using 2-Word-v2.0.template.dot.


Zhang, et al.         Expires September 2, 2018              [Page 10]

Internet-Draft              Usage of PPSP                   March 2018


Authors' Addresses

   Hongke Zhang
   Beijing Jiaotong University (BJTU)
   Beijing, 100044, P.R.China

   Email: hkzhang@bjtu.edu.cn


   Fei Song
   Beijing Jiaotong University (BJTU)
   Beijing, 100044, P.R.China

   Email: fsong@bjtu.edu.cn


   Di Wu
   Beijing Jiaotong University (BJTU)
   Beijing, 100044, P.R.China

   Email: diwu2@seas.upenn.edu


   Mi Zhang
   Beijing Jiaotong University (BJTU)
   Beijing, 100044, P.R.China

   Email: 13120174@bjtu.edu.cn


   Tianming Zhao
   Beijing Jiaotong University (BJTU)
   Beijing, 100044, P.R.China

   Email: 14125070@bjtu.edu.cn













Zhang, et al.         Expires September 2, 2018              [Page 11]