In a peer-to-peer network, all participants have equal rights among each other. There are no typical client-server structures and each computer can offer functions, resources or services or make use of them. Data is organized and distributed in a decentralized manner.
In peer-to-peer (P2P) systems, the various computers work together on an equal footing. Each computer can be a provider or consumer of services, resources or functions. It is a decentrally organized structure that does not require central servers.
Basically, in a peer-to-peer network, each computer can be connected to another computer. Simple peer-to-peer structures organize themselves completely independently; more complex systems can be divided into groups, each of which performs specific tasks. For example, individual systems provide higher-level search functions.
Peer-to-peer networks can be realized by direct computer connections or by overlay networks via the Internet. The client-server model is the exact opposite of the P2P system, since the roles of the server and the clients are clearly distributed. The server provides services and the clients use them.
The various peer-to-peer architectures and structures
There are different architectures and structures of P2P computing. They can be distinguished in the way they are structured, the degree of self-organization and the degree of decentralization. In unstructured systems, no information is stored about the paths to the target systems with the desired data. Except for the actual target system, no end system knows where to find specific data. Searching in these unstructured P2P systems is therefore usually implemented using search queries sent to all participating systems (flooding). If the number of participating systems increases, the search load on the P2P system also increases.
Structured systems store information about paths to data on individual end systems. This allows for much more efficient routing of search requests without flooding. The storage of information on different end systems can be realized, for example, by distributed tables.
- Another distinguishing feature in P2P computing is the degree of decentralization. The distinction depends on whether there are exclusively decentralized or also centralized elements in the overall system. In the case of a completely decentralized distribution, all information must be kept on the participating and distributed computers.
- Systems with central elements use computers that assume a server role for certain tasks and the coordination of the P2P system. For example, they manage addresses or file lists of the participants. New participants in the P2P network must first send their information to the server. This enables an efficient search for data in the system. However, the actual exchange of data still takes place directly from participant to participant.
- There are also peer-to-peer systems in which so-called supernodes are used. These are P2P participants that have high bandwidth and computing power. They provide a substantial part of the resources for the system.
Advantages of the peer-to-peer model
A peer-to-peer infrastructure offers a number of advantages over traditional client-server approaches. One of the main advantages is the excellent scalability of the system. The more end systems that participate in the overall system, the higher its performance and the more resources are available. Each individual system contributes additional performance in the form of storage space, bandwidth or computing capacity.
Thanks to the many different autonomously operating participants, the failure of a single computer hardly affects the complete system. High robustness and availability of services are the result. These infrastructures are also highly resistant to external attacks and targeted manipulation attempts. If necessary, tasks can be flexibly distributed within the computer network and individually adapted to current requirements without having to provide additional hardware. A peer-to-peer system can perform work that may require expensive high-performance computers in client-server structures.
Disadvantages of the peer-to-peer model
One disadvantage of the decentralized P2P model is the high effort required for the self-organization and administration of the participants. Changes such as adding or deleting individual systems affect the entire network and must be made known in the P2P structure.
The initial flooding of the network and the search for information leads to a high load, which increases disproportionately with the number of participating end systems. On a legal level, the problem can arise that the dissemination of protected content and the interdiction of unlawful services can be difficult to prevent or legally prosecute due to the anonymization of users and the encryption of data.
Examples of P2P computing
P2P networking is used in a wide variety of areas. Numerous file-sharing services exist that use the model. For example, files are exchanged via client software and exchanges such as Bittorrent or KaZaA. The data is available without a central server and is copied directly from peer to peer.
An installed client makes it possible to search for files by accessing the directories of the participating computers. From a legal point of view, participation in such a file-sharing service can be questionable in the case of copyrighted data, since each participant also becomes a provider of files at the same time.
Distributed computing is another area of application. In this P2P model, complex computing operations can be executed in a distributed manner on the many different participant computers. Each participating system makes its free capacities available for this purpose. The entire computational operation is broken down into small subtasks, calculated on individual systems and then combined to produce a result.
Scientific analysis of large amounts of data such as SETI (Search for Extraterrestrial Intelligence) uses distributed computing. SETI searches the radio range of the electromagnetic spectrum for signs or conspicuous signals that suggest intelligent life in space. To process and distribute the tasks in the P2P system, a client must be installed on each end system.
P2P computing is also used for messaging services or voice over IP services. For example, the very well-known and widely used Skype software was based on a P2P model for a long time.