P2P Sharing: How it Works and the Future

How P2P sharing works and what it has to offer for the future of the Internet

Anuradha Wickramarachchi
5 min readSep 17, 2020

BitTorrent is one of the most popular P2P networking protocols in use. Gnutella is one such protocol that existed before BitTorrent. Talking about P2P, it holds more than 40% of the total Internet’s traffic (source). Though the “BitTorrent” software comes into your mind, the idea of Torrenting is much broader and complex than the tool itself. Furthermore, BitTorrent is the name of the protocol that is used for the P2P file transmission.

Photo by Alina Grubnyak on Unsplash

What is P2P In file transmission and Why?

In a typical file transmission scenario that happens on the Internet, you are either uploading a file or downloading a file from a publicly accessible server. However, in P2P file sending/receiving this happens between two or more parties who aren’t strictly public on the Internet. Hence, it is called P2P or peer to peer. The interesting feature of this approach is, no server is required.

If you have ever come across BitTorrent, uTorrent, Vuze or Limewire you have probably used P2P file sharing. Although it is directly not relevant, WebRTC is yet another P2P communication technology. It is mainly used for streaming of content in cases like video calling etc.

Why?

P2P sharing is always decentralized. Which is quite cheap in large scale. Furthermore, different kinds of encryption layers can be practised for better anonymity. This comes with the inevitable negative side of copyright violations and illegal content being shared. In a technical perspective, the technology is fascinating to study.

Server Based vs P2P (source)

P2P is cheap and self-sufficient by the community of users

How Limewire/Gnutella Works

The fascinating fact about lime wire is that users can search for files in others’ computers and download them easily. Let’s search for Ubuntu distribution in Limewire. Note that the latest version of Limewire is called uWire.

Screenshot: by Author

We are given 3 search results. For each result, the number of files is shown. For each file, we can see the number of direct download sources. This is the number of users having this file.

The search in Limewire (that uses Gnutella) happens as follows, in very simple steps, of course.

  1. At the moment a user starts the software, it must make a connection with at least one another node. Such nodes are either bundled with the software or found through various other channels. Quite similar to how trackers are discovered in BitTorrent. In later versions, this is done through a bootstrap server that helps with initial connection. Possible legal obligations avoided just by limiting the use for node discover rather than file discover (A huge issue in early 2000 that killed many file-sharing systems).
  2. The client connects one such node from the previous step, followed by a connection to several other nodes.
  3. When a search query is initiated, the client will forward it to the connected nodes. Then the connected nodes will send it to their connected nodes.
  4. The number of hops is limited to 4 (source). This helps to avoid too much congestion.

The network consists of Ultrapeers, who have better and consistent connections. Such nodes maintain connections with few other Ultrapeers as well. In the past, the results for search queries sent through the same route. However, now the responses are sent directly through Ultrapeers over UDP. The classic architecture of the Gnutella search is depicted below.

Gnutella Query Execution (source)

The Future of P2P File Sharing

File sharing over P2P sort of declined with legal implications and the lack of public IPs. However, this could change with the arrival or IPV6 and so many wearables.

However, P2P is more popular than ever give the amount of video conferencing we do. P2P file sharing is now very common with the arrival of Personal Cloud devices. One major bottleneck that existed for using P2P communication for personal file sharing was the limited bandwidth. In that case, a parallel download of chunks was possible from multiple peers. However, now the same can be done in a single high bandwidth connection. This is a screenshot from my personal cloud device’s settings page.

Screenshot: by Author

In this case, I am connected from my office to home via a direct connection. Only the difference is we aren’t literally peers. But the technology is very similar to that used in BitTorrent. Port forwarding mechanism is initiated via servers at Western Digital quite similar to that of a Torrent Tracker or in Gnutella a bootstrap server. A tracker that tracks cloud devices that are online.

Screenshot: by Author from WD

The major benefit here is, as long as my home connection is good I have instant access to my data without having to upload to a service like Google. Pretty much the same thing Torrent does. Share your file without a cloud.

However, in the case of my Cloud Device, they have several backup solutions to have better reliability. Sometimes, direct connections cannot be initiated over firewalls(rarely) and some old NATs(major culprit).

P2P File sharing or Limewire is not dead!

None of the protocols was illegal. Only the use-cases of them were!. At the present, they are put at better and personal use given the improvements of network bandwidths. P2P computing also used in CDNs (Content Delivery Networks) for content synchronization. Sometimes, it is used in cloud computing for different cases such as sharing data and backing up.

P2P computing is the successor for P2P sharing, where computing power is shared. Crowdsourced data analytics such as cancer research is one such example. Idle mobile devices take part in huge distributed computing tasks by sharing data between them for a better future of humanity.

An interesting read here;

I hope you enjoyed reading this article. Have a nice day! Cheers!

--

--