180 likes | 331 Views
Lava: A Reality Check of Network Coding in Peer-to-Peer Live Streaming. Mea Wang, Baochun Li Department of Electrical and Computer Engineering University of Toronto Infocom 2007. Question?. How helpful is networking coding in peer-to-peer streaming? Network coding
E N D
Lava: A Reality Check of Network Coding in Peer-to-Peer Live Streaming Mea Wang, Baochun Li Department of Electrical and Computer Engineering University of Toronto Infocom 2007
Question? • How helpful is networking coding in peer-to-peer streaming? • Network coding • Realistic testbed, Lava • With actual network traffic • P2P streaming, Vanilla • Pull-based peer-to-peer live streaming protocol
Network Coding • Originally proposed in information theory • Theoretically improve network throughput of multicast sessions in directed acyclic graphs, achieving their cut-set capacitybounds. directed acyclic graph • A promising information theoretic approaches to improve performance in peer-to-peer and wireless networks
Why Network Coding? • Node B • Packet 1 or Packet 2? • Packet 1 : • Link between node B and node C can not be used • Packet 2 : • Without any knowledge of the transfers in the rest of the network • Which is the right packet? • Node B download a linear combination of packets 1 and 2 from A • Can be used with Node C Network Coding benefits when nodes only have local information.
Lava • Experimental testbed of network coding in peer-to-peer live streaming • Lava: Architecture • Lava: Steaming with Vanilla • Lava: Progressive network coding
Lava: Architecture • A cluster of 44 high-performance servers • Interconnected by Gigabit Ethernet • Emulating upload bandwidth capacities on each peer at the application layer
Lava: Streaming with Vanilla • A standard peer-to-peer streaming protocol • Data-driven pull-based peer-to-peer protocol
Lava: Progressive Network Coding • Randomize network coding : • a segment Is divided into n blocks • Randomly chooses a set of coding coefficients
Lava: Progressive network coding • Progressive decoding • Using Gauss-Jordan elimination instead of Gaussian elimination • It can start to decode as soon as the first coded block is received • The decoding time overlaps with the time required to receive the original block. • Reduced row-echelon form (RREF)
Experimental Result • With network coding • Decoding BW decreases faster than the encoding BW as the number of blocks increases. • Make decoding process the bottleneck of network coding in the streaming process. • Support a wide range of streaming rates (100kB – 8MB per second)
Experimental Result • With / without network coding • Transmission time: the time required to completely receive a segment • Recovery time: the time spent in the decoding process to recover the original blocks after all blocks have been received. The computational overhead of Gauss-Jordan elimination Decoding times are almost completely concealed within the time required to receive the segment
Experimental Result • Tuning density and aggressiveness : • Density: the ratio of none-zero entries in the set of coding coefficients d(0<d<1) • The lower coding density leads to a smaller number of blocks being coded, which reduces the coding complexity. • Aggressiveness: the peer starts producing and serving new coded blocks after a*n (0<a<1) coded blocks has been received. • A lower aggressiveness setting leads to more “supply “ of coded blocks.
Experimental Result • playback quality: • Playback skips: • Bandwidth redundancy: the percentage of discarded blocks (due to linear dependence or obsolescence) insignificant The best playback is achieved when both aggressiveness and density are 100% For typical streaming rates (e.g., 64 KB per second), the aggressiveness and density settings do not have significant effect on the playback quality and bandwidth redundancy.
Experimental Result • Three different streaming rate: • Supply > demand • Supply ~= demand • Supply < demand Better when a closes match between supply and demand Peers may be served by multiple randomly selected upstream peers that have coded blocks of the requested segment. Network coding makes it possible to perform data streaming with finer granularity, so that the impact of a bandwidth supply shortage is significantly less severe.
Experimental Result • Balance between bandwidth supply and demand The buffering levels with network coding increases slowly at the beginning of a session, due to processing overhead of coded blocks. (increasing initial peers)
Experimental Result • Scalability • Add one peer on each server at a time Though network coding doesn’t improve the playback quality in static sessions, it reduces the amount of redundancy with respect to bandwidth usage.
Peer Dynamic • Interarrival times of peer join events and peer lifetimes are modeled as a Weibull distribution (k,λ), • with a PDF • Shape parameter k, scale parameter λ Without initial skips Slow increase of buffering levels at the beginning of a session Better performance with network coding, especially when peers depart at a faster rate. With initial skips
Peer Dynamic Although Vanilla enjoys a better overall playback, its buffering level fluctuates significantly More stable and better performance in higher churn rate. Despite initial skips, network coding demonstrates its resilience to network dynamics, without incurring any additional bandwidth.