Other Free Encyclopedias » Online Encyclopedia » Encyclopedia - Featured Articles » Contributed Topics from P-T

Peer-to-Peer Systems

resource server computers file

Definition: The term peer to peer denotes a class of distributed system architectures, that is, a way of structuring and organizing the work of several computers that communicate through a network.

In a peer to peer system, each computer that participates in the system has some kind of resource (data, computing capacity, disk space, algorithms, etc.) that it offers to the other users of the system. In a multimedia peer to peer system, the most common resource is constituted by data files. A computer needing a particular file or algorithm will send a request for it to all or some of the participants of the system. (The details of how this happens depend on the specific architectural details of the systems, and will be debated shortly.) The participants that have that resource available will answer, possibly with some additional information about the computer on which the resource is located, such as its computing power, network bandwidth, work load at the moment, etc. Based on this information, the requester contacts one of the participants that answered, and instaurates with it a one to one communication during which the file is exchanged, or the algorithm is invoked, the disk space is allocated and used, etc

With respect to client server, peer to peer systems present the advantage of avoiding the concentration of network traffic or the computation on a single computer—or on a small group of computers—, namely the server. On the other hand, knowing where a resource is located is a more complicated affair in a peer to peer system, and subject to more compromises. There are, with respect to the localization of a resource, several solutions possible.

The most immediate possibility is that of complete broadcast: whenever a computer needs a resource, it will send a request to all the other computers in the system to verify which ones have the resource. Two are the problems with this solution: firstly, the network traffic that it generates: in a system with N computers, for each request, N-l messages (this problem is not too dramatic, since only short messages are sent); secondly, every computer must contain a list of all other participants that, at a given time, are active. In a large system, in which computers come on-line and go off-line frequently, creating and maintaining such lists might be a considerable problem.

A different architectural solution is what might be called impure peer to peer. In this solution, there is a central server that contains the location of all available resources. Whenever a participants comes on-line, it communicates its availability to the central server, and whenever the participants goes off-line, it communicates that it will be no longer available; in this way the server can maintain an updated list of active participants. Whenever a participant needs to access a certain resource (e.g. a file), it will first contact the server to obtain the location(s) of that resource (e.g., given the name of the file, a list of computers and the relative directories where files with that name are located) and then contact one of these computers in order to access the resource (viz. copy the file). This solution relieves the problem of the previous one, since only the server needs to keep a list of available resources, and it also avoids some of the problems of client-server architectures, since the server only deals with short search requests, and not with the actual use of the resources. On the other hand, many simultaneous requests can still result in congestion, and the system is, just as client-server, susceptible to malfunctions in the server.

A third solution involves partial indexing: every computer in the system keeps a list of a certain, usually fixed, number of other computers, called its (first order) neighbors. A search request goes from a computer to its neighbors, from these to their neighbors (the second order neighbors of the requester), and so on until a prescribed and fixed order of neighborhood is reached: these are the computers on which the sought resource is searched. The most serious problem of this solution is that a search might fail to find a resource even if it is present in the system, since not the whole system is searched. For peer to peer systems in which resources are duplicated on many computers (e.g. file exchange, in which the number of locations where a given file can be found grows with every copy), and in which absolute reliability is not a requirement, this solution can be usefully applied.

Peer-to-Peer Systems and Digital Rights Management - Peer to Peer File Sharing and Tools, Current Landscape, Digital Rights Management [next] [back] Peer-to-Peer Streaming - Streaming P2P Architectures, Streaming Process, Peer-to-Peer System Operation

User Comments

Your email address will be altered so spam harvesting bots can't read it easily.
Hide my email completely instead?

Cancel or