Performance Improvements of Peer-to-Peer File Sharing
Dongyu Qiu · Multimedia · 2010
In recent years, Peer-to-Peer (P2P) applications, in which peers serve as both clients and servers, have changed the Internet dramatically. Compared to traditional client/sever applications (such as FTP, HTTP), P2P systems normally have much better scalability. The performance of client/server applications deteriorates rapidly as the number of clients increases, while in a well-designed P2P system, more peers generallymeans better performance. Among all the P2P applications, file sharing has been one of the most popular. Traffic from P2P file sharing applications, such as Kazaa, Gnuttella, eDonkey, and BitTorrent (Cohen, 2003), has been dominating the Internet bandwidth in recent years. In this chapter, we will focus on the performance improvements of BitTorrent networks. The performance of a BitTorrent network is affected by many factors. For example, howmany pieces the served file is divided? How many neighbors a given peer has? Are peers cooperative or not? etc. In this chapter, we will try to improve the performance of a BitTorrent network from two aspects. Firstly, we assume that all peers in the network are cooperative, i.e., peers are willing to contribute by uploading. Under this assumption, we propose a stochastic model to study how to design an efficient P2P system. Secondly, we relax the cooperation assumption and study how to prevent selfish peers from free-riding. In BitTorrent, there are two built-in mechanisms to prevent free-riding. However, they are not very efficient. In this chapter, we will focus on one of the mechanisms called “optimistic unchoking” and discuss how its performance can be improved. In a P2P network, if a peer is cooperative, it contributes to the network through uploading and hence it is important to efficiently utilize the upload bandwidth of each peer. The number of pieces that a given peer has is an important factor that affects the upload bandwidth utilization. For example, when a peer first enters the network, it has no pieces at all and hence can not upload to anyone. The upload bandwidth utilization is 0 in this case. On the other hand, when a peer has most of the pieces, it is very likely that it can upload to others and hence the utilization is close to 1. Motivated by this fact, we will propose a stochastic model to study the peer distribution with regards to the number of pieces that a peer has. More specifically, we are interested in Pi, which is the probability that a random peer has i pieces, where 0 ≤ i ≤ N and N is the total number of pieces of the served file. Note that in BitTorrent, peers that have the whole file are called seeds, while other peers are called downloaders. By numerically solving the proposed model, we will be able to gain interesting insight on how the performance of a P2P file sharing network is affected by different parameters such as the piece numbers of the