next up previous
Next: New client admission Up: P2Cast: P2P Patching Scheme Previous: P2Cast: P2P Patching Scheme

Overview of P2Cast

P2Cast is an architecture that uses a peer-to-peer approach to cooperatively stream video using patching, while relying only on unicast connections among peers. The key idea of P2Cast is to have each client act as a server while it receives the video. The un-scalability of traditional client-server unicast VoD service lies in the fact that the server is the only ``contributor'', and can thus become ``swamped'' by a large number of clients passively requesting the service. In the client-server service model, a client sets up a direct connection with the server to receive the video. An amount of bandwidth equal to the playback rate is consumed along the route. As the number of requests increases, the bandwidth at the server and in the network is consumed and the incoming requests must eventually be rejected.

Figure 1: A snapshot of P2Cast at time 40. Clients in a session form an application-level multicast tree together with the server. All clients in session 3 have finished patch retrieval; while 3 clients in session 4 are still receiving the patch stream from their parent patch servers.
\begin{figure}
\centering
\epsfig{file=figures/p2cast-overview.eps, height=1.9in, width=3in}
\end{figure}

In contrast, P2Cast clients not only receive the requested stream, but also contribute to the overall VoD service by forwarding the stream to other clients and caching and serving the initial part of the stream. Associated with P2Cast is a threshold, $T$. The clients that arrive within the threshold constitute a session. Together with the server, clients belonging to the same session form an application-level multicast tree, denoted as the base tree. The server streams the entire video over the base tree. We denote this complete video stream as the base stream. When a new client joins the session, it joins the base tree and retrieves the base stream from it. Meanwhile, the new client must obtain a ``patch'' - the initial part of the video from the start of the session to the time it joined the base tree. As we will see, it obtains the patch from the server or another client. P2Cast clients behave like peers in a P2P network, and provide the following two functions:

We use an example to illustrate P2Cast. Fig. 1 illustrates a snapshot of P2Cast at time 40. It shows two sessions, session 3 and session 4, starting at time 20.0 and 31.0, respectively, with the threshold equal to 10. We use circles to represent clients with the client's arrival time marked beside the circle. A solid line with an arrow is used to represent the parent-child relationship in the base tree; and a dashed line with an arrow is used to represent the patch server-client relationship. The server and the clients in a session form an application-level multicast tree to deliver the base stream. At time 40, all clients in session 3 have finished the patch retrieval; while three clients in session 4 are still in the process of receiving the patch stream. Note that clients belonging to different sessions are independent of each other. In Section 5 we will use this observation to improve the clients' robustness against the disruptions caused by the clients' early departure.

We describe below a new client admission process, the base tree construction/joining process, the patch server selection process, and the failure recovery process, respectively.


next up previous
Next: New client admission Up: P2Cast: P2P Patching Scheme Previous: P2Cast: P2P Patching Scheme
Yang Guo 2003-03-27