What are Torrents and How they Work ?

This is an article on What are Torrents and How they Work ? in Web Development.

What are torrent

Torrents

Torrents are P2P(Peer to Peer) software compatible files they are used to share files in P2P network environments. For running torrents you need to install a specialised P2P software.

Torrents use a Protocols for transfer of files The Bit-Torrent protocol is one of the most popular and common protocols used by torrent clients for sharing of large data files. This Protocol was also created by Bram Cohen while Creating BitTorrent(torrent client) in April 2001...

What is P2P?

P2P -> Peer-to-Peer as the name suggests is a network of computers that communicate with each other by using specialised P2P softwares...

What is a tracker?

A tracker is a server that assists the communication between peers(you and other people using client) actually it acts like a medium between all the peers to communicate. It is mainly used to get information about the peers , and other statistics..

What does torrent file contains?

A torrent file contains urls of multiple trackers and metadata of the files shared and the tracker. If you just edit a torrent file you will see some un-understandable garbage data all over the file...This is because the torrent files are encoded with 'Bencode'.

The concept of seeders and leechers

The seeders are the people that have already downloaded the file (in full or part) and are open for uploading i.e. allow others to download

Leechers are the people those are downloading the file.

So, the more the seeders the faster you can download.

How torrent actually work?

The main feature of a torrent client is that it can download large files without heavy load on the network and server computer and uses P2P network for getting the job done ...

Rather than connecting to a single server host on the network , Torrent Client connects to a large group of hosts to download and upload a file simultaneously. Each host on the network behaves as a client as well as a server.

Let us take a small example.

You want to download a 100 MB file and you are open to upload the same file as well. Now this 100 MB file is actually divided into small parts.

Say 100 parts of 1 MB each.

You are downloading the file and say it is 5% complete. In the 5% of your completion you have say 3 of 100 parts as done.

Now for those 3 completed parts your torrent client will act as seeder and for rest 97 parts your torrent client will act as leecher.

This feature allows even the users with low bandwidth to download and upload files to multiple recipients

For uploading a file the person first create a torrent file that can be distributed over FTP , HTTP etc..Then the file is hosted on his machine and acts as a Bit-Torrent node and serves as a seed. Other people with torrent files can give it to their own Bit-Torrent Node which acts as a peer , seed , leech ..Then the file is downloaded by connecting to other seeds , peers..

The first thing a torrent client does is to get the initial reception of peer data from the tracker url (located in the torrent file) Then after getting the peer information the torrent client start downloading files. The files shared by a torrent are converted to fragments/pieces these fragments are small sized files which are easier to transfer. It’s done so that we could download each fragment from a different peer thus increasing the transfer speed and less chances of corruption..

The authenticity of each file part is verified by a crypto graphical hash contained in the torrent file. During the whole transfer the torrent client often checks the tracker url for the peer stats(New peers connected)..As a peer completes the download it becomes a seed.

The health of a torrent depends on the shift of users from leechers to seeders..

Just open the torrent file found from above sites into the torrent software of your choice.
Depending on your torrent client software, you can tweak around the settings according to your needs like increase the no of fragments, increasing the fragment size etc etc...