On large-scale P2P streaming systems with network coding
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.