Peer to Peer Netoworking and commonly abbreviated P2P, is any distributed network architecture composed of participants that make a portion of their resources (such as processing power, disk storage or network bandwidth) directly available to other network participants, without the need for central coordination instances (such as servers or stable hosts).1
P2P networks in (a) nodes without central infrastructure (b) centralized server based service model
Peers are both suppliers and consumers of resources, in contrast to the traditional client-server model where only servers supply, and clients consume.2 It differs from the normal client/server architectures, because this method involves systems serving other systems.3
P2P networking has generated tremendous interest worldwide among both Internet surfers and computer networking professionals.4
Characteristics of P2P Networks
- Sharing of Distributed resources and services: Each node can provide both client and server functionality. It can act as both a provider and consumer of services and resources such as information, files, bandwidth, storage and processor cycles.
- Decentralisation : No central coordinating authority for the organisation of the network or use of resources and communication between networks. No node has control over another, and communication between peers takes place directly. A distinction can be made between pure and hybrid networks, as in pure P2P networks no node has a global view of the network, but in hybrid nodes selected functions such as indexing or authentication are allocated to a subset of node, which hence assume the role of coordinating entities
- Autonomy: Each node in a P2P network can autonomously determine when and to what extent it makes it's resources available to other entities5
Peer-to-peer networks are typically formed dynamically by ad-hoc additions of nodes. In an 'ad-hoc' network, the removal of nodes has no significant impact on the network. The distributed architecture of an application in a peer-to-peer system provides enhanced scalability and service robustness.6
Peer-to-peer systems often implement an Application Layer overlay network on top of the native or physical network topology. Such overlays are used for indexing and peer discovery. Content is typically exchanged directly over the underlying Internet Protocol (IP) network. Anonymous peer-to-peer systems are an exception, and implement extra routing layers to obscure the identity of the source or destination of queries.7
There are broadly two classification of P2P networks based on how the nodes in the overlay network know each other
1. Structured - Connections in the overlay are fixed,
2. Unstructured - No algorithm for optimization or organization of network connections
Click here for Comparison Between Structured & Unstructured
The unstructured P2P networks can be further divided into
a. Pure P2P - Each node in the network is equipotent e.g. Gnutella and Freenet,
b. Hybrid P2P - Preferred nodes with special infrastructure exist e.g. Kazaa,
c. Centralised P2P - A central system is used to index and bootstrap the entire system - similar to structured but connections between peers are not determined by an algorithm e.g. Napster.
A pure P2P network does not have the notion of clients or servers but only equal peer nodes that simultaneously function as both "clients" and "servers" to the other nodes on the network. This model of network arrangement differs from the client-server model where communication is usually to and from a central server.8
3 Level architecture of P2P networks
Shown below is the 3 Level architecture of P2P networks as given in Schoder, Fishbach and Schmitt's book "Peer to Peer computing"
- Level 1 : P2P Infrastructures are positioned above the existing telecommunication networks, which act as a foundation for all levels. They act as foundation for all other levels. They provide communication, integration, and translation function between IT components. They provide services that assist in locating and communicating with peers in the network and identifying, using, exchanging resources, as well as initiating security processes such as authentication and authorizing.
- Level 2 : P2P Applications that use P2P Infrastructures. They are geared to enable communication and collaboration in the absence of central control.
- Level 3 : P2P Communities are focussed on social interaction phenomena, in particular, the formation of communities and dynamics within them.
In contrast to Level 1 & 2 where the term peer refers to technical entities, in level 3 the significance of the term peer is interpreted in a non-technical sense (peer as person)9
- In a P2P Network everyone shares resources, these may include bandwidth, storage space and computing power. As nodes arrive and demand on system increase, so does the total capacity of the system as opposed to a client server system wherein the resources are limited by server, hence P2P Networks promise improved scalability,
- The robustness of the system increases as the system is no longer dependent on servers, hence greater fault tolerance,
- Lower cost of ownership,
- Self-organised and decentralized use of previously underused or limited technology,
- Better support for building ad-hoc networks10
- Unsecure & Unsigned codes may allow remote access to files on a victim network or even the entire network, hence P2P networks are a bit unsecure compared to client-server system but this can be remedied by using modern hashing, chunk verification, and different encryption methods.