P2P networks constitute one of the most popular implementations of the decentralized network model. The peculiar characteristic of P2P networks is, in fact, the capability manifested by its peers to establish reciprocal connections between them without resorting to central entities, such as servers.
In fact, in a P2P network, each node assumes the role of client and server when it is appropriate (this is the reason why the nodes are also called peers). The main problem that arises in the implementation of a P2P network is represented by making the decentralized nature of the P2P network compatible with the topology and physical infrastructure of a public network such as the internet.
In the next section, we'll see how a P2P network can be deployed over the public internet.