Peer-to-Peer Systems Comp 4.14: Distributed Systems Individual Research Report Ross Shannon {01539035} Abstract In this report we will give an overview of peer-to- peer systems, with a look at a number of peer-to- peer infrastructures that have been developed and put into widespread operation. We will compare and contrast four specific systems and point out their respective benefits and failings. Contents 1 Introduction 1 2 System Case Studies 2 2.1 Gnutella ................ 2 2.1.1 Critical Analysis ....... 2 2.2 Pastry ................. 3 2.3 Chord ................. 3 2.4 BitTorrent ............... 4 2.4.1 Critical Analysis ....... 4 1 Introduction Peer-to-peer (“P2P”) networks are those dis- tributed networks which are made up of an arbi- trary number of similarly-powered machines. In the early days of computing, it was common that all computing power would be centred on a compara- tively small number of very powerful servers. Users would use the services made available through rudimentary machines (often called “dumb termi- nals”), which frequently had little or no computing power of their own. A decade later, computers de- signed for home use became a better match, power- wise, for these servers, and the relationship became known as a client-server transaction. Peer-to-peer networks decentralise control away from a single server, and place all computers con- nected together on a more level field. This means that the computation, storage space and bandwidth costs involved in transferring files between the com- puters on a file-sharing network are distributed across a number of computers, vastly increasing the scalability [1] and performance [2] of the network. In these networks, any computer (a “peer”) can ini- tiate a download from another, and the peer that receives the download request should react accord- ingly and begin uploading the requested file. This communication is symmetric, essentially making all peers function as both clients and servers simulta- neously. P2P networks are generally designed to embrace ad-hoc ness [3], thus allowing computers to join and leave a network as they require, with the overall health of the network left more or less unchanged. As more peers join the network, the files that they each store locally are searched for and downloaded, thus becoming replicated throughout the network [4], increasing the robustness of the file store and 1