170 likes | 183 Views
GnuStream: a P2P Media Streaming Prototype. Xuxian Jiang, Yu Dong, Dongyan Xu, and Bharat Bhargava. Outline. Introduction System Overview Design and Implementation Experiments Conclusions and Comments Q & A. Introduction. Video retrieving over P2P:
E N D
GnuStream: a P2P Media Streaming Prototype Xuxian Jiang, Yu Dong, Dongyan Xu, and Bharat Bhargava
Outline • Introduction • System Overview • Design and Implementation • Experiments • Conclusions and Comments • Q & A
Introduction Video retrieving over P2P: • Traditional way: open-after-downloading • Streaming (Goal): play-while-downloading • Challenges: • Stringent timing constraint • Involve a set of peer senders • P2P dynamic nature: online/offline
Recent Works • Narada and PeerCast • Synchronous broadcast of live media • Not consider the limited contribution of bandwidth from individual peers • CoopNet • Builds multiple distribution trees • Each receiver is required to consult the source node for upstream senders • ZIGZAG • Builds multicast tree based on hierarchy • Assumes each peer only receives from one sender
System Environment Gnutella lookup service locates 4 candidate senders (P2-P5) (bandwidth indicated by the edge thickness) P1 is looking for media file X Standby sender
System Features • Integration with P2P lookup substrate • Multi-sender aggregation • Even allocation • Proportional allocation • Receiver data collection • Detection of peer status change • Recovery from failure or degradation • Buffer control
Design Architecture • Network Abstraction Layer (NAL) • Provides generic and uniform interface of P2P lookup substrate • Streaming Control Layer (SCL) • Deals with the dynamics and heterogeneity of P2P networks • Bandwidth aggregation, data collection, status change detection and recovery, etc • Buffer management • Media Playback Layer (MPL) • Media quality adaptation
Implementation • Using Microsoft Visual C++ 6.0 • Build from Gnucleus, a open source Gnutella client • Buffer management is the most challenging aspect
MPL SCL Implementation Double buffering SCL adjusts feeding rate to Decoder and thus the display frame rate is tunable Maintains some pointers to enforce the real-time property of media streaming Eliminate data overflow and underflow and smooth the arrival jitter
Experiments • Local experimental testbed • Desktop PCs with XEON CPU 2GHz, 1G Ram, 100Mbps Ethernet controller • Limit the maximum upstream bandwidth to 60KB/s
P2P streaming session setup = 143KBps i.e. 3 peer senders of 60KBps
Buffering for continuous media playback • Suppose AFR=25fps, No. of Frames=1680, then Initial Delay=11.2sec. • In addition, if the aggregate bandwidth (3*60KBps) is greater than the playback rate (143KBps), each sender will exploit the residual bandwidth to pre-transmit
Peer failure detection and recovery Turn off peer 3 at 27th second Take approx. 1 sec to detect and recovery Replaced by peer 4 No interruption to playback due to buffer control
Conclusions • GnuStream is a P2P and receiver-driven media streaming system • Deployable in Gnutella network • Open source • Aggregate streaming capacity of individual peer senders • Self-monitoring and adjustment in peer failure and bandwidth degradation • The effectiveness of buffer control in maintaining both continuity and quality • Experiments on LAN
Comments • The first streaming implementation on an existing P2P network • However, important details are not mentioned • E.g. how the senders coordinate? • Experiments only in a small, local and homogenous network • Bandwidth variation? • Share bottleneck? • More vigorous change in the sender set?
Questions and Answers Thank you
Reference • Xuxian Jiang, Yu Dong, Dongyan Xu, Bharat Bhargava "GnuStream: a P2P Media Streaming Prototype" Proceedings of IEEE International Conference on Multimedia & Expo (ICME 2003), July 2003 • http://www.cs.purdue.edu/homes/jiangx/GnuStream