Survey and Problem Statement of P2P Streaming
System Architecture and Working Flows of PPLive
The PPLive software, running in user computers (peers), has two major communication protocols: (i) a registration and peer discovery protocol; and (ii) a P2P chunk distribution protocol. Figure 1 depicts an overview of the registration and peer discovery protocol [5]. When an end-user starts the PPLive software, it joins the PPLive network and becomes a PPLive peer node. The first action (step 1) is an exchange with the PPLiveWeb site to retrieve a list of channels distributed by PPLive. Once the user selects a channel, the peer node registers with the bootstrap root servers (trackers) and requests a list of peers that are currently watching the channel (step 2). The peer node then communicates with the peers in the list to obtain additional lists (step 3), which it aggregates with its existing list. In this manner, each peer maintains a list of other peers watching the channel.
At the video-on-demand (VoD) instant, because different peers watch different parts of the channel, a peer buffers up to a few minutes worth of chunks within a sliding window to share with each other. Some of these chunks may be chunks that have been recently played; the remaining chunks are chunks scheduled to be played in the next few minutes. Peers upload chunks to each other. To this end, peers send to each other “buffer map” messages; a buffer map message indicates which chunks a peer currently has buffered and can share. The buffer map message includes the offset (the ID of the first chunk), the length of the buffer map, and a string of zeroes and ones indicating which chunks are available (starting with the chunk designated by the offset).
Figure 2 illustrates a buffer map [5]. A peer can request, over a TCP connection, a buffer map from any peer in its current list of peers. After a peer A receives a buffer map from peer B, peer A can request one or more chunks that peer B has advertised in the buffer map. A peer may download chunks from tens of other peers simultaneously. PPLive continually searches for new partners from which it can download chunks.
PPLive works in conjunction with a media player (either Windows Media Player or RealPlayer). Figure 3 illustrates the interaction between the PPLive peer software and the media player [5]. The PPLive engine, once having buffered a certain amount of contiguous chunks, launches the media player. The media player then makes a request to the PPLive engine, and the PPLive engine responds by sending video to the media player. The media player buffers the received video; when it has buffered a sufficient amount of video content, it begins to render the video.
Download file here