Archive for the ‘Peer-to-Peer’ Category

On Large-Scale P2P Streaming Systems with Network Coding

Monday, June 30th, 2008

Recent years have witnessed real-world success of peer-to-peer (P2P) live streaming systems, especially in start-up companies. Given these success stories, it is not surprising that there is a large base of research aiming at designing “good” P2P streaming systems. Even with wide research attention, however, a number of fundamental performance metrics that characterize “good” P2P streaming systems are not yet well understood. Let us revisit a few performance metrics as examples.

With respect to playback quality, if media segments do not arrive in a timely fashion, they have to be skipped at playback, which degrades the playback quality. How do we consistently maintain high playback quality at all participating peers? With respect to the initial buffering delay, which is experienced by a peer when it first joins or switches to a new channel, how do we improve user experience with the shortest initial buffering delay? With respect to server bandwidth costs, how do we minimize such costs by maximizing bandwidth contribution from participating peers? Last but not the least important, how do we design a system that scales well to accommodate a large flash crowd and a high degree of peer dynamics?

We believe that these performance metrics should be given priority when evaluating a protocol that is designed specifically for peer-to-peer live streaming. The playback quality and the initial buffering delay matter most to the user experience, which determines the level of user satisfaction. The server bandwidth costs, however, matter most to the companies in operation, as they directly determine most of the ongoing operational costs.

While it may be possible to implement a protocol design in real-world systems without “paper and pencil” analytical studies, we believe in the values of such analytical studies of large-scale P2P streaming systems. Analytical studies help us to understand the fundamentals with mathematical rigor, rather than by resorting to intuition or trial-and-error. Analytical studies also help us to understand properties that are hard to evaluate with real-world studies without risks, such as the ability to scale well to a large number of peers with good performance.

At first glance, developing a theoretical framework that helps protocol designers to understand all of these performance metrics may appear too good to be true. Most existing analytical studies therefore focused on only one or two performance metrics instead. For instance, Y. Liu [ACM Multimedia 2007] provided a centralized streaming algorithm that achieves minimum delay. Massoulie et al. [INFOCOM 2007] proposed a streaming algorithm that approaches maximum streaming rate. Bonald et al. [SIGMETRICS 2008] identified several streaming algorithms that achieve near-optimal streaming rate and delay.

In contrast, in our recent research paper to appear in ACM Multimedia 2008, we seek to mathematically analyze and understand a new family of streaming protocols, simultaneously considering all these performance metrics. Our rescue comes from the use of network coding, which not only eliminates some of the mathematical difficulties associated with previous theoretical models, but also leads to simple and practical streaming protocols. This simplification allows us to take into account all of the important performance metrics, even under a more realistic system model.

We identify several design principles for streaming systems with network coding and show that any protocol following our design principles is sufficient to achieve provably good overall performance in realistic settings. In particular, we have provided sufficient conditions on the required server bandwidth costs to ensure smooth playback under peer dynamics, and with short initial buffering delays. A closer look at these conditions further suggests that our design principles are able to achieve near-optimal bandwidth utilization during flash crowds and to handle severe peer dynamics with ease.

Our design principles can be readily implemented in practice with low overhead. In fact, our previous work on R2 is a particular example of such implementations. Through such an example of a practical protocol design, combined with our theoretical framework of fundamental properties, we have provided a striking demonstration of an effective streaming protocol design with network coding. We expect to see real-world implementations of our design principles in the near future. Clearly, the design principles identified in our work might not be unique, and our analytical studies are concerned with a family of such protocols, focusing on important elements, rather than protocol details. We believe our theoretical framework will shed considerable light into the journey towards the best possible protocols in P2P streaming systems.

A slide presentation on this project is available for further reading, in both Adobe Flash and Adobe PDF formats.

R2: Practical Peer-to-Peer Live Streaming with Network Coding

Saturday, October 13th, 2007

Recent real-world success of peer-to-peer live streaming, such as UUSee and PPLive, has led to the question of what further improvements one can make to existing streaming protocol design. It is well known that Peer-to-Peer (P2P) streaming conserves server bandwidth by shifting the load to peers and their ISPs, and as such scales well to a larger population of subscribers, and offers better resilience to flash crowds, when server bandwidth supply is temporarily insufficient to meet demand. However, when pushed too far, it may be hard to monitor and control the quality of streaming playback, as routine peer departures are detrimental to streaming performance in a transient fashion. The delay in delivering a live event to all peers is much higher with relaying, and the initial buffering delay can be higher.

Previous research in the literature has focused on constructing high-quality peer-level topologies. Tree-based per-slice push, such as Chunkyspread [ICNP 2006], may shorten the delays between live events and their playback time, but they suffer overhead of maintaining trees and unavoidable implementation complexity. Mesh-based per-segment pull, such as CoolStreaming [INFOCOM 2005], may be simple to implement and offer better resilience to frequent peer departures, but the overhead of requests and buffer availability exchanges is quite significant, and the delays between live events and their playback time may be much longer.

With the recent surge of interest in practical network coding, it is interesting to see if network coding would be helpful in delivering performance gains in P2P streaming, with respect to three important performance metrics: (1) resilience to peer dynamics; (2) the utilization of scarce server bandwidth; and (3) the time required for initial buffering delays when switching to new channels.

In the R2 project, our objective is to design, analyze, and implement a new peer-to-peer live streaming protocol, that hopefully combines the benefits of tree-based per-slice push and mesh-based per-segment pull, but without much complexity in its implementation. In the first phase, we are interested in weather network coding can offer any tangible benefits in P2P streaming, without revising the traditional mesh-based per-segment pull protocol. We have performed an experimental evaluation of the benefits of network coding over a vanilla pull-based streaming protocol, with the conclusion that there exist some benefits offered by network coding, but they are nothing to write home about. Our papers summarizing results in this step have been published in IEEE Transactions on Multimedia (PDF), and IEEE INFOCOM 2007 (PDF).

In the second phase, we are naturally curious about the possibility of designing a much improved protocol that is tailored to take full advantage of network coding. Towards this objective, we have designed R2 (Random push with Random network coding), and believed that R2 enjoys the advantages of both push-based and pull-based streaming protocols. To show its practicality and effectiveness, our experimental results are based on a complete implementation of R2 with emulated peers on a server cluster, coupled with an optimized library of random network coding tuned for performance. Our paper on R2 is to appear in the December 2007 issue of the IEEE Journal on Selected Areas in Communications, Special Issue on Advances in P2P Streaming.

If you are still reading, you may also be interested in our presentation slides dedicated to the R2 project, available as an Adobe PDF document.

Characterizing peer-to-peer streaming flows

Wednesday, September 26th, 2007

Dubbed the “Internet currency” by researchers at Harvard University, available bandwidth among peers is of pivotal importance to large-scale P2P streaming applications. It is therefore important for peers in a peer-to-peer streaming system to select an appropriate and small number of neighbouring peers with active connections, so that there is an abundant — or at least satisfactory — amount of available bandwidth between itself and each of its neighbours. After all, have a few hundred active neighbours with 1 KB per second each may not be so helpful in delivering multimedia content in a timely fashion.

The objective of our second milestone in the Magellan project was precisely to see if it is possible to select “good” active peers with a satisfactory level of available bandwidth. In our recent paper to appear in IEEE Journal on Selected Areas in Communications (JSAC), Special Issue on Advances in Peer-to-Peer Streaming Systems, it is our hope that some kind of imprecise and approximate knowledge of available TCP bandwidth between two peers can be derived with minimum active probing, or better yet, no probing at all.

To hopefully achieve this objective, we have taken the time to conduct an exhaustive investigation with respect to statistical properties of TCP throughput values of streaming flows among peers, using more than 230 GB of UUSee traces and 370 million live streaming flows over a four-month period of time (November 2006 to February 2007). In particular, we have investigated TCP throughput distributions in various peer ISP/area/type categories, statistically tested the correlation between TCP throughput and its application-layer factors by modeling them into regression models, and studied the evolutionary properties of TCP throughput values over the trace period.

We have made quite a number of interesting observations. First, we have discovered that the ISPs that peers belong to are highly significant in determining inter-peer bandwidth, even more important than their geographic locations. Second, we have also found excellent linear correlations between the availability of peer last-mile bandwidth and inter-peer bandwidth within the same ISP and between a subset of ISPs, with different linear regression coefficients for different pairs of ISPs. Finally, we have observed daily evolutionary patterns of inter-peer bandwidth.

Based on these insights, we have designed a “throughput expectation index” that makes it possible to select high-bandwidth peers without performing any measurements. This index is computed based on the ISPs that peers belong to, a table of linear regression coefficients for different pairs of ISPs, and the time of the day. All linear regression coefficients are derived off-line using historical measurement traces. We have cross-checked the set of peers selected using such an index against the set of real-world top-ranked peers in the traces from a different time period, and discovered a surprisingly good match between the two.

Interested readers are referred to the web site of the first author, Chuan Wu, for more details.

Charting large-scale P2P streaming topologies

Thursday, July 5th, 2007

Live peer-to-peer (P2P) multimedia streaming applications have been successfully and commercially deployed in the Internet with up to millions of users at any given time. Within the academic community, there has been an increasing level of attention on measurement studies with these real-world streaming applications. Prominent examples that are better known to academia include CoolStreaming (an INFOCOM 2005 paper), PPLive and TVAnts (a significant and increasing number of measurement studies treating them as a “blackbox”).

We expect many more papers in the near-term future taking the same research metholodogy: treating commercial applications as a “blackbox,” and perform extensive measurements by monitoring their traffic characteristics. In fact, Skype has already received a similar level of scrutiny with such a research approach, and if we were allowed a crystal ball (as of early July 2007), we would predict papers on Youtube, Joost, Zattoo, and perhaps even the iPhone when it uses EDGE (or, later, 3G HSDPA) — if we were allowed sufficient resources in addition to that crystal ball before it’s too late, perhaps we would launch a few projects on these ourselves!

As a commonly adopted design for most of the recent successful P2P live streaming applications, blocks of live media contents are being delivered over a mesh overlay topology, featuring a BitTorrent-like reciprocal exchanges of useful content blocks among multiple peers. It is also interesting to observe that most current-generation P2P streaming applications employ relatively simple peer selection and mesh construction protocol designs. They typically use central tracking servers to gain initial knowledge of existing peers in the channels, and periodically exchange peer lists among peers themselves. As mesh-based streaming topologies play an important role towards the commercial success of P2P streaming, it is critical to acquire a thorough and in-depth understanding of the topological characteristics of these large-scale P2P meshes. It would be an intriguing research challenge to investigate how the constructed topologies actually behave in practice, dynamically evolve over time, and react to extreme scenarios such as huge flash crowds.

There has been quite a number of existing papers on exploring P2P topologies of P2P decentralized search (such as Gnutella and its variants). The problem is that such P2P decentralized search applications are quite different from modern P2P streaming applications based on block exchanges and long-lived meshes, leading to possibly different topological properties. As a matter of fact, topological characteristics in block-exchanging P2P streaming applications may well be different from their file-sharing predecessors (such as BitTorrent), due to its biased peer selection protocol design towards the timely delivery of media content.

The bad news is, there are only so much one can do with a measurement-based study treating the application as a “blackbox.” If we wish to gain in-depth insights and a complete understanding of P2P streaming characteristics, we need to collaborate with commercial solution providers and add instrumentation facilities into the product itself! With the Magellan project, we wish to achieve exactly that, by collaborating with UUSee Inc., one of the leading P2P live streaming solution providers in mainland China, supported by reputable venture capital firms in North America.

Our ICDCS 2007 paper, that we just presented in Toronto, Canada, represents the first milestone of Magellan, with our observations from exploring graph theoretical properties in actually formed live streaming topologies. All of our observations are based on over 120 GB of traces and 10 million unique IP addresses that we have collected over a two-month period (September to October 2006) using dedicated trace servers, and instrumented client code to proactively submit reports to trace servers. With emphasis on their evolutionary nature over a long period of time, we have utilized and extended classical graph measurement metrics — such as the degree, clustering coefficient, and reciprocity — to investigate various aspects of the streaming topologies at different times of the day, in different days in a week, and in flash crowd scenarios. We also compare our discoveries with existing results related to file sharing applications, with further insights unique to P2P streaming.

We have brought several insights to the spotlight in this paper. First, we show that the current-generation P2P streaming platform scales very well, even in large flash crowd scenarios. Second, we observe that the degree distribution towards active neighbors in a peer-to-peer mesh does not follow the power-law distribution. Third, we argue that ISP-based clusters are formed from the dynamic peer selection process, carried out during live streaming sessions, even with exceedingly simple algorithms of peer selection. Finally, we believe that mesh P2P topologies do not resemble a tree in reality, and that the level of reciprocity among peers is high, which plays a key role towards the effectiveness of utilizing peer upload bandwidth.

If you are still reading, you may also be interested in our presentation slides dedicated to this work, available as either an Adobe PDF document or an Flash slide show.

Update on September 12, 2007: I just noticed three papers on YouTube trace analysis in IMC 2007 (Internet Measurement Conference). I guess my “crystal ball” works quite accurately when I wrote this short essay back in July: would Joost be the next one to analyze?