A peer to peer network is a simple network of computers. It first came into existence in the late 1970s. Here each computer acts as a node for file sharing within the formed network. Here each node acts as a server and thus there is no central server to the network. This allows the sharing of a huge amount of data. The tasks are equally divided amongst the nodes. Each node connected in the network shares an equal workload. For the network to stop working, all the nodes need to individually stop working. This is because each node works independently.
History of P2P networks :
Before the development of P2P, USENET came into existence in 1979. The network enabled the users to read and post messages. Unlike the forums we use today, it did not have a central server. It used to copy the new messages to all the servers of the node. After this, Napster was developed which was a file-sharing P2P software. It could be used to share audio files as well. This software was shut down due to the illegal sharing of files. But the concept of network sharing i.e P2P became popular.
Types of P2P networks :
- Unstructured P2P networks –
In this type of P2P network, each device is able to make an equal contribution. This network is easy to build as devices can be connected randomly in the network. But being unstructured, it becomes difficult to find content.
- Structured P2P networks –
It is designed using the software which creates a virtual layer in order to put the nodes in a specific structure. These are not easy to set-up but can give easy access to users to the content.
- Hybrid P2P networks –
It combines the features of both P2P network and client-server architecture. An example of such a network is to find a node using the central server.
Features of P2P network :
These networks do not involve a large number of nodes, usually less than 12. All the computers in the network store their own data but this data is accessible by the group. Unlike client-server networks, P2P uses resources and also provides them. This results in additional resources if the number of nodes increases.It requires specialized software. It allows resource sharing among the network. Since the nodes act as servers also, there is a constant threat of attack. Almost all the OS today support P2P networks.
How to use a P2P network efficiently :
Firstly secure your network via privacy solutions. Design a strategy that suits the underlying architecture in order to manage applications and underlying data. Keep a check on the cyber security threats which might prevail in the network. Invest in good quality software that can sustain attacks and prevent the network from being exploited. Update your software regularly.
Advantages of P2P Network :
- Network is easy to maintain because each node is independent of each other.
- Since each node acts as a server, therefore the cost of the central server is saved.
- Adding, deleting and repairing nodes in this network is easy.
Disadvantages of P2P Network :
- Because of no central server, data is always vulnerable to get lost because of no backup.
- It becomes difficult to secure the complete network because each node is independent.
Examples of P2P networks :
P2P networks can be basically categorized into three levels. The first level is the basic level which uses a USB to create a P2P network between two systems. The second is the intermediate level which involves the usage of copper wires in order to connect more than two systems. The third is the advanced level which uses software to establish protocols in order to manage numerous devices across the internet.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- TCP 3-Way Handshake Process
- Process Synchronization | Set 2
- Python - Process images of a video using OpenCV
- Difference between Program and Process
- Introduction and Installation process of Gulp
- Difference between process.nextTick() and setImmediate() Methods
- Node.js Child Process
- Networks and Process of Network Communications
- Global, Process and buffer in Node.js
- Approaches in ETL Process
- How to install the ext-curl extension with PHP 7 ?
- Java Program to Iterate Over Arrays Using for and foreach Loop
- Adding Labels to Method and Functions in Java
- Java Program to Write an Array of Strings to the Output Console
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.