A Survey of Peer-to-Peer Content Distribution TechnologiesSTEPHANOS ANDROUTSELLIS-THEOTOKIS AND DIOMIDIS SPINELLISAthens University of Economics and BusinessDistributed computer architectures labeled “peer-to-peer” are designed for the sharingof computer resources (content, storage, CPU cycles) by direct exchange, rather thanrequiring the intermediation or support of a centralized server or authority.Peer-to-peer architectures are characterized by their ability to adapt to failures andaccommodate transient populations of nodes while maintaining acceptable connectivityand performance.Content distribution is an important peer-to-peer application on the Internet thathas received considerable research attention. Content distribution applicationstypically allow personal computers to function in a coordinated manner as a distributedstorage medium by contributing, searching, and obtaining digital content.In this survey, we propose a framework for analyzing peer-to-peer contentdistribution technologies. Our approach focuses on nonfunctional characteristics suchas security, scalability, performance, fairness, and resource management potential, andexamines the way in which these characteristics are reflected in—and affected by—thearchitectural design decisions adopted by current peer-to-peer systems.We study current peer-to-peer systems and infrastructure technologies in terms oftheir distributed object location and routing mechanisms, their approach to contentreplication, caching and migration, their support for encryption, access control,authentication and identity, anonymity, deniability, accountability and reputation, andtheir use of resource trading and management schemes.Categories and Subject Descriptors: C.2.1 [Computer-Communication Networks]:Network Architecture and Design—Network topology;C.2.2 [Computer-Communication Networks]: Network Protocols—Routing protocols;C.2.4[Computer-Communication Networks]: Distributed Systems—Distributeddatabases; H.2.4 [Database Management]: Systems—Distributed databases; H.3.4[Information Storage and Retrieval]: Systems and Software—Distributed systemsGeneral Terms: Algorithms, Design, Performance, Reliability, SecurityAdditional Key Words and Phrases: Content distribution, DOLR, DHT, grid computing,p2p, peer-to-peer1. INTRODUCTIONA new wave of network architectureslabeled peer-to-peer is the basis ofoperation of distributed computingAuthors’ address: Athens University of Economics and Business, 76 Patission St., GR-104 34, Athens, Greece;email: [email protected] to make digital or hard copies of part or all of this work for personal or classroom use is grantedwithout fee provided that copies are not made or distributed for profit or direct commercial advantage andthat copies show this notice on the first page or initial screen of a display along with the full citation.Copyrights for components of this work owned by others than ACM must be honored. Abstracting withcredit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use anycomponent of this work in other works requires prior specific permission and/or a fee. Permissions may berequested from Publications Dept., ACM, Inc., 1515 Broadway, New York, NY 10036 USA, fax: +1 (212)869-0481, or [email protected]2004 ACM 0360-0300/04/1200-0335 $5.00systems such as [Gnutella 2003], Seti@Home [SetiAtHome 2003], OceanStore[Kubiatowicz et al. 2000], and manyothers. Such architectures are gener-ally characterized by the direct sharingACM Computing Surveys, Vol. 36, No. 4, December 2004, pp. 335–371.336 S. Androutsellis-Theotokis and D. Spinellisof computer resources (CPU cycles, stor-age, content) rather than requiring the in-termediation of a centralized server.The motivation behind basing appli-cations on peer-to-peer architecturesderives to a large extent from their abilityto function, scale, and self-organize inthe presence of a highly transient popu-lation of nodes, network, and computerfailures, without the need of a centralserver and the overhead of its adminis-tration. Such architectures typically haveas inherent characteristics scalability,resistance to censorship and centralizedcontrol, and increased access to resources.Administration, maintenance, respon-sibility for the operation, and even thenotion of “ownership” of peer-to-peer sys-tems are also distributed among the users,instead of being handled by a single com-pany, institution or person (see also Agre[2003] for an interesting discussion of in-stitutional change through decentralizedarchitectures). Finally, peer-to-peer archi-tectures have the potential to acceleratecommunication processes and reducecollaboration costs through the ad hoc ad-ministration of working groups [Schoderand Fischbach 2003].This report surveys peer-to-peer con-tent distribution technologies, aiming toprovide a comprehensive account of ap-plications, features, and implementationtechniques. As this is a new and (thank-fully) rapidly evolving field, and advancesand new capabilities are constantly beingintroduced, this article will be present-ing what essentially constitutes a “snap-shot” of the state of the art around thetime of its writing—as is unavoidably thecase for any survey of a thriving researchfield. We do, however, believe that thecore information and principles presentedwill remain relevant and useful for thereader.In the next section, we define the basicconcepts of peer-to-peer computing. Weclassify peer-to-peer systems into threecategories (communication and collab-oration, distributed computation, andcontent distribution). Content distribu-tion systems are further discussed andcategorized.We then present the main attributes ofpeer-to-peer content distribution systems,and the aspects of their architectural de-sign which affect these attributes are an-alyzed with reference to specific existingpeer-to-peer content distribution systemsand technologies.Throughout this report the terms“node”, “peer” and “user” are used inter-changeably, according to the context, to re-fer to the entities that are connected in apeer-to-peer network.1.1. Defining Peer-to-Peer ComputingA quick look at the literature reveals a con-siderable number of different definitionsof “peer-to-peer”, mainly distinguishedby the “broadness” they attach to theterm.The strictest definitions of “pure” peer-to-peer refer to totally distributed sys-tems, in which all nodes are
View Full Document