Title: GnuStream: a P2P Media Streaming Prototype
1GnuStream a P2P Media Streaming Prototype
- Xuxian Jiang, Yu Dong, Dongyan Xu, and Bharat
Bhargava
2Outline
- Introduction
- System Overview
- Design and Implementation
- Experiments
- Conclusions and Comments
- Q A
3Introduction
- 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
4Recent 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
5System 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
6System 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
7Design 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
8Implementation
- Using Microsoft Visual C 6.0
- Build from Gnucleus, a open source Gnutella
client - Buffer management is the most challenging aspect
9Implementation
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
10Experiments
- Local experimental testbed
- Desktop PCs with XEON CPU 2GHz, 1G Ram, 100Mbps
Ethernet controller - Limit the maximum upstream bandwidth to 60KB/s
11P2P streaming session setup
Frame size playback rate YUV sampling Bits per pixel Compression Rate
352 240 30 fps 420 8 261
143KBps i.e. 3 peer senders of 60KBps
12Buffering for continuous media playback
- Suppose AFR25fps, No. of Frames1680, then
Initial Delay11.2sec. - In addition, if the aggregate bandwidth
(360KBps) is greater than the playback rate
(143KBps), each sender will exploit the residual
bandwidth to pre-transmit
13Peer 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
14Conclusions
- 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
15Comments
- 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?
16Questions and Answers
17Reference
- 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