3BitTorrent: Incentive Question: What is the incentive to provide higher upload rate?Answer: To get file fasterImplementation: Tit-for-tat mechanism. Search for trading partners that upload to you at higher rates
4BitTorrent: TradingAlice measures rate she receives bits from each neighbor.Alice sends chunks to four best neighbors.Every 10 seconds, she recalculates rates & possibly modifies set of four peers.Every 30 seconds, she “optimistically unchokes” random peer.
5BitTorrent: Trading (1) Alice “optimistically unchokes” Bob (2) Alice becomes one of Bob’s top-four providers; Bob reciprocates(3) Bob becomes one of Alice’s top-four providersWith higher upload rate, can find better tradingpartners & get file faster!
6Basic idea P2P live streaming trackerobtain listof peerspeertradechunksSourceof video
7Incentives for Live Streaming Why upload at all?Currently no tit-for-tat mechanism in existing deploymentsIs tit-for-tat a sufficient incentive?No! Why provide more upload bandwidth if you’re receiving the video at the full rate?Our main idea:If you upload more, you get better quality.
8Layered Video Single layer Video Layered video All peers receive the same video qualityLayered videoA video is encoded into several layersMore layers introduce better video qualityNested dependence between layersHigher upload contribution results in better received video quality
9Layered Video w/ Tit-for-Tat Generate multiple layers, each divided into layer chunks (LCs)Exchange LCsMeasure download rates from neighborsReciprocate to neighbors based on their contributions
10Supplier & Receiver Side Schedulers Supplier: How to allocate uplink bandwidth to neighbors?BitTorrent roughly gives each unchoked neighbor an equal share.Receiver: How to maximize the received video qualityMultiple LCs are to be requested
11Supplier Side Scheduler Goal: Supply neighbors in proportion to their contributionsMeasure the download rates, dk from neighbor kMaintain separate FIFO rqst queue for each neighborServe neighbor k next with probability:
12Receiver Side State Request LCs at beginnings of rounds Can request in a window up to B chunks into future
13Receiver Side Scheduler (1) Goal: Maximize the received video qualityWhich LC should be requested first?Assign heuristic “importance” to each LC, taking into account:Layer indexPlayback deadlineRarenessRequest LCs from the highest importance to the lowest importance
14Receiver Side Scheduler (2) Where to send the request for the LC?Estimate the current delay from each neighbor:where mk is # of outstanding requests, r is video rate, Δis chunk lengthSend request to neighbor that will send it firstAs long as it can come before deadline
15Performance Study: Schemes Single layer video without incentives (Single-Layer)Layered video without incentives (Layered)MDC with incentives (MDC-Incent)Layered video with incentives (Layered-Incent)
16System Setup Peers Video Overlay Ethernet peer: 1000 kbps; cable peer: 300 kbps;free-rider: 0 kbpsFix ratio of Ethernet peers to cable peers: 3:7; change percentage of free-ridersVideoForeman video sequence (CIF, 30 frames/sec)SVC video codec20 layers, with each layer having a rate of 50 kbpsOverlayEach peer has 14 to 18 neighborsRandomly replace worst neighbor every 30 seconds
17Performance Metrics Useful rate received (R) Discontinuity ratio (α) The bits that are useful for video decodingDiscontinuity ratio (α)The percentage of time that a video is undecodable and unplayableAverage PSNR (Q)Received video quality
18Differentiated Service Peers with high upload contributions receive better video quality;Peers with low contributions receive relatively low but still acceptable video quality;Free-riders receive unacceptable video quality.
19Free-RidingReceived video quality does not degrade with free-riding
20Conclusion A decentralized incentive mechanism for video streaming Performance studies show that the scheme canProvide differentiated video quality commensurate with a peer’s contributionLargely prevents free-riders