Performance improvements to peer-to-peer file transfers using network coding.
A common peer-to-peer approach to large data distribution is to divide the data into blocks. Peers will gather blocks from other peers in parallel. Problems with this approach are that each peer must know which blocks other peers have available, and in some instances it may not be possible to complete a download if certain blocks are not available in the network. Network coding, a method of distributing data over a peer-to-peer network by employing linear algebra, addresses these issues but comes with a substantial computational overhead. We examine possibilities for mitigating this extra computational cost through reduction of number of operations required to perform matrix multiplication in a finite field, by taking advantage of the small number of elements in the field and precomputing results. We evaluate our approach through simulation and demonstrate that it may serve to allow for faster transfer times on a more robust peer-to-peer network.