PROMISE: Peer to Peer Media Streaming Using CollectCast

Mohamed Hafeeda, Ahsan Habib, et. al.

Summary and Class Discussion (7th February 2004)

CPSC 538A - Topics in Computer Systems

Presented By: Abhishek Gupta {agupta@cs.ubc.ca}

 

 

A) Paper Summary

 

Peer to Peer systems have gained tremendous importance in the past. These systems consist of independent nodes which communicate directly for sharing and exchange of data as well as other resources such as CPU and storage. This paper presents a peer-to-peer multimedia distribution system, PROMISE, which operates under real time constraints and dynamically adapts to network bandwidth and varying peer conditions.

 

Some of the unique characteristics of Promise are its support for peer lookup, peer-based aggregate streaming and dynamic adaptations to network and peer conditions. PROMISE is based upon an application level peer-to-peer service called CollectCast which has three main features: a) Inferring and leveraging the underlying network topology and performance characteristics for sender selection, b) monitoring the status of peers and connections and reacting to peer/connection failure or degradation of performance and c) switching active and standby senders to maintain collective network performance. In short, CollectCast reflects the peer-to-peer philosophy of dynamically and opportunistically aggregating the limited computing capability of peers to perform a task traditionally performed by a dedicated entity.

 

An overview of PROMISE would comprise of a brief description of peer attributes, its relationship with CollectCast and the overall working of PROMISE. Peers in PROMISE are characterized by their offered rates Rs and Availability Ap. The offered rate is the maximum rate that the peer can contribute to the system and the availability is nothing but a random variable with a value of 1 if the peer is available for streaming and 0 if not available for streaming. CollectCast judiciously chooses the sending peers and orchestrates them in order to yield the best quality for the receiver. Whenever a peer wants to requests the establishment of a streaming session, a lookup is performed by the P2P substrate and a set of candidate peers (senders) is returned. The protocol then constructs and annotates the topology connecting the candidate peers to the receiver. Using this topology a best subset of peers, known as the active sender set, is selected and the receiver then opens two connections, for control and delivery, with every peer in this set to begin transmission. The streaming session continues uninterrupted until a need is observed, say due to network congestion, for changing the set of active nodes. At this time the network topology is updated with the modified present conditions, which were being measured passively and a new set of active nodes is selected in order to resume transmission. The sender’s role is simple. On receiving a control packet it determines the rate and the subset of data that it is supposed to send.

 

The selection of best peers can be done via three techniques. The first technique is a random method in which a set of candidate nodes that may satisfy the required aggregate rate are selected without any regard to their availability metric and the possibility of congestion along their shared paths to the receiver. A second technique called End-to-End method estimates the “goodness” of a path from the candidate to the receiver. This technique chooses a set of active nodes based upon the quality of their paths to the receiver and also the availability of the sender. However, it does not account for the possibility of the occurrence of congestion in shared segments between active senders. The third method, known as, topology aware technique infers the underlying topology and its characteristics and considers the goodness of each segment in the path. Thus it can make a judicious selection by avoiding peers whose paths are sharing a common segment.

 

Topology aware selection is a three step method. In the first step a goodness topology is determined, in the second step per peer goodness is evaluated based on the goodness topology and in the third step, the active peer selection problem is stated as an optimization problem and solved. Determining the goodness topology is done in two steps. In the first step, network tomography techniques are used to infer an approximate topology and annotate its edges with the metrics of interest, loss rate, delay, and available bandwidth. This is called inferred topology. In the second step the logical goodness of each segment is determined using its properties. The goodness of a segment depends upon two factors a) the loss rate of the segment and b) the weight of the segment. The weight of a segment is a per peer metric and it is evaluate as follows: If the bandwidth of a segment is more than the aggregate rate from peers sharing the segment, then its weight is set to 1 otherwise it is proportional to the fraction in the shortage in bandwidth if the peer in consideration is selected along with other peers sharing the segment.

 

Once a goodness topology is determined, per peer goodness is calculated as a product of the availability of the client and the goodness metric of every segment along the path from a peer to the receiver. Finally, the active peer selection problem is formulated so as to maximize the product of peer goodness and its offered rate, constrained to the aggregate flow being between the lower and upper limit for the streaming rate allowed for the streaming session.

 

In order to come up with a good topology, the authors have developed some modified network tomography techniques in which unnecessary accuracy is traded off for far less overhead. Basically, network tomography is defined as discovering the interior characteristics of the network by probing only from its end points. First of all an approximate topology is developed using traceroute and then the topology is annotated using one way delay differences for a periodic packet stream, as suggested by Jain and Dovrolis[16]. Next, the topology is annotated with the loss rate using the estimated bandwidth as an input to Bayesian Inference using Gibbs Sampling method.

 

In order to make the system tolerant to packet loss the authors have used FEC schemes and Tornado codes in particular. The authors use the notation FEC(α) to denote the current loss tolerance level of the system. The factor α depends upon the aggregate loss rate in the system and is bounded by αu and αl such that: αl ≤ α ≤ αu. The bounds of α directly determine the bounds in the allowed rate for the streaming session. The aggregate streaming rate is then αRo. Once the aggregate rate is calculated, each peer in the active set is assigned a sending rate in proportion to αRo and Rp (which is its offered rate). Further each peer send packets in proportion to its actual streaming rate.

 

To adapt to the changes in the network conditions, peers in the active set are constantly monitored and exchanged with the peers in the standby set. This happens, either when one of the peers in the active set fails or the path from that peer to the receiver becomes unacceptably congested. Peer failure is detected either by a reset request on the TCP connection between a sending peer and the receiver or if a drop in the delivery rate from the peer is noticed. Under such circumstances the underlying topology is updated by the passively monitored network characteristics and a new set of active senders is determined. It is to be noticed that the authors take a sub-optimal approach and all the healthy senders in the previous active set into the new active set. This basically, reduces the cost of tearing down TCP connections and counters stale information attributed to peers in the standby set. Further, a switching decision is made each time a segment is received by the sender. A factor γ = (R - Ro)/ Ro is calculated after each segment is delivered. If γ < 0 then either α is increased or if α becomes greater than αu then a switching decision is made. However, if γ>0 and below a certain threshold then nothing needs to be done, otherwise if γ>0 and above a certain threshold then we need to reduce α and then reassign the sending rate and data to peers.

 

From performance point of view topology aware selection method does perform better than random method and end-to-end method. However, it is to be noted that the gain is not significant and as demonstrated in the paper, it is no more than 10%. An important fact to notice from performance evaluations is that as the availability of the peers increases the number of peers required to complete a streaming session decreases.

 

This paper concludes with the following remarks:

         Streaming from multiple failure-prone peers in a dynamic P2P environment is indeed feasible.

         Full quality can be maintained in the presence of failures and losses.

         Significant gain in streaming quality can be achieved by topology-aware peer selection technique.

 

Finally, some of the future directions for PROMISE are:

         CollectCast can be tuned to compete fairly with TCP traffic and react to congestion in the network.

         Large scale testing of PROMISE is needed to demonstrate its practicality and fine tune CollectCast functions.

         CollectCast can be extended beyond network characteristics and streaming applications.

 

 

B) Class Discussion

  • The most important contribution of this work is that it considers the goodness of every segment in the path from a sender to a receiver in order to adapt the quality of a streaming session.

  • A unique aspect of PROMISE is that every sender peer is assigned the exact sequence number of packets it is supposed to send and this is updated after every segment is received by the receiver.

  • The authors' premise that a multi-source delivery approach may mitigate burstiness of the traffic may not be entirely true. It is quite likely that if PROMISE becomes popular and everyone starts using it then network traffic will be bursty on all segments of the topology.

  • Pastry is slightly different from other P2P substrates because it utilizes locality and network proximity.

  • A direct difference between PROMISE and multicast systems is with respect to storage. It is assumed in P2P systems that storage is cheap and the complete file is available with every peer. Moreover, peers are cooperative in the sense that even if they are not receiving any data they are willing to participate in the streaming session as senders. However, in multicast systems peers deliver data further down the tree only if they are receiving it. Moreover, in multicast systems peers are not required to store anything. 

  • Finally, it should be noted that there is an element of tree like structuring in PROMISE. There is backward tree formation, with respect to the direction of stream flow, between senders and a receiver.

  • From performance point of view topology aware selection does 10% better than the random and end-to-end approach. So, the point to be reflected upon is that if it is really worthwhile to go for this entire complex system in order to achieve a 10% improvement.