This project consists of two academic-industrial collaborations. The first collaboration is between us and the High Performance Computing and Software Lab at the Ohio State University and the Distributed System Research Department at AT&T Labs - Research in Florham Park, New Jersey. The focus of the research is to insightfully understand the streaming patterns via intensive Interent measurements.
The second collaboration is between us and and the Mobile and Media Systems Lab at the Hewlett Packard Laboratories in Palo Alto, California. The theme of the research is to design and implement high quality Inernet caching systems for streaming media delivery. This system is called HyperProxy.
In order to provide an insightful understanding of multimedia workloads in Interent and laying out an evaluation foundation for building and improving streaming systems, we have intensively analyzed various multimedia workloads collected from a large number of commercial Web sites hosted by a major ISP and that collected from a large group of home users connected to the Internet via a widely-used cable company. Our study shows that inadequate Internet streaming support has caused many clients to suffer from poor quality of service and has resulted significantl waste of network bandwidth. The major findings are reported in the following paper.
Architecture of Internet Delivery Networks
Multimedia contents have been widely used in various academic, business and industrial areas, such as remote education and entertainment. However, the proliferation of streaming media objects on Internet poses difficulties in delivering them due to the following reasons. One is that the size of a media object is generally much larger than a traditional static object. Thus, to entirely cache media contents as caching traditional static contents can quickly exhaust the proxy cache and is not feasible. The other is that the client requesting a media object demands continuous streaming service. The delay of the data transferring always results in playback jitter at the client side, which not only is annoying, but also can drive the client away from the streaming service. Third, as shown on the above figure, today a client can use a PDA, a cellphone or other devices instead of a desktop computer to access the Internet. Due to different screen sizes and different color depths, a media object that is appropriate to a desktop computer may not be appropriate to a PDA. Thus, the media delivery network must be able to distinguish and adapt to different client devices by conveying an appropriate media object to a corresponding client. This induces the transcoding problem. Fourth, the usage of these devices also incurs the mobility problem: when a client holding a PDA or cell-phone reads the video-based news, the client may be in a moving train, or may walk on the street. For these clients, the media delivery system should provide a nomadic but continuous streaming service.
Due to these reasons, the existing client-server model is not efficient, and can easily introduce a large startup latency. More importantly, it can not scale up. While current commercial CDNs can provide dedicated network and bandwidth for the streaming media delivery, the cost is very high and is not generally affordable. Additionally, the dedicated resources are under-utilized for most of time. On the other hand, plenty of resources exist on the Internet, such as a number of deployed proxies for caching and static Web pages. Aggregately, they can provide huge storage and computing power, as well as rich bandwidths.
Addressing these problems, we aim to leverage the existing proxy resources on the Internet for streaming media delivery. Specifically, we research on the following problems and build an efficient segment-based streaming media proxy system, called Hyper-Proxy.
In order to deal with the large size of the media object, segmentation in the time domain is a good choice since most of objects are only partially viewed, and a lot of client accesses focus on a few popular media objects. Existing segmentation strategies are lack of adaptiveness to the object's dynamically changing popularities and objects from different categories. They considers little of the user access patterns and results in blind segmentation. Comprehensively considering all these factors, we proposed Adaptive and Lazy Segmentation, which achieves the highest byte hit ratio.
Active Prefetching to Guarantee Continuous Streaming Service
Normally only partial segments are cached in the proxy by the segment-based proxy caching approaches. When the client wants to access uncached segments, the proxy needs to fetch uncached segments before relaying to the client. The fetching of uncached segments always takes some time. If the client has to wait until the proxy gets the next uncached segment from the content server, the jitter in client side is inevitable. Thus, to the best interest of client, the proxy should prefetch the uncached segments in case that the client is likely to access them. We design two prefetching techniques, Look-ahead Window Based Prefetching and Active Prefetching, according to different network bandwidth conditions. Additionally, a client requesting streaming media objects always demands a small startup latency. We study this problem and proposed efficient solutions to reduce the client perceived startup latency. These problems have not been addressed by any previous research work
Cooperative Proxies to Handle Mobile Devices
To deal with the client mobility, cooperative proxies are feasible and must. Our current efforts aim to build a networked media delivery system , providing a nomadic but continuous streaming service. Since this problem is complicated on the segment-based streaming media proxy, currently we are developing specific protocols and system functions to handle this problem.
Effective Transcoding to Quickly Interface Different Client Devices
Streaming media objects have to be customized for different types of devices. Thus, the media delivery system must be able to distinguish and adapt to different client devices by conveying an appropriate media object to a corresponding client. To address this issue, off-line transcoding and on-line transcoding are possible. But they demand huge storage or a lot of CPU cycles. We are developing novel and efficient methods by comprehensively considering the available resources and client requirements.
Hyper-Proxy has been implemented and deployed at HP Labs for large scale deployment tests. A lot of interesting research in this project is going on.