P2P streaming with LT codes: a prototype experimentation

download P2P streaming with LT codes: a prototype experimentation

of 37

  • date post

    23-Feb-2016
  • Category

    Documents

  • view

    14
  • download

    0

Embed Size (px)

description

P2P streaming with LT codes: a prototype experimentation . Andrea Magnetto, Rossano Gaeta , Marco Grangetto, Matteo Sereno Computer Science Department, University of Torino, Italy - PowerPoint PPT Presentation

Transcript of P2P streaming with LT codes: a prototype experimentation

  • *P2P streaming with LT codes: a prototype experimentation Andrea Magnetto, Rossano Gaeta , Marco Grangetto, Matteo Sereno

    Computer Science Department, University of Torino, Italy

    AVSTP2P (ACM Workshop on Advanced video streaming techniques for peer-to-peer networks and social networking), October 29, 2010

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental results Conclusions and future work

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental resultsConclusions and future work

  • *MotivationsP2P + Video Streaming + Rateless codesReal-time multicast over P2P network is promising application startup delay, latency, security, ISP friendliness Coding techniques can improve the efficiency of content distribution M. Wang, B. Li, R2: Random push with random network coding in live p2p streaming, IEEE JSAC, Dec. 2007. W. Chuan, B. Li, rStream: resilient and optimal p2p streaming with rateless codes, IEEE Trans. on Parallel and Distributed Systems, Jan. 2008.http://www.powercam.cc/slide/6391

  • *MotivationsRateless codes LT codes, Raptor codes Packet level coding by simple XOR Random coded packets are generated on the fly (rateless) Optimal (asymptotically zero overhead) Low complexity encoder/decoder M. Luby, LT codes, IEEE Symposium on Foundations of Computer Science, 2002.

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental resultsConclusions and future work

  • *Luby Transform (LT) Codes:Encoding process:For the ith encoded packet, select degree di by carefully chosen Degree Distribution (Robust Soliton Distribution).Choose di source data.Perform XOR on chosen data.Decoding process:Decode degree-one encoded packets.Remove degree-one edges iteratively.

    *x1x2x3x4x5y1y2y3y4y5x1x3x2x2x5x4x6x3x5x6

    LT Codes

  • *LT codes applications Data dissemination with rateless codes is well suited for broadcasting (3GPP MBMS, DVB-H) Application to overlay networks not straightforward connections with network coding

  • *LT codes & overlay networks LT codes for overlay networks Simple push approach for data distribution Does not require content reconciliation Robustness to peer churning and losses Additional complexity & memory Coding may introduce additional delay Starting from our previous work this paper presents the development and evaluation of a live P2P streaming application based on LT codes [4] M. Grangetto, R. Gaeta, and M. Sereno. Rateless codes network coding for simple and efficient P2P video streaming. In IEEE ICME, 2009.

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental resultsConclusions and future work

  • *ToroVerde architecture Video is organized in a sequence of chunks 1 chunk = k packetsk = 120, packet size = 1328 bytesindependently decodable video units composed of the video packets corresponding to a GOP encoded by the AVC/H.264 encoder each chunk is coded using LT codes

  • *ToroVerde architectureLT codes rise tolerance to packet loss UDP based TFRC[3] used to control sending rates LT code introduce delays (chunk coding only after complete decoding) Early coded packet relaying (lesson learned from our previous work) [4]To avoid loops of duplicated coded packets Coded packets are relayed only once Bloom filter[2] (32 bits, 3 hash functions in the header of each coded packet) to store the path already followed

    [2] A. Broder and M. Mitzenmacher. Network applications of bloom filters: A survey. Internet Mathematics, 1(4):485509, 2005.[3] S. Floyd, M. Handley, J. Padhye, and J. Widmer. RFC 5348, TCP Friendly Rate Control (TFRC): Protocol Specification, Sep 2008.

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental resultsConclusions and future work

  • *ToroVerde architecture : overlay layer goal: to form the logical network the cast: tracker, video server, peer the part played by the tracker store the addresses of the peers respond to peers requests the part played by the video server accept connection requests up to a maximum number deliver packets of LT coded chunks to its neighbors the part played by the peer contact the tracker get a random subset of peers send a contact message to all peers returned by the tracker send keep-alive messages to neighbors and tracker

  • *ToroVerde architecture : overlay layera peer is removed from the neighbor list it does not send keep-alive messages for some time it sends an explicit quit message maximum number of neighbors refuse additional connection requests minimum number of neighbors contact the tracker for more neighbors

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental resultsConclusions and future work

  • *ToroVerde architecture : content distribution layer goal: maximize upload bandwidth utilization and minimize duplicated packets using Bloom filters dynamic buffer, B, to store (video) chunks chunks are ordered according to their sequence number (Bfirst and Blast ) state of a chunk (peer internal) empty, partially decoded, decoded a peer decodes a chunk, a STOP_CHUNK message is signaled to all its neighbors that in turn stop sending coded packets of that chunk

  • *ToroVerde architecture : content distribution layerEvery peer keeps a buffer map BMp for each neighbor pbinary representation of useful chunks algorithm to keep track of useful chunks a peer removes a chunk from B when it is not useful for all of its neighbors (info from buffer maps) the player has already consumed it if it is the eldest Bfirst is incremented

  • *ToroVerde architecture : content distribution layercoded packets are pushed to a subset of neighbors (the enabled set) it is periodically refreshed every 1 scardinality of the enabled set is dynamically adapted depending on the upload bandwidth strategy is borrowed from BitTorrent (worst enabled replaced by a random peer)

  • *ToroVerde architecture : content distribution layerUpload bandwidth is fully utilized when pushing fresh coded packet obtained from decoded chunks a coded packet of a partially decoded chunk can be shared only once thus limiting the outgoing throughput decoding time of a peer DT, defined as the highest sequence number of the chunks in B whose state is decoded, minus the number of partially decoded chunks in B A peer has the highest DT if it has already decoded the most recent chunk without partially decoded chunks in the middle.

  • *ToroVerde architecture : content distribution layerLead Index (LI) defined as the difference between the peer DT and the average DT in its neighborhoodEvery peer estimates LI based on the knowledge of the BMs of its neighbors. The leaders are peers whose upload bandwidth capacity at least doubles the video bitrate and whose LI is larger than a predefined threshold l (=6)The remaining are termed followers Leader rank neighbors based on their LI thus preferring to enable other leaders, i.e. giving greater priority to the peers that need rarer chunksFollowers rank neighbors based on the number of coded packets uploaded in the last 20 s (tit-for-tat mechanism)

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental resultsConclusions and future work

  • *ToroVerde architecture : video buffer layer goal: to select the decoded chunks in B to be forwarded to the player the player is started for the first time when the number of decoded chunks in a row reaches the threshold startup_chunks (=12)decoded chunks are periodically sent to the player buffering if the number of decoded chunks in B falls below the threshold start_buffering (=2) until the number of decoded chunks exceeds the threshold end_buffering (=8)dropping LI is used to detect if a peer is experiencing a high decoding delay compared to its neighbors. if LI is below a negative threshold d (=-6) the eldest partially decoded chunk in B is dropped (STOP_CHUNK messages to the neighbors)

  • *ToroVerde architecture : video buffer layerSVC where different video layers are conveyed by separated chunks buffering works as usual by monitoring only the chunks of the BL(Base Layer) dropping is applied to EL(Enhancement Layer) chunks with higher priority w.r.t. BL

  • *OutlineMotivations Introduction to rateless codes LT codes ToroVerde architecture Overlay layer Content distribution layer Video buffer layer Experimental resultsConclusions and future work

  • *Experimental resultsHow to evaluate performance of ToroVerde Continuity Index (CI)the fraction of video packets retrieved by a peer before the corresponding playback deadline Preview delay Startup delay System parameters Video bitrate (in Kbps) Video server upload bandwidth (in Kbps) Upload bandwidth distribution (yielding the Resource Index (RI), i.e., the ratio between the average upload bandwidth and the video bitrate) Arrival and departure patterns Number of peers

  • *Experimental resultsHow to compare ToroVerde against other proposals? BIG problem if prototypes are not freely available! Often only simulation studies When PlanetLab experiments are conducted full information on system parameters are unknown or not