Octoshape Commercial hosting not cable to home, founded 2003 Broadcasting fee is paid by broadcasters Free for consumers Audio and Video, 32kbps to 800kbps Mesh based, bit-torrent like, Content Server pushes content to some peers, it propagates from there Peers advertise their joining to everyone (?) Probably to some network or geographic topography, esp. if the live content is popular, this can cause a notification storm. [speculation] Eurovision in 2006, 2007, Tour de France in 2007 with ~1.5Mbps High Quality Requires a web browser, any streaming client and Octoshape client Peer-to-Peer Streaming Technology Survey, J. Peltotalo Survey of P2P Streaming Applications, draft-gu-ppsp-survey 24 Peer decides to split the streams in to k-parts. 1) Stand-by peers 2) Connected peers Peer 1 Peer 2 No of parts depends on number of peers downloading from that peer Peer 4 Peer 3 Content Server (CS) 25
TVAnts University project in China, 2005 Live broadcasting Mostly Japanese and English content Clients gather content from trackers Typically, more than 500 users watch popular broadcasts like football games Average: 300-500 kbps Shows a lot of debug info Jitter Losses Buffer-fill Cpu 26 Joost Started by a Skype founder Used P2P until 2009 Peer-Server is over HTTP, Peer-Peer is over UDP Media is sent in chunks, 5-10 sec of video data Content Server (CS) (3) Check latest software Version Server Peer 1 (2) First time: tracker provides with SN and CS addresses (1) Channel list Tracker Server Backend Server Graphics Server (4) SN sends list of nearby peers (5) SN assist in channel switching with Content server addresses Super Node (SN) Only bitmaps are exchanged not capability Peer 2 SN in Joost are only used for control traffic and not for media unlike Skype 27
Uses a Tree Structure PeerCast Tracker helps nodes select their parent nodes Transfer node, receives and transmits simultaneously Broadcast Server Tracker Server Peer initially requests broadcast server for connection, if it has idle capacity it will take the node as a child, or the server will choose at most 8 nodes of its children and answer. Transfer A There can be many layers of transfer and receivers Transfer B Receiver 1 Receiver 2 Receiver 3 Receiver 4 28 Conviva Tree structure, based on End-system multicast 2 protocols 1. For small scale conferencing applications with multiple sources 2. For SSM ESM maintains a single tree for overlay topology Parent selection algorithm to bootstrap a node Probing protocol for tree topology reconstruction and maintenance Alternate Control structure for gossip So that members are aware of a small random subset of group members http://www.cs.cmu.edu/~hzhang/talks/esmprinceton.pdf 29
PPLive Very popular in China Has two communication protocols 1. Registration/Peer-discovery protocol, Tracker Protocol 2. Chunk distribution protocol, Peer Protocol Tracker protocol Peer gets channel list from Channel server, [this is similar to Joost] Peer chooses channel and gets the peerlist from Tracker Peer protocol Contact peers and get more peerlists, these lists are aggregated to have a large list of peers In VoD, peers maybe watching different parts of the channel, peers cache content in a sliding window The window may contain recently played chunks as well as yet to be played chunks These bitmaps are exchanged, contains first chunk ID, size of buffer and which chunks are available. [this is done over UDP] 30 PPLive VoD Policy Top 10 peers contribute a significant amount of the download traffic However the top peer session is shorter than the video session duration Basically, it gets video from a few peers and switches periodically from one to another. A peer can send multiple chunk requests (to different chunks) to one peer at one time In PPLive a single peer can be the only video provider (delays maybe large but it will work) 31
PPStream Similar to PPLive, but typically uses TCP for data transfer [may use UDP but not common] Top ten peers do not contribute to a large part of the download traffic. Therefore, a peer gets video from many peers and the download session duration is long. A peer sends one chunk request to one peer at one time. 32 Sopcast Free application for both live content and VoD Team started in Dec 2004, Popular in china SopServer, webplayer, sopclient needs WMP or Real video player. Unregistered users can view, Registered viewers can broadcast Content is generated by users Typically users stream channels from their TV-tuners Mainly sports Advertise link on websites -> user clicks -> sopclient plays the content. Like PPLive, data transfer is mainly UDP, sometimes TCP Top 10 peers provide about half of the download traffic Needs more than 1 peer to get the video. 33
Goals of PPSP While receiving the stream Peer acquires a list of peers/parent from the Tracker [Mesh] Peer exchanges content availability with the list-peers [Tree] Peer requests to be adopted by the parent nodes [Mesh] Peer identify the peers with desired content [Tree] Peer identifies its parent Peer requests content from the identified peer/parent While sharing the stream Peer sends information to the tracker about the swarms it belongs to Moreover it sends the streaming status and/or content availability 34 PPSP 35
PPSP Model Tracker 1) query 2) Peer-list/ Parent node 4) Streaming Status, Content Availability Node capability 3) Content/ Peer 1 Peer 2 Join requests 36 Spotify Lightweight on-demand streaming Started 2006, went live in 2008 For mobile, PC, mac etc All examples until now have been mainly desktop based www.ietf.org/meeting/75/p2p-presentations/ documents/spotify-gunnar-kreitz.pdf 37
Content Delivery over HTTP Streaming Audio Format: Vorbis q5 (~160kbps), q9 (~320kbps = paid user ) Uses: Spotify Servers Peers Designed for random access streaming rather than live Latency kills Spotify P2P Goals Minimize Bandwidth and Equipment cost for itself Avoid Stutter (esp. at the beginning), Minimize Latency [trade-off] Most Spotify playbacks start within a few hundred milliseconds 38 (Almost) Everything over TCP Network Protocol (Almost) Everything encrypted Multiplex data over a single TCP connection Persistent TCP connection to server while logged in Request first pieces from Spotify servers Meanwhile, search peers for remainder of the track Switch back and forth when needed Towards end start pre-fetching [use measurements] 39
P2P structure Mesh structure, nodes have fixed maximum degree No overlay routing Peers only download what is needed Weak clustering based on interest Neighbor eviction based on heuristics 40 Finding Peers: Napster like, central index Gnutella like, local knowledge P2P (2/2) Limited broadcast for local peer discovery P2P NAT traversals using UPnP Attempts connection in both directions Rather high failure rate [IETF75] TCP throughput varies Sensitive to packet loss Bandwidth over wireless mediums vary Model throughput as a Markov chain and simulate 41
Current Work http://tools.ietf.org/html/rfc5594, Report from the IETF Workshop on Peer-to-Peer (P2P) Infrastructure, May 28, 2008 http://tools.ietf.org/html/draft-zhang-ppsp-problem-statement-06, Problem Statement of P2P Streaming Protocol http://tools.ietf.org/search/rfc5694, Peer-to-Peer (P2P) Architecture: Definition, Taxonomies, Examples, and Applicability 42