The peer-to-peer (P2P) architectural pattern, consists of a series of nodes, each with the same set of functions to perform. With this pattern, there is no central controller and all nodes are created equally. The peer nodes act as both receivers and distributors of data and resources.
There are several benefits to this pattern:
- It only requires two nodes
- Additional nodes can join
- Nodes can drop out
- It's great for sharing resources
- It's great for sharing processing
However, there is also one major disadvantage:
- It's highly vulnerable to Denial-of-Service (DoS) attacks
In the following sections, we will explore the following example implementations of the P2P architectural pattern:
- File sharing
- Networking