CS 414 - Spring 2009 CS 414 – Multimedia Systems Design Lecture 24 – P2P Streaming Klara Nahrstedt Ramsés Morales.
Post on 22-Dec-2015
219 Views
Preview:
Transcript
CS 414 - Spring 2009
CS 414 – Multimedia Systems Design
Lecture 24 – P2P Streaming
Klara Nahrstedt
Ramsés Morales
Streaming from servers
Bandwidth at video service and number of servers have to grow with demandFlash crowds have to be taken into account
CS 414 - Spring 2009
…
…
clients
Video service
servers
P2P Streaming
Use the participating node’s bandwidthMore nodes watching stream = more shared
bandwidth App-level multicast
How?
CS 414 - Spring 2009
Live stream source(could be a member of the p2p network)
P2P network
Peers watching stream
P2P Streaming
Common arrangements to multicast the streamSingle TreeMultiple TreeMesh-basedAll nodes are usually interested in the stream
They all have to deal with node dynamism (join/leave/fail/capacity-changes)
CS 414 - Spring 2009
Single Tree
Peers interested in the stream organize themselves into a tree
CS 414 - Spring 2009
…
……Source
Nodes send as many copies of a data packet as they have children
Joining the tree
Find a node with spare capacity, then make it parent
If contacted node lacks capacity, pick childRandom childRound robinChild closest in physical network to joining
node
CS 414 - Spring 2009
“Parent?”
“Try one of my children”
Leaving the tree or failing
Orphan nodes need a new parent Policies for new parent
Children pick sourceSubtree nodes pick sourceChildren pick grandfatherSubtree nodes pick grandfather…then repeat join procedure
CS 414 - Spring 2009
Orphan children after parent leaves
Ex-parent
grandfather
Single tree issues
Leaves do not use their outgoing bandwidth
Packets are lost while recovering after a parent leaves/fails
Finding unsaturated peer could take a while
Tree connections could be rearranged for better transfer
CS 414 - Spring 2009
Multiple Trees
Challenge: a peer must be internal node in only one tree, leaf in the rest
CS 414 - Spring 2009
1 2
2 3 1 3
3
1 2
Source Are nodes 1, 2, 3 receiving the same data multiple times?
Multiple Description Coding (MDC)
Each description can be independently decoded (only one needed to reproduce audio/video)More descriptions received result in higher
qualityCS 414 - Spring 2009
coder
Frames 30 20 10
Packets for description 0
Packets for description n
…
3n 2n 1n
Streaming in multiple-trees using MDC Assume odd-bit/even-bit encoding --
description 0 derived from frame’s odd-bits, description 1 derived from frame’s even-bits
CS 414 - Spring 2009
4
1
2 3
3
1 2
3020
10
3121
11(using RTP/UDP)
Multiple Tree Streaming in Pastry DHT -- SplitStream Pastry routes messages using id prefix
matching
CS 414 - Spring 2009
Multiple Tree Streaming in Pastry DHT -- SplitStream Assign an id to each coded description
If most significant digit is different, then trees will be interior-node-disjoint, example,
Id tree 1: d46a1c Id tree 2: a1321d 65a1fc: route(m, d46a1c) -> d13da3 -> d4213f ->
d462ba 65a1fc: route(m, a1321d) -> a0b14f -> a1b987 ->
a1321a Stream flows through reverse path
CS 414 - Spring 2009
Multiple Tree Streaming in Pastry DHT -- SplitStream Peer is internal node in only one tree, due
to interior-node-disjoint trees and Pastry’s routing
CS 414 - Spring 2009
d462ba
d4213f
d13da3
65a1fc
a1321a
a1b987
a0b14f
65a1fc
Description 0
d462bad4213f
d13da3a1321a a1b987
Description 1
a0b14f
Multiple-Tree Issues
Complex procedure to locate a potential-parent peer with spare out-degreeDegraded quality until a parent found in every
tree Static mapping in trees, instead of
choosing parents based on their (and my) bandwidthAn internal node can be a bottleneck
CS 414 - Spring 2009
Mesh-based streaming Basic idea
Report to peers the packets that you haveAsk peers for the packets that you are
missingAdjust connections depending on in/out
bandwidth
CS 414 - Spring 2009
Description 0/1/2
Description 1
Description 0
Description 1,2
Description 0,1,2
(Nodes are randomly connected to their peers, instead of statically)
Description 0/1/2
(mesh uses MDC)
Content delivery
CS 414 - Spring 2009
1
4
10 11 12
5
2
6
13 14 15
7
3
8
16 17
9
Description 0 Description 2Description 1
(1) Diffusion Phase ( ) (2) Swarming Phase ( )
(Levels determined by hops to source)
Diffusion Phase
As a new segment (set of packets) of length L becomes available at source every L seconds Level 1 nodes pull data units
from source, then level 2 pulls from level 1, etc.
Recall that reporting and pulling are performed periodically
CS 414 - Spring 2009
30 20 10
…
32 22 12
40
42
Segment 0Segment 1
…
…
Have segment 0
3
Send meSegment 0
22
12
(during period 0)
3 Have segment 0
9
22
12
(during period 1)
Send meSegment 0
(drawings follow previous example)
Swarming Phase
At the end of the diffusion all nodes have at least one data unit of the segment
Pull missing data units from (swarm-parent) peers located at same or lower level
Can node 9 pull new data units from node 16? Node 9 cannot pull data in a single swarm interval
CS 414 - Spring 2009(drawings follow previous example)
10 11 12
2
13 14 15
7
16 17
9
20
10
2111
21 11
1121
1020
Buffering
Due to diffusion nodes need a bufferSize: c * L(diffusion tree dept + minimum number of
swarming intervals) <= c
CS 414 - Spring 2009
Receiver driven packet scheduling Peers maintain parents’
Available packetsWeighted average bandwidth
Peers monitor aggregate bandwidth from all parentsRequested descriptions adapt to this measure
Designed to maximize utilization of available bandwidth from parents
CS 414 - Spring 2009
9
Bw from 15=x, 16=y15 has from t=0 to t=2016 has from t=0 to t=10X+y = x_agg (can I handle more?)
(drawings follow previous example)
Receiver driven packet scheduling
Scheduler identifies packets with highest timestamp available at parents (during last L seconds) Then request all these packets
Identify missing packets for each timestamp Then request a random subset of these missing packets from all
parents (even if they don’t have it) to fully utilize their bandwidth
CS 414 - Spring 2009
9
Send me 0<=t<=20
15
16
Have up to t=20
Have up to t=10
9
I’m still missing t=19, t=18
15
16
Many more details in references and source code M. Castro, P. Druschel, A-M. Kermarrec, A. Nandi, A. Rowstron and
A. Singh, "SplitStream: High-bandwidth multicast in a cooperative environment," SOSP 2003.
H. Deshpande, M. Bawa, H. Garcia-Molina. "Streaming Live Media over Peers," Technical Report, Stanford InfoLab, 2002.
N. Magharei, R. Rejaie. "PRIME: Peer-to-Peer Receiver drIven MEsh-Based Streaming," INFOCOM 2007.
N. Magharei, R. Rejaie, Y. Guo. "Mesh or Multiple-Tree: A Comparative Study of Live P2P Streaming Approaches," INFOCOM 2007.
http://freepastry.org
CS 414 - Spring 2009
top related