Since the server stores the
entire video, it can always be a patch server as long as it has sufficient
bandwidth.
A peer client that arrives earlier and has sufficient bandwidth
can also be a patch server.
Fig. 2 illustrates an example.
Assume
the session starts at time 0. At time , client 1 arrives. It
joins the base tree and receives the base stream starting at point
.
We assume that client 1 obtains the patch stream from the
server directly. At time
, client 2 arrives. Client 2 joins the
base tree and receives the base stream from the base tree.
Since client 1 has already cached part of the patch required by client
2 at time
(the shaded part is the content already cached in client
1); and client 1 continues to receive its own patch and base stream,
it can serve as the patch server for client 2.
The patch server selection process for a new client is identical to a new client's base tree joining process. In fact, all existing clients in a session arrive earlier than the new client, and thus can be its patch server if there is sufficient bandwidth. In Section 5, however, we will consider patch recovery, where the arrival time of a candidate patch server needs to be compared with the arrival time of the requesting client.
![]() |