What is peer-to-peer?
The term peer-to-peer describes a system architecture where participants are directly connected and have equal rights in the network . In a pure P2P network, the network is completely decentralized, as there is no central node which controls the flow of data (see fig. 1). There are also centralized P2P systems, which rely on a central server to manage the system . An example for a centralized P2P system is the music exchange Napster.
Clients in a P2P network can both offer services for other clients as well as use services that other clients offer . Clients are therefore taking on the role of the server and the client. That way all the functions of a typical client-server relationship can be mimicked within a P2P network. The data is stored on the respective clients instead of on a server. In some networks so-called ‘supernodes’ are used to store a big part of the resources needed in the system. The term refers to clients with a high bandwidth and a lot of processing power . This of course leads to a stronger centralization as these nodes take on a more central role inside the network.
P2P networks can also be divided into structured and unstructured networks . Because there isn’t any information about where specific data is stored in an unstructured network, clients must locate data via broadcasts. This process is called flooding and can get more and more resource intensive the more clients are in a network. That’s why it’s often better to use a structured network. Here the location of data can be found out through technologies like distributed tables. These distributed tables contain the addresses of clients and other things like a list of files that a client can offer . By using distributed tables, it is no longer necessary to send broadcasts to locate data which reduces the strain on the network.