Peer-to-peer architectural pattern (P2P architecture) is a commonly used computer networking architecture in which each workstation, or node, has the same capabilities and responsibilities. It is often compared and contrasted to the classic client/server architecture, in which some computers are dedicated to serving others.
P2P applications are one of the core issues in the controversy over network neutrality – a principle that advocates no restrictions on Internet content, format, technologies, equipment or modes of communication. P2P proponents argue that governments and large Internet service providers are attempting to control Internet use and content by directing network structure toward a client/server architecture. This sets up financial barriers for individuals and small publishers looking to gain Internet entry and sets up inefficiencies for sharing large files.
There are three models of unstructured P2P computer network architecture:
- Pure P2P
- Hybrid P2P
- Centralized P2P
In structured P2P computer network architecture, workstations (peers), and sometimes resources as well, are organized according to specific criteria and algorithms. This leads to overlays with specific topologies and properties.
Assessing some of the advantages and weaknesses of P2P networking involves comparisons with client/server architecture. P2P networks have clients with resources such as bandwidth, storage space and processing power. As more demand is put on the system through each node, the capacity of the whole system increases. (This accounts for the enormous increase of system security and file verification mechanisms, making most P2P networks resistant to almost any type of attack.) By comparison, a typical client/server network shares demands but not resources. As additional clients join the system, fewer resources become available to each one.