Peer-to-Peer or P2P file sharing is one of the most advanced universal technologies that is much admired by the pirate community. It’s a process of sharing digital content such as multimedia (video clips, movies, music), eBooks, etc certainly without paying for these. It is done by using a linear link between two nodes or peers over the P2P network with the help of a P2P client program. This software lets the system gets attached to a P2P network. The peer that downloads the file is known as leech and the peer that hosts the file is recognized as seed. BitTorrent is one of the best P2P softwares or file-sharing protocols that is pretty much preferred by most of the users.
P2P was not introduced for the faith it has been used now. But still, it is now accused of all the losses sustained by the production houses. However, if you are unaware of what it is or how it works, then this guide can help you to provide a clear conception about this. Before going to discuss the details, let me lead you with the basic roots of P2P. Basically, it’s a network of various computers known as Nodes or Peers linked with each other and are capable of sharing resources such as hard drives, connected peripherals, processing power, etc. Here, a peer requests for the files to another peer by setting UDP or TCP connections. Now, let’s have a look at the below section to have a detailed understanding of this.
Know the Working Procedure of Peer to Peer File Sharing
The working process of P2P file sharing is quite large as well as complicated. Suppose you wish to download a file from the Internet – you can connect your computer with a P2P network through a client. So, you will be considered as a Leech. Then, the client will start to look for another system on the same network known as Seeds that might be hosting your wanted file utilizing some link. If you are using a P2P file sharing programs like BitTorrent, then the link is known as ‘Magnet Link’.
Once the client finds and connects your computer successfully with a suitable seed, it will start the Peer to Peer file sharing process. There is a catch in this process – the files received by seed will be divided into layman’s terms or into tiny parts of about 1 MB in size. Not all pieces of a specific seed can be disposed of. To get rid of this problem, the P2P client starts to look for various searches for various seeds for every part it has to download from the network. Additionally, one seed may also be capable of offering different parts.
Now, when you request a file from one single peer, it may happen that different peers hold the same copy of that demanded file. So, there is a problem – how to choose the IP addresses of all those different peers. This is determined by the underlying architecture approved by the Peer-to-Peer network. Through one of these approaches, the client peer will be able to comprehend regarding all of the peers that have the requested file/object. The file transfer takes place straight within these two peers.
There are three architectures that are responsible to do this. They are:
- Centralized Directory
- Query Flooding
- Exploiting Heterogeneity
A Brief Discussion of These Three Architectures
Here is a brief discussion about the three underlying architectures that are responsible to choose the particular IP address of the appropriate seed.
Centralized Directory is moderately related to client-server architecture in the function that it supports a broad range of central servers to offer directory service. Most of the peers available on the Internet notify their IP addresses to this central server. Moreover, all the peers also inform their files or media that they make available for the leech to the server of Centralized Directory. This server checks all the peers at a routine interval to ensure whether they are still linked with the central server or not. Hence, basically the server of the Centralized Directory keeps a tremendous database about which file or media is available at which IP addresses or peers.
How it Helps in Doing P2P File Sharing?
Whenever someone requests for some files or media to peer, the Centralized Directory sends this requirement to all the peers. Since the server of the Centralized Directory has all the detailed info about the peers, it passes all the IP addresses to the peer that holds the required file. Now, the Peer to Peer file sharing takes place between those two peers.
Napster is one of the best Peer to peer file sharing sites that was made with the help of this underlying architecture for the intention of sharing the Mp3 songs.
But, it is not free from random flaws. The biggest problem with the Centralized Directory is that there is a unique point of defeat. If the server of the Centralized Directory crashes accidentally, it will immediately crash the entire P2P network. Furthermore, since all of the processes are to be performed by a particular server – so, an enormous amount of database has to be managed and updated regularly.
Unlike the approach Centralized Directory, this system also makes the usage of distributed systems. In this architecture, all the peers are assumed to be linked to an overlay network. That means if a path or connection endures from one peer to another, it’s a part of this overlay network. In this network, peers are known as nodes and the connection between peers is known as an edge between the nodes – thus it results in a structure like a graph.
How it Helps in Doing P2P File Sharing?
Now, when one peer demands for some media or file, this request is transferred to all its nearby nodes – that means, to all the nodes that are linked to this node. If they don’t hold the needed file, they transfer the query to the other nodes. This is the process in which Query Flooding works. Once the peer with the demanded media or file is located, the Query Flooding stops its work and sends back the size and name of the file to the first one who demands that particular file or media by following the reverse path. If there is more than one query hit, then the client chooses from one of those peers.
Gnutella used the Peer to Peer file sharing network for the first time. The Query Flooding method also has some limitations like everything – here, the query needed to be sent to all the nearby peers unless a match is seen. This problem helps to enhance traffic in this network.
The Exploiting Heterogeneity is a P2P file sharing architecture that makes usage of both the aforementioned architectures. It follows a classified system like Gnutella as there is no central server to process the query. But, it doesn’t tackle all its peers equally unlike Gnutella. Here, the peers that have greater network connectivity and bandwidth are at the top-most priority and are known as group supernodes or leaders. The other peers are committed to these leaders or supernodes. These supernodes are linked with each other and all the peers beneath these leaders inform their respective supernodes regarding their IP address, connectivity, and the files or media available to share.
KaZaA is one of the best P2P file sharing applications – is an example that makes usage of both the system Gnutella and Napster. Therefore, the different group leaders along with their nearby peers create a structure like Napster. Then, these supernodes connect with each other between themselves to build a structure like Gnutella.
How it Helps in Doing P2P File Sharing?
Exploiting Heterogeneity processes all the queries in two different ways. The first one is that the group leaders contact other group leaders and consolidate their available files or media along with their own files or media. Therefore, now, this group leader has data regarding a broad number of peers. Another path is that when a demand comes in, it is transferred to the nearby group leaders until a match is located – just like in Gnutella. So, Query Flooding endures here, but with a restricted scope as each group leader has several nearby peers. Consequently, such a system utilizes the system of peers by selecting some of them as supernodes or group leaders and others as their nearby peers.
How Peer-to-Peer is Different from the Server/Client Model?
When we connect the Internet, usually, we utilize the Server/Client model in which the system sends a request to a server computer that might be hosting a file or some website. Then, the server replies with a suitable data packet as per the demand. The same server system lets us connect with another client on the internet and allows us to transfer data between two devices.
But, it’s not the same case with the P2P model, the central server doesn’t locate its tool in the network and therefore it has been deleted from the network. Although, there were some servers that were utilized to save the data that users linked to the network.
Another exception is the execution of the network. In the Server/Client model, bandwidth per user decreases when the number of relevant users rises. The downloading speed will decrease while downloading a file from a server when a new user starts to download the same file.
Moreover, the Peer-to-Peer network is more affordable for individual peers. Here, the same amount of bandwidth is utilized while downloading a file from a server. So, the costs are to be carried by the company or person that is responsible in order to maintain the server. But, in the case of P2P file sharing, the responsibility of offering bandwidth is on the users – not on the person who is uploading the file.
Now, its time to conclude this guide. This was a complete guide on P2P file sharing. Here, we have also mentioned some of the best P2P file sharing sites or apps that are used by several users throughout the globe. We hope this guide will help you to have a clear understanding of file sharing on the P2P network.