CollectCast : A Tomography-Based Network Service for Peer-to-Peer Streaming

We propose a new network service (called CollectCast) suitable for highly dynamic environments such as peer-to-peer (P2P) systems. CollectCast operates entirely at the application level. Nonetheless, it does try to infer and exploit the properties of the underlying network. CollectCast has a pattern of “multiple senders and one receiver”. CollectCast reflects the P2P philosophy of dynamically and opportunistically collecting the limited capacity of peers (in this case suppliers) to perform a task (streaming) traditionally performed by a dedicated entity (a media server). The major functions of CollectCast are: (1) it infers and leverages the underlying network topology and performance information for the selection of suppliers. This is based on a novel application of several network tomography techniques; (2) it selects the “best” supplying peers that will likely yield the best quality for the streaming session; (3) it adaptively assigns rate and data to suppliers based on the capacity of each supplier and the current network conditions; and (4) it monitors the status of peers and connections and transparently switches suppliers so that the full quality is maintained throughout the session. CollectCast is to be layered on top of a P2P substrate. A session in CollectCast is established as follows. First, CollectCast issues a lookup request to the P2P substrate, which returns a set of candidate peers who have the requested movie. CollectCast then constructs and annotates the topology connecting the candidate peers with the receiver. The topology is annotated with segment-wise loss rates and available bandwidth. Using the annotated topology, the suppliers selection algorithm determines the best active set from the candidate set. The rest of the candidates are kept in a standby set, from which replacement peers will substitute failed or degraded peers. Once the active set is determined, the receiver establishes parallel connections with all peers in the active set. Two connections are established with each peer: a UDP connection for sending the stream packets, and a TCP connection for sending control packets. The receiver assigns a sending rate to each of the active supplier based on the supplier’s offered rate and the goodness of the path from that supplier to the receiver. The streaming session continues as far as there is no need to “switch” the active set. A switch is needed if a peer fails or the network path becomes congested. At which time, the topology is updated with new values measured passively during streaming and a new active set is selected and notified. We briefly describe the selection problem and refer to [2] for the details of CollectCast and other issues such as the overhead imposed and the TCP-friendliness of the approach. The selection algorithm is given the annotated topology T (see Figure 1) that interconnects the candidate peers and the receiving peer. It then finds the set of active peers P ⊆ P that maximizes the expected aggregate rate at the receiver, provided that the receiver inbound bandwidth is not exceeded. The suppliers selection problem can be stated as: find P that