Analysis of Optimal Piece Flow in Tit-for-Tat-Based P2P Streaming

Masahiro SasabeX

In Computer Networks, 2018

Abstract

BitTorrent, which is one of the successful Peer-to-Peer~(P2P) file distribution systems, adopts the tit-for-tat~(TFT) strategy in game theory to encourage cooperation among peers, i.e., each peer has to provide fragments of the original file, called pieces, to others so as to retrieve its demanding pieces from them. Because the TFT strategy can restrict free riding behavior of peers, there are also several TFT-based P2P streaming systems and the performance of such existing systems has been analyzed. However, optimal piece flow in TFT-based P2P streaming has not been revealed yet. In this paper, a discrete-time model of TFT-based P2P streaming is first developed and integer linear programming~(ILP) is formulated to determine the optimal piece flow where the average play-out delay is minimized. By solving the ILP using existing solver, i.e., CPLEX, we can obtain numerical examples of optimal piece flow. The analysis of obtained optimal piece flow reveals that (1) optimal piece selection is based on the balance between in-order piece retrieving and the rarest-first piece retrieving, (2) optimal peer selection depends on the upload capacities of peers and the stage of streaming, (3) the number of pieces does not affect the system performance, (4) the maximum play-out delay can be bounded by the ratio of the number of peers to the server's upload capacity, and (5) how the relaxation of TFT constraint can improve the system performance.

Downloads

Text Reference

Masahiro Sasabe. Analysis of Optimal Piece Flow in Tit-for-Tat-Based P2P Streaming. Computer Networks, 139, pp.60-69, July 2018.

BibTex Reference

@article{sasabe18AnalysisOptimalPiece,
    author = "Sasabe, Masahiro",
    title = "Analysis of {{Optimal Piece Flow}} in {{Tit}}-for-{{Tat}}-{{Based P2P Streaming}}",
    year = "2018",
    month = "July",
    volume = "139",
    pages = "60--69",
    doi = "10.1016/j.comnet.2018.04.004",
    journal = "Computer Networks"
}