A Survey of P2P Data-Driven Live Streaming Systems

A Survey of P2P Data-Driven Live Streaming Systems

Fabio Pianese (Alcatel-Lucent Bell Labs, Belgium)
DOI: 10.4018/978-1-61692-831-5.ch012
OnDemand PDF Download:
No Current Special Offers


Data-driven peer-to-peer live streaming systems challenge and extend the traditional concept of overlay for application-layer multicast data distribution. In such systems, software nodes propagate individually-named, ordered segments of the stream (called chunks) by independently conducting exchanges with their neighboring peers. Chunk exchanges are solely based on information that is available locally, such as the status of a node’s receive buffer and an approximate knowledge of the buffer contents of its neighbors. In this Chapter, we motivate and retrace the emergence of P2P data-driven live streaming systems, describe their internal data structures and fundamental mechanisms, and provide references to a number of known analytical bounds on the rate and delay that can be achieved using many relevant chunk distribution strategies. We then conclude this survey by reviewing the deployment status of the most popular commercial systems, the results from large-scale Internet measurement studies, and the open research problems.
Chapter Preview

1 Introduction

Internet-based media streaming has been a long-standing subject in networking research. Only quite recently has it become a thriving and viable application, attracting widespread interest from both users and service providers. The rapid growth of the Internet during the last two decades, together with the development of cheap, powerful hardware, and the widespread deployment of broadband access technologies (such as cable and DSL), have contributed to the profound change in the way streaming is perceived today. The progression from the early days of do-it-yourself Internet radio (e.g. Shoutcast in the late nineties) to the development of huge on-demand media repositories has been so fast that, from a niche application used by few amateurs, streaming has now become ubiquitous and is having an ever-increasing impact on the way users perceive and approach the World Wide Web.

The main commercial focus of the major telecom operators today is video-on-demand (VoD) streaming, which consists of delivering videos (i.e. stored media files) upon a user's request from a server to the user's player application. The biggest challenge of VoD streaming is choosing an appropriate delay to start the playback such that buffer starvation shall not occur and the video will be played from beginning to end without interruptions. A technique which is often used in VoD involves quickly providing the users with the initial part of the media file, so that the delay between their request and the beginning of the video playout will be short. This feature requires the VoD application to transmit the data at a rate which is much greater than the stream's actual rate. For these reasons, videos are often stored in repositories that heavily rely on caching techniques and content distribution networks (CDNs) in order to alleviate the enormous bandwidth requirements that could not be sustained by the VoD storage servers alone (Yu et al., 2006).

Another popular application of VoD techniques is user-generated content distribution (UGC), mainly offered by large-scale Internet application providers (such as Google's YouTube). UGC differs from VoD by the fact that the users of the system are the main source of the content that is made available. This property results in the need for a huge data repository and complex heuristics to index, retrieve, and replicate a set of media objects extremely heterogeneous by size, quality, and popularity (Cha et al., 2007).

During the last few years, a third mode of media distribution has also become feasible and reached a considerable popularity: live media streaming. In live streaming, a source generates a video stream on-the-fly and transmits it immediately to the audience. Every user must then receive the data consistently at its full rate, being only able to rely on small buffers to mitigate the random disruptions introduced by the underlying network. Live streaming is an application that presents a different set of challenges compared to VoD. For instance, the usual caching techniques on which VoD broadly relies cannot be applied: live streaming requires at any point in time the availability of a sufficient upload capacity, which in turn depends linearly on the number of users connected to each source. On the other hand, live streams do not require long-term storage and durable indexing of the available content.

The linear scaling of bandwidth requirements, coupled with extremely variable and volatile user workloads, make live streaming a difficult application to implement using a client-server architecture. The bandwidth resources available to a server are rigidly allocated and cannot usually be extended on-the-fly. If the user population is smaller than the allocated system capacity, resources are wasted and efficiency suffers. However, when the capacity is exceeded, resources are fully used but the service quality perceived by the users degrades. This limitation becomes particularly penalizing when dealing with live streaming, as the difference in the required upload capacity between peak and average loads can span several orders of magnitude. A trade-off has to be reached between the cost of the provisioning and the ability to accommodate the occasional flash crowds.

In this context, peer-to-peer (P2P) architectures provide many advantages as they offer better scalability: while the total bandwidth demand increases, the users of the system are also able to provide their resources and help the content provider support the data distribution process.

Complete Chapter List

Search this Book: