# Survey of Network Coding Based P2P File Sharing in Large Scale Networks
## 4 Network Coding Based P2P File Sharing Systems
### Generation Based Coding
\begin{table}
\begin{tabular}{p{56.9 pt} p{56.9 pt} p{56.9 pt} p{56.9 pt} p{56.9 pt} p{56.9 pt}} \hline \hline
**Reference** & **Approach** & **Main Findings** & **Verification Method** & **Network Topology** & **Performance Metrics** \\ \hline \multirow{8}{*}{[PERSON] et al. [56] formulas} & Proposing sparse coding encodes/decodes faster than full coding and slightly downloads faster than baseline BitTorrent. based on stochastic formulas. & -Sparse coding encodes/decodes faster than full coding and slightly downloads faster than baseline BitTorrent. & \multirow{4}{*}{Implementation} & \multirow{4}{*}{Chord overlay} & - Encoding/decoding rate. \\  & Proposing sparse network coding based on stochastic formulas. & & & & - Download time. \\  & & & & & \\  & & & & & \\  & & & & & \\  & & & & & \\ \hline \multirow{8}{*}{[PERSON] et al. [57]} & Proposing sparse coding such that each encoded piece of two adjacent original pieces. & - Paircoding relatively decodes pieces as good as BitTorrent, and for some scenarios, in achieves the piece diversity of full coding. & \multirow{4}{*}{Mesh} & \multirow{4}{*}{- Decoding rate. - Content availability.} \\  & Proposing sparse coding such that each encoded piece of two adjacent original pieces. & - Fixing the choice of the two original pieces yields to faster decoding. yet affects the piece diversity. & No experimental work & & \\ \hline \multirow{8}{*}{[PERSON] et al. [18]} & Analyze Avalanche and Pairocling and propose a Fixed-Faireding with considering the rarest first scheduling policy. & - Achieves both fast decoding upposed to Avalanche and wide piece diversity opposed to Pairocling. & \multirow{4}{*}{Numerical Simulation} & \multirow{4}{*}{Mesh} & - Content availability. - Control overhead. \\ \cline{1-1} \cline{5-5}  & Proposing sparse coding by modeling encoded pieces as full binary tree & - Allowing encoding only in the seed, yields to worse pieces availability. On the other hand, much complexity. & \multirow{4}{*}{Mesh} & \multirow{4}{*}{- Content availability. - Control overhead. - Download time.} \\ \cline{1-1} \cline{5-5}  & Proposing sparse coding by modeling encoded pieces as full binary tree & - Allowing encoding only in the seed, yields to worse pieces availability. On the other hand, dynamic encoding yields to much complexity. & \multirow{4}{*}{-} & \multirow{4}{*}{-} \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Sparse network coding approaches and their characteristics. in a high diversity, the local-rarest-first scheduling algorithm is applied at the generation level as follows: each peer presents a list of the number of pieces in each generation within every neighbor. Periodically, this information is exchanged among the peers and updated. Among the generations which still need pieces to be decoded, the requester can choose the rarest generation based on that list and then pull a piece in that generation from the sender. If there is more than one rarest generation, a generation is randomly selected among them. After collecting all the pieces in one generation, the receiver can reconstruct the original pieces of the generations. The authors argue that this scheme improves the encoding/decoding speed and there is no need to use sparse network coding that is used within Pairooding. However, this claim is not supported. To evaluate the performance of Swifter, the authors compare Swifter with [66] denoted by \"R-push\" and another scheme that is a modified version of Swifter yet with random scheduling denoted by \"R-Swifter\". The results show that Swifter can enhance the average download time by at most 40% compared to R-push and by at most 6% compared to R-Swifter. Since Swifter is a pull-based scheme, it still incurs moderate control messages overhead. [PERSON] et al. [62] propose an improved Swifter, denoted by I-Swifter, in an attempt to improve generation-based network coding by reducing the control messages overhead and eliminating the distribution of encoding vectors.