Peer-to-peer (P2P) architecture is a distributed system in which each node acts as both a client and a server. This allows the nodes to share the workload or tasks among themselves. In a P2P system:
In a P2P network, tasks are distributed among all the peers rather than being handled by a single server, which makes P2P networks more resilient as there is no single point of failure. In some cases, a central tracking server may be used to help the peers find each other and manage the network, but it does not have control over the network itself. The decentralized nature of P2P networks allows for more flexibility and autonomy compared to traditional centralized systems.
Peer-to-peer (P2P) networks do not have a dedicated server for user authentication. This means that each computer is responsible for its own protection and may require a separate user account for each machine that a user wants to access. So users save files on their own machines and are responsible for backing them up properly.
Security is a major concern in P2P networks, as access to data and resources is managed on each individual machine. Each computer can allow or deny access to other computers, so users must be careful about what they share. For example, a user might share a folder containing sensitive payroll information, but only allow other users to access the files within that folder. Because there is no central administrator in a P2P network, users must manage access to their own files and resources. Therefore, P2P networks are often used in small deployments or situations where security is not a major concern, such as home networks or small businesses.
P2P architecture is most effective when there are many active peers in the network. This allows new peers to easily find other peers to connect to and ensures that there are enough remaining peers to take up the slack if many peers leave the network. When there are only a few peers in the network, there are fewer resources available overall.
In a P2P file-sharing program, the more common a file is, the faster it can be downloaded because many peers are sharing it. To make P2P work more efficiently, the workload is often divided into small pieces that can be reassembled later. This allows many peers to work on the same task simultaneously and reduces the amount of work that each peer has to do.
There are several uses for peer-to-peer (P2P) architecture, including:
There are three different types of P2P networks.
In unstructured peer-to-peer (P2P) networks, the nodes are not arranged in any particular order, meaning that node-to-node communication is random. This makes unstructured P2P networks well-suited for high-activity use cases, such as social platforms where users may regularly join or leave the network.
However, unstructured P2P networks have a disadvantage in that they require a significant amount of CPU and memory to function properly. The hardware must be able to support the maximum number of network transactions, ensuring that all nodes can communicate with each other at any given time. This can be a challenge, especially if the network is large or has a high volume of activity.
Structured peer-to-peer (P2P) networks are the opposite of unstructured P2P networks in that the nodes have a way to interact with each other in a more organized manner. This is achieved through a well-organized architecture that allows users to find and use files more efficiently rather than searching randomly. Hash functions are often used for database lookups in structured P2P networks.
While structured P2P networks are generally more effective, they have some centralization due to their organized architecture. This means that they may be more expensive to maintain and set up than unstructured P2P networks. However, structured P2P networks are more stable than unstructured P2P networks.
Hybrid peer-to-peer (P2P) networks combine the peer-to-peer architecture with the client-server model. This allows for a central server with P2P capabilities, which can be beneficial for certain types of networks.
Hybrid P2P networks offer several benefits over structured and unstructured P2P networks, including a more strategic approach, increased performance, and other advantages. Overall, hybrid P2P networks can be a good choice for networks that need the benefits of both P2P and client-server architectures.
Peer-to-peer (P2P) networks offer several advantages. One of the main benefits of P2P networks is that they can be more cost-effective due to the absence of a central server that needs to be maintained and paid for (apart from monitoring servers). This also means there is no need for a network operating system, further reducing costs.
Another advantage of P2P networks is that they are resistant to single points of failure. Unless the network is very small, it is unlikely that the failure of a single peer will have a significant impact on the overall network. In addition, changes in the number of peers in the network do not affect its stability.
P2P networks can also handle large numbers of simultaneous connections without difficulty due to their decentralized structure. This also makes them more resistant to attacks since no central server could be targeted.
To summarise, some of the benefits of peer-to-peer (P2P) networks include:
Peer-to-peer (P2P) networks have some security risks that should be considered. One potential issue is that if a peer becomes infected with a virus and uploads a file containing the virus, the virus can easily spread to other peers in the network. Another concern is that it can be difficult to ensure that all peers have the correct permissions to access the network, particularly if there are a large number of peers.
Some users of P2P networks take advantage of resources shared by other nodes without contributing anything themselves. These users are known as "leachers." While the decentralized nature of P2P networks can make them difficult to shut down, this can also be a drawback if the network is used for illegal or unethical activities.
In addition, the widespread use of mobile devices has led many businesses to adopt different types of architecture. However, using mobile devices can present challenges for P2P networks, as it may be difficult for users to contribute to the network without draining their battery life or using up their mobile data.
Some other drawbacks of the P2P network are:
Thanks to Navtosh Kumar for his contribution in creating the first version of this content. If you have any queries/doubts/feedback, please write us at contact@enjoyalgorithms.com. Enjoy system design, Enjoy algorithms!
Subscribe to get well designed content on data structure and algorithms, machine learning, system design, object orientd programming and math.
©2023 Code Algorithms Pvt. Ltd.
All rights reserved.