Network coding in live peer-to-peer streaming
In recent literature, network coding has emerged as a promising information theoretic approach to improve the performance of both peer-to-peer (P2P) and wireless networks. It has been widely accepted and acknowledged that network coding can theoretically improve network throughput of multicast sessions in directed acyclic graphs, achieving their cut-set capacity bounds. Recent studies have also supported the claim that network coding is beneficial for large-scale P2P content distribution, as it solves the problem of locating the last missing blocks to complete the download. We seek to perform a reality check of using network coding for P2P live multimedia streaming. We start with the following critical question: How helpful is network coding in P2P streaming? To address this question, we first implement the decoding process using Gauss-Jordan elimination, such that it can be performed while coded blocks are progressively received. We then implement a realistic testbed, called Lava, with actual network traffic to meticulously evaluate the benefits and tradeoffs involved in using network coding in P2P streaming. We present the architectural design challenges in implementing network coding for the purpose of streaming, along with a pull-based P2P live streaming protocol in our comparison studies. Our experimental results show that network coding makes it possible to perform streaming with a finer granularity, which reduces the redundancy of bandwidth usage, improves resilience to network dynamics, and is most instrumental when the bandwidth supply barely meets the streaming demand.
network coding multimedia streaming peer-to-peer networks