Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 414 - Spring 2009 CS 414 – Multimedia Systems Design Lecture 24 – P2P Streaming Klara Nahrstedt Ramsés Morales.

Similar presentations


Presentation on theme: "CS 414 - Spring 2009 CS 414 – Multimedia Systems Design Lecture 24 – P2P Streaming Klara Nahrstedt Ramsés Morales."— Presentation transcript:

1 CS 414 - Spring 2009 CS 414 – Multimedia Systems Design Lecture 24 – P2P Streaming Klara Nahrstedt Ramsés Morales

2 Streaming from servers Bandwidth at video service and number of servers have to grow with demand  Flash crowds have to be taken into account CS 414 - Spring 2009 … … clients Video service servers

3 P2P Streaming Use the participating node’s bandwidth  More 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

4 P2P Streaming Common arrangements to multicast the stream  Single Tree  Multiple Tree  Mesh-based  All nodes are usually interested in the stream They all have to deal with node dynamism (join/leave/fail/capacity-changes) CS 414 - Spring 2009

5 Streaming in a single tree CS 414 - Spring 2009 Source Frames codercoder 321 packets 3 2 1 3 2 1 (using RTP/UDP)

6 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

7 Joining the tree Find a node with spare capacity, then make it parent If contacted node lacks capacity, pick child  Random child  Round robin  Child closest in physical network to joining node CS 414 - Spring 2009 “Parent?” “Try one of my children”

8 Leaving the tree or failing Orphan nodes need a new parent Policies for new parent  Children pick source  Subtree nodes pick source  Children pick grandfather  Subtree nodes pick grandfather  …then repeat join procedure CS 414 - Spring 2009 Orphan children after parent leaves Ex-parent grandfather

9 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

10 Multiple Trees Challenge: a peer must be internal node in only one tree, leaf in the rest CS 414 - Spring 2009 1 2 2313 3 12 Source Are nodes 1, 2, 3 receiving the same data multiple times?

11 Multiple Description Coding (MDC) Each description can be independently decoded (only one needed to reproduce audio/video)  More descriptions received result in higher quality CS 414 - Spring 2009 codercoder Frames 3030 2020 1010 Packets for description 0 Packets for description n … 3n3n 2n2n 1n1n

12 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 23 3 1 2 3030 2020 1010 3131 2121 1 (using RTP/UDP)

13 Multiple Tree Streaming in Pastry DHT -- SplitStream Pastry routes messages using id prefix matching CS 414 - Spring 2009

14 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

15 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 d462ba d4213f d13da3 a1321a a1b987 Description 1 a0b14f

16 Multiple-Tree Issues Complex procedure to locate a potential- parent peer with spare out-degree  Degraded quality until a parent found in every tree Static mapping in trees, instead of choosing parents based on their (and my) bandwidth  An internal node can be a bottleneck CS 414 - Spring 2009

17 Mesh-based streaming Basic idea  Report to peers the packets that you have  Ask peers for the packets that you are missing  Adjust 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)

18 Content delivery CS 414 - Spring 2009 1 4 101112 5 2 6 131415 7 3 8 1617 9 Description 0Description 2 Description 1 (1) Diffusion Phase ( ) (2) Swarming Phase ( ) (Levels determined by hops to source)

19 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 3030 2020 1010 … 32322 1212 4040 4242 Segment 0 Segment 1 … … Have segment 0 3 Send me Segment 0 2 1212 (during period 0) 3 Have segment 0 9 2 1212 (during period 1) Send me Segment 0 (drawings follow previous example)

20 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) 1011 12 2 131415 7 1617 9 2020 1010 2121 1 21211 1 2121 1010 2020

21 Buffering Due to diffusion nodes need a buffer  Size: c * L  (diffusion tree dept + minimum number of swarming intervals) <= c CS 414 - Spring 2009

22 Receiver driven packet scheduling Peers maintain parents’  Available packets  Weighted average bandwidth Peers monitor aggregate bandwidth from all parents  Requested descriptions adapt to this measure Designed to maximize utilization of available bandwidth from parents CS 414 - Spring 2009 9 Bw from 15=x, 16=y 15 has from t=0 to t=20 16 has from t=0 to t=10 X+y = x_agg (can I handle more?) (drawings follow previous example)

23 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

24 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


Download ppt "CS 414 - Spring 2009 CS 414 – Multimedia Systems Design Lecture 24 – P2P Streaming Klara Nahrstedt Ramsés Morales."

Similar presentations


Ads by Google