Peer To Peer Networking
In a peer to peer (P2P) network every machine can communicate directly with every other machine in a network. No computers have any more authority than others. This is in direct contrast to client-server architecture.
A peer-to-peer (or P2P) computer network uses diverse connectivity between participants in a network and the cumulative bandwidth of network participants rather than conventional centralized resources where a relatively low number of servers provide the core value to a service or application.
Comparison with Client-Server
- Authorisation. Access to shared resources can be centrally granted to users and groups with client-server.
- Simple. Tracking problems is much easier with client-server, often can be fixed from a single location.
- Bottleneck. With client-server there is a unique single point for handling requests.
- Scalability. Direct connections must be setup between machines hence scalability can be a problem with client-server.
- Cheap. Aggregating cheap peer computers can cheaply form a super-server.
- Availability. If an entire resoruce is distributed over P2P then the loss of any peer will not significantly affect the entire service, however the loss of a server can be catestrophic in a client-server system.
Hybrid Architecture
Many systems use a hybrid architecture which allows "the best of both worlds", examples of this include Skype which routes client-client communications over P2P but manages accounts client-server. A similar setup is applied to a lot of instant messaging systems.