Peer to peer (or P2P) is a model of computer network similar to the client-server computer networking model, but where each client is also functioning as its own server . The terms “peer”, “node”, and “user” are generally used to refer to the entities comprising a P2P network.
Generally speaking, connections between two computers can occur either one of two ways: in a centralized fashion (connections through an intermediate central server) or decentralized (connections are made directly). Strictly speaking, P2P is only described as such when it is decentralized from a common hub, where a computer in the network is no longer a “client” but instead a “peer”. That said, centralized networks still involve the interaction between two “peers”, and so this term can be applied to this behaviour as well, although we consider it a less accurate description of P2P (although it is commonly accepted as such).
P2P Networks Explained
By being part of the same network, each computer in that network is then able to share various types of files, or info, whereby the files can be transmitted from one computer to another in the network, making the need for any sort of central computer unnecessary. It should be noted that for a peer-to-peer network to function properly, this requires that each node in the system be using the same software, whatever that software may be. Networks are often bound together by their reliance on whatever piece of software they happen to be using for them to have joined the P2P network in the first place.
When it comes to file sharing, a peer-to-peer system makes files all the more available to each individual user as they become increasingly popular, and so these files are then replicated on a large number of the nodes in the network. This, then, makes it possible to reduce the load (in terms of number of requests) imposed on individual nodes, which facilitates such files to be shared more easily, since, if one node in the system is offline, another node which also has the file can offer it to whoever is requesting it. Popularity of certain files can come from the general popularity of that file (whether it be a game, song, or what-have-you) outside of the network, or from a manufactured popularity of that file after the file has been shared from within a given P2P network.
Because the main function of P2P networks is exchange of information on an individual 1-to-1 / P2P basis, it circumvents outside influence and therefore thwarts various types of censorship. For the cost of a P2P network, which is relatively low, the network itself, it should be noted, is generally fairly stable when compared to certain centralized forms of networking.
And so, P2P helps to facilitate the use of the following:
- the DNS
- file sharing
- online messaging
Centralized vs. Decentralized Systems
Although P2P networks have their clear advantages over more centralized systems, because they are decentralized, they also have their issues. As compared with client-server systems, it can be much more troublesome to coordinate node interconnectivity between peers, depending on how the structure is set up. Because, like we have stated, the central structure for this connection is purposely not present. In order to avoid delays and nodes being down, what are known as structured decentralized systems have come into use. The purpose of these systems, while seeking to keep the advantages of a decentralized system, seeks to improve on the following:
- Controlling traffic received and sent by each node, which amounts to limiting the number of neighbours to which each node is connected;
- The number of requests transmitted to a node;
- The allocation of responsibility for access to shared files in the network.
We should also add that P2P networks should not be confused with what is known as PPP (Point to Point Protocol).
Peer-to-peer did not become known as a principle unto itself, but by the popularity of applications that have emerged according to this relatively new network model.
File Sharing Applications
The most common application of peer-to-peer is file sharing. The advent of broadband Internet connections (ADSL in particular) without time limits contributed to this growth. The distributed principle of these systems makes it possible to take advantage of the asymmetry of the connections, and thus to download at a high rate a file from several limited flow sources.
Each user is a peer of the network, and the resources are files. Everyone can share their files and download the files of others. These systems are very effective, even when it comes to exchanging large amounts of data.
Among the most used file sharing applications, we can point to BitTorrent , μTorrent and eMule. eMule enables file sharing on global Kad networks (Kademlia protocol) and eDonkey (eDonkey protocol).
A second application of P2P is intended for the general public or for research, but this is less widespread than file sharing, but it allows for the possibility of Internet users to share their computing power with other users.
Today’s computers are so powerful that, most of the time, much of their processor power is available to perform calculations. The BOINC project seized this opportunity to create a computer park distributed around the world to use this total computing power to perform complex calculations to be performed in a laboratory.
The BOINC project therefore asks the individual to allow the use of computational power which he does not immediately need to contribute to protein folding research (Folding@Home) and even the quest for extraterrestrial intelligence, by electromagnetic spectrum analysis (SETI@home).
The server that peer-to-peer works in is, in almost all cases, in synchronous mode: the transfer of information is limited to such elements connected together to network. They can use the TCP protocol as a data transport layer (it works in duplex, the reception of the data is thus confirmed and their integrity is ensured).
On the other hand, certain uses such as streaming requires the use of a lighter and faster protocol , such as UDP, which is less reliable, even if they themselves ensure the integrity of the transmitted data. UDP is also the most used protocol for transmitting messages between servers in partially centralized systems.
Peer-to-peer systems fall into several broad categories, depending on their organization.
Examples: Napster, Audiogalaxy, and eDonkey2000.
In this architecture , a client (a software used by members) connects to a server that manages sharing, searching, inserting information, although these pass directly from one user to another.
Such architectures are not fully peer-to-peer (as we mentioned at the beginning), as a central server is involved in the process, but file transfers are effectively distributed, so decentralization is only partial. This is the most fragile solution, since the centralization of server(s) is essential to the network. Thus, if this central point disappears, the whole network collapses. This disappearance can happen as a result of legal action , as was the case with Napster and Audiogalaxy, an overload of requests, accidental, or as a result of a computer attack.
Such an architecture makes it possible to resist such attacks, since the client software does not connect to a single server, but to several. The system is thus more robust, but the search for information is more difficult. It can be done in unstructured decentralized systems like Gnutella, where the search requires a high number of messages, proportional to the number of network users (and exponential depending on the search depth).
In structured decentralized systems, a connection organization is maintained between the nodes. Most are based on distributed hash tables, making it possible to search in a log number increasing logarithmically with the number of users of the network, such as CAN, Chord, Freenet, GNUnet, I2P, Tapestry, Pastry, and Symphony.
Another solution has been considered, consisting in the use of “super-nodes”. These elements of the network are ideally chosen according to their computing power and their bandwidth, in order to carry out functions useful to the system, such as the indexing of information and the intermediary role in queries. This solution, making the system a little less robust (the targets to “attack” in the network so that the system becomes inoperative are less numerous than in a Gnutella type system, for example), is used in FastTrack systems, such as KaZaA . The nodes of the network can then become super-nodes and vice versa, according to the needs of the system or of their own choice.
Similarly, the eDonkey2000 system uses fixed servers, which are more vulnerable because they are less numerous and less flexible than FastTrack super-nodes.
The connections in P2P networks are made by TCP / IP , the most used on the internet, which integrates a control of reception of the data, or by UDP when the application chooses to control itself the good reception of the data.
Several peer-to-peer systems are offered as an underlying network. End-user applications can then operate using such networks. Among them are Mnet , Chord, Tapestry, Freenet , I2P (used by iMule ), Tor, or Koorde.
Most security issues in P2P networks are due to file sharing. Users are looking for:
- anonymity (to protect your privacy or to avoid possible legal action);
- the scrambling of the protocol (in order to avoid the filtering of the internet access provider);
- encryption (“we can know who I am, but not what I download”).
To ensure the anonymity of users, one or more of these concepts are put into practice in peer-to-peer applications:
Queries go through multiple nodes to make tracing difficult. These nodes passing information are other users of the network, different fragments of the same file therefore go through different machines, and are sometimes copied, depending on the protocol (cache mechanism), before reaching the final computer having requested the download.
This cache mechanism is often used in conjunction with data encryption so that intermediaries can not see what is passing.
Networks of trust: Friend to friend
Encryption of trade
This process is implemented in Freenet, I2P, RetroShare and the abandoned software: Ants.
Evolution of P2P Technologies
In the evolution of peer-to-peer technologies, there is a trend towards ever greater decentralization. That said, both centralized and decentralized systems are still widely used.
One of the advantages of client-server access is the instantaneousness with which the resource is obtained. This is why downloading by http, ftp or via newsgroups are still used although being typical client-server systems.
The use of file transfer software, from the Napster era to that of BitTorrent, is to wait for the arrival of the file from several hours to several days. Several initiatives are trying to fill this gap. This is for example the case of Freenet but also Wuala who wants to make access to files stored in a network as fast as access to a local file.
Optimization by geographical proximity
Proactive network Provider Participation for P2P or P4P is a working group that aims to develop technologies to optimize peer-to-peer exchanges. They assume that geographically close peers are better able to exchange data.
Note: The P3P, despite its name, has nothing to do with P2P and is not an evolution of it. This is called the Platform for Privacy Preferences : a W3C initiative that aims to improve the security of web-based exchanges .
Peer-to-peer and, more generally, distributed systems are the subject of much academic research in computer science.
Social implications and co-operation
Cooperation within a community is key to the success of P2P systems. These systems reach their full potential when a large number of nodes offer resources. P2P networks, however, contain a large number of users who use the shared resources without sharing them back.
This way of practicing P2P can have a profound impact on the network and in some cases cause the collapse of the community. Since then, several incentive mechanisms have been put in place to encourage users to share as they consume.
The ease of use of P2P makes this technology the main vector of illegal video streaming , used in particular for the broadcasting of live sports events. In the United Kingdom, the Premier League repeatedly expresses concerns about the illegal streaming of sports events.
In 2014, the UK stopped one of the heads of a network of illegal sports streaming sites P2P that would have cost 10 million pounds to British TV.
Intellectual Property and Illegal Sharing
Although P2P networks can be used for legitimate purposes, they are frequently involved in cases of illegal sharing of protected material. P2P involves the transfer of data from one user to another without using an intermediary server. P2P applications development companies have been involved in legal cases, mainly in the United States on issues of copyright.
The two main cases are Grokster vs. RIAA and MGM Studios Inc. vs. Grokster. In both cases, file sharing technology is considered legal as long as developers retain the ability to prevent the sharing of copyrighted content. To establish the criminal liability for breach of copyright on P2P systems, the government must prove that the defendant infringed the copyright for personal or financial purposes.
There are legal exceptions allowing the downloading of documents without the authorization of their authors. These are usually news reports or research and scientific works.
Controversies have developed over the legitimacy of using P2P for national and public security . When a file is downloaded via a P2P network, it is impossible to know who created the file and which users are connected to the network at any given time. Reliability of sources is a threat to the security of P2P systems.
The term peer-to-peer system allows you to name a group of users (number not necessarily defined specifically, but generally), the protocol that allows them to communicate (Gnutella , BitTorrent , CAN , etc.), and the operation of the protocol between these machines;
- the term network peer-to-peer is used to specify the machines and their interconnection at some point with a fixed number of machines / users;
- the term ” node” makes it possible to designate the software present on a machine, so often a user (but possibly several);
- the term link refers to a connection (often TCP ) between two nodes;
- the term object refers to what is shared in a peer-to-peer system.
The P2P networks we will list below…
- have several compatible software capable of working on it;
- do not have countermeasure features to hide the activity of peers (in plain language: “who is looking for what?”);
- do not prevent technically to discover the files made available by users (“who shares what?”);
- do not prevent technically (eg, encryption ) from “seeing” the content of data transmissions between peers (“who downloads what?”).
List of P2P Networks Past and Present
BitTorrent – The BitTorrent protocol is a popular way to share files, which features free, unlimited downloads.
GTK-Gnutella –The Gnutella network was successful in the early 2000s, and its use declined sharply as a result of crackdowns on copyright infringement. It was the first decentralized P2P of its kind.
Napster – The Napster network, after running into copyright issues, was purchased by Rhapsody and has recently been rebooted. It is no longer what it was in the past, but maintains aspects of its previous incarnation.
FastTrack – Fasttrack was a P2P network that, at one point, had more users than Napster at its peak. It was created by BlueMoon Interactive, based out of Estonia and headed by Jaan Tallinn, whose team later made Skype.
eMule – An open-source file sharing network based on the model set by EDonkey, originally created by Merkur.
MP2P network (Manolito P2P) – This peer-to-peer network was created by the Spanish programmer Pablo Soto.
Direct Connect Networks
FileCroc – Software with data exchange encryption device and the first radio enabled P2P
Infinit – Launched in 2013. Client software for Mac and Windows.
Tudzu – backup between friends. Launched in 2012. Client software for Windows and Linux.
Software for peer-to-peer file sharing
AllPeers (BitTorrent extension for Firefox, discontinued)
DexterWire (LimeWire variant)
Hotline (previously named Hotwire) and KDX (successor to Hotline)
Software intended for instant messaging (chat) function operating in P2P
Tox (software) (messaging)
Various P2P communication protocols
Alpine network (“A peer based open source application and network infrastructure designed for decentralized information rental / discovery.”)
BWA: Business Workflow Analysis (also known as Business Management Systems p2p)
KoffeePhoto (photo sharing)
Peer-to-peer SIP (en)
PixVillage (photo sharing, 2004-2008)
Scribe (project of “scalable group communication system” 2001-2003)
Swarmcast (in) (TV, video)