60 PIK 26 (2003) 2 K.G. Saur Verlag, München, 2003 A. Mauthe and D. Hutchison ABSTRACT Peer-to-peer is a technology concept applied at different levels of the systems architecture. Its main characteristics are direct interaction and data exchange between peer systems. It is the basis for decentralised distributed computing. The concept is widely deployed in different contexts and no formal definition exists. This paper gives an overview of the different areas peer- to-peer technology is used and introduces the main character- istics of peer-to-peer systems. It also discusses the issues and problems encountered when deploying peer-to-peer technol- ogy. 1 INTRODUCTION Peer-to-peer (P2P) has become a buzzword that subsumes concepts used in communication technologies, distributed sys- tem models, applications, platforms, etc [1] [2]. It is not a partic- ular initiative, nor architecture or specific technology; it rather describes a set of concepts and mechanisms for decentralised distributed computing and direct peer-to-peer information and data interchange. Peer-to-peer mechanisms can be found at different level of the system architecture. Most prominent at present are peer-to-peer applications for content and informa- tion exchange in the Internet such as Napster, Gnutella and eDonkey [1] [2] [4] [5]. Although the term peer-to-peer refers to a number of generic ideas and mechanisms, the idea of peer-to-peer is applied in different contexts and hence peer-to-peer systems do not nec- essarily have many characteristics in common; neither do they have to adhere to a determined set of attributes. A formal defi- nition of peer-to-peer computing does not exist. However, there are features many peer-to-peer systems share (such as the lack of a fixed hierarchical client server relationship, the auton- omy of the peering (sub)-systems, the fact that they have inde- pendent lifetimes, and the direct information exchange between peers). The peering structure allows resource sharing between the participating entities. Resources in this context can be com- putational resources (such as processing cycle, bandwidth or storage space) and data resources (e.g. content files). The peer-to-peer technology can help to reduce system costs and allows cost sharing by using existing infrastructures and bundling resources from different sites. Resource aggregation adds value beyond the mere accumulation of resources. Peer- to-peer systems are for instance more resilient because of their distributed and non-hierarchical nature. Peer-to-peer technol- ogy and its potential is still being discussed (cf. [1] [6]). How- ever, there is a clear indication that peer-to-peer technology can have considerable impact on applications and distributed sys- tems. Although the concept of peer-to-peer has been around for a long time (e.g. it has been used in the Internet since its inven- tion) only with the advent of peer-to-peer applications it gained a larger visibility and became more widely known. Therefore peer-to-peer is very often associated with applications more than with technical concepts. In the following peer-to-peer computing is discussed and struc- tured according to the different areas of peer-to-peer concepts are applied in. Subsequently the characteristics of peer-to-peer computing are discussed. This discussion states the character- istics that are regarded as the key features of peer-to-peer sys- tems. 2 PEER-TO-PEER AREAS The areas the concept of peer-to-peer is currently most heavily used is file and content sharing, collaboration support, distrib- uted computing, communication and platforms. It can be found in methods, algorithms and communication schemes. 2.1 Peer-to-Peer File and Content Sharing Applications Among the systems that feature most prominent in the peer-to- peer domain are user applications running on top (or at the edge) of the Internet allowing a large group of users to interact and share resources. Most popular are file or content sharing applications such as Napster, Gnutella, Mojo Nation, eDonkey and Freenet. Napster was the first major system enabling the direct exchange and sharing of content. While the actual ex- change of content in Napster is between peers, the discovery of the peers, however, is highly centralised (i.e. it is stored in a central directory) [2] [4]. Gnutella provides a purely distributed file sharing solution with- out a central node. In the strict sense Gnutella is not an appli- cation but a protocol used to search for and share files. To find content and other peers a user has to know the IP address of at least one other Gnutella node 1 . A node issues a query for a file 1 Other Gnutela nodes are published on a Web site. Hence there is an im- portant component that does not use peer-to-peer technology within the context of Gnutella. * Andreas Mauthe, David Hutchison, Computing Department, Lancaster University, Lancaster LA1 4YR, UK, Email: (andreas, dh)@ comp.lancs.ac.uk Brought to you by | University of Queensland - UQ Library Authenticated Download Date | 6/20/15 1:13 AM