Tail Synchronized Playback
Faculty: Dr. Aaron Striegel
Students: David Moore
Support: This work was supported in part by the National Science Foundation through the grant CNS03-47392.
Overview
The emergence of popular video sharing sites such as
YouTube? has created a tremendous content shift towards timely, medium-sized media together with placing significant demands on the network. While techniques such as Application Layer Multicast and
P2P? streaming offer the potential to reduce the impact of general streaming content, the difficulty in imposing synchronization and the heavy asymmetry of clients nullify the majority of the respective benefits of the techniques. We propose a method,
transparent tail synchronization, that discovers latent opportunities for synchronization from the tail of the content to take advantage of efficient distribution techniques. Our approach maximizes savings at the content provider while operating in a straightforward and easily deployable manner. We describe how tail synchronized media distribution can offer savings across a wide range of asymmetry at the end clients.
Tail Synchronization
With the proliferation of high-speed network access to the home user, the scale of content has gravitated towards richer media interactions. For traditional broadcast media from live sources, numerous solutions ranging from IP multicast to Application Layer Multicast (ALM) to Peer to Peer (
P2P? ) streaming have emerged to efficiently deliver content. For each of these respective solutions, a critical characteristic of the content is the natural synchronization of users due to the live broadcast nature of the content. The memory-less property of live content (i.e. future clients joining do not need previous content) allows for a de facto synchronization that is simply not present in all media.
In contrast, the emergence of rich media sites such as YouTube introduce a significantly different type of transfer. This medium-scale media dwarfs the requirements of typical content-laden web pages but yet pales in comparison to an average full length movie (DVD, HD-DVD,
BluRay? , etc.). We posit that this `medium-scale' content introduces interesting properties that complicate distribution of such media over previously dominant content. To start, content often arrives in a reliable manner via TCP due to both the simplicity of using TCP as well as the ability of TCP to easily navigate firewall/NAT mechanisms. Furthermore, the magnitude of the available content choices in terms of both choices and size creates numerous issues regarding the ability to effectively remotely cache content. These contraints are only exacerbated by the expectation of near immediate playback, i.e. show me the rich clip now, not two hours from now.
The works posits a relatively simple question:
is it possible to extract synchronization without imposing significant restrictions on the existing transfer mechanisms, i.e. is there latent potential for synchronization that can be exploited transparently? To that end, we propose the concept of
tail synchronization that virtually subdivides existing static media objects into zones for the purposes of coalescing, streaming, and completion. The root of tail synchronization emerges from how objects are synchronously streamed from the tail to minimize the impact of the unreliable aspects of streaming content on playback but conversely to maximize the amount of time available to stream content through the highly asymmetric pipes. Tail synchronization is not a replacement for distribution mechanisms but rather provides amenable content that can take advantage of such mechanisms (ALM, IP Multicast, Small Group Multicast,
P2P? , etc.). We believe tail synchronization is an extremely lightweight approach that can bring reasonable efficiency gains in an immediate timescale.
Publications
- Poster
A. Striegel, D. Salyers, D. Moore, Y. Jiang, A. Blaich, "Improving Medium-Sized Media Clip Distribution Through Transparent Tail Synchronization," poster at IEEE BroadNets, pp. 294-295, Raleigh, NC, Sept. 2007. DOI IEEE Xplore
Source Code
NOTE: code is in constant development, newer versions will be posted as they are made available, use at your own risk!
- Click Testbed Configuration Generator: This program parses a testbed description file, and generates a set of Click configuration files that will implement that network, when loaded. clickconfiggen.tar.gz
- Testbed Dispatch Agent: This program will process a data file of tasks and timestamps, and execute the tasks in-order appropriately. It is used for running tests on the testbed system. dispatcher.tar.gz
- Device-lockable hacked Webbot: This hacked version of W3C's webbot (and associated library) allows the specification of a given interface in webbot's usage, via the "-i devicename" new command line option. hacked_w3c-libwww-5.4.0.tar.gz
- Current Tail Sync Source: The current source code for Tail Sync. While the earlier apps are more or less complete/stable, this build may not be so. tsync.tar.gz Doxygen documentation for the current build can be found here.
Abstract
Streaming video playback systems in current use are singly streamed to each user who requests them. Although many ideas have been proposed to combine multiple user streaming data requests, few truly viable, bandwidth conserving and directly implementable systems have been developed. By creating groups of clients who seek the same file in similar timeframes, we develop a system by which the file is multicast to clients from the end while it is uni-cast streamed from the beginning. Furthermore, the type of multi-casting used may vary, or if necesary be unused if the client proves unable to properly participate. The result will be a system that is robust, easily accessed, and user transparent, yet provides significant bandwidth conservation in most circumstances.
System Architecture
Open Research Questions
- Flash functionality: Is it possible to embed tail synchronization entirely in Flash despite support for only TCP transfers and a limited threading model? Is Ajax a better model for deployment?
- Firewall/security: How can one quickly isolate firewall issues in an increasingly NAT'd client environment? Will IPv6 worsen or simplify the usage of tail synchronization?
- Client capability assessment: How can one quickly assess client-side capabilities with regards to downstream streaming? How does one react to changes in client dynamics (background downloads, mobile nodes, etc.)?
CURRENT STATUS
Tail Sync is currently in development (as is this wiki page). Current work is configuring and implementing thread-based and thread-safe operations of the various groups.
Related Work
First, tail synchronization shares a common lineage amongst the existing literature on video on demand and parallel video streaming \cite{vodSurvey}. Critically, tail synchronization focuses on the practical issues of end host replication in uncertain environments, i.e. Flash controls embedded in multiple browsers. Hence, failures of communication paths are only natural but ill fitting for previous work in VoD (dynamic skyscraper approach, HMSM, etc.). Tail synchronization provides maximum isolation from failures to establish communication paths delivering robust performance to the user.
Second, tail synchronization is distinct from
P2P? media streaming solutions, ex.
SplitStream? \cite{CoopNet03,splitStream}, in that the targeted content does not have forced synchronization but yet has timeliness constraints for playback. Finally, we note that tail synchronization does not preclude the use of intelligent digital fountain/coding-based schemes \cite{digitalFountainBulk,rba-cyclone} but rather offers an interesting mechanism for introducing synchronization.