What are torrents?
Torrents are simply a way to distribute files.
Now to understand WTH is seeders and leechers , first let’s take a look at a simpler method of sharing files — Hyper Text Transfer Protocol i.e. HTTP.
HTTP is used when you download files from a website using your web browser, or something like Internet Download Manager. (For example, when you download some Software, or drivers from manufacturer’s website, it’s usually done via HTTP).
How HTTP works is pretty simple.
Let’s say Jetbrains wants to distribute a 30-day latest trial version of WebStorm. They buy a computer, connect it to the Internet, place a copy of the WebStorm image on its hard drive, and configure some software (like Apache web server) to allow people to download the image.
When a user wants to download the image, he sends a request to Jetbrains’ web server. The web server starts replying with the WebStorm’s image data as fast as the Internet link between the two of you permits.
When the image is being transferred between the two (server and user), two things are happening simultaneously — upload of the image from the server, and download of image to the user’s device. (You can think of upload process as a person speaking on the phone, and download process as a person on the other end taking notes).
This is a pretty simple and convenient method of file sharing. But it has some drawbacks as:
— Someone needs to set up a server and buy a very fast Internet connection. If the server’s Internet connection is 500 kb/s — either one client can download at 500 kb/s, or if two clients are downloading, the speed will be divided among them — and each of them will get 250 kb/s.
- If one of the clients has a slow Internet— let’s say capped at 50 kb/s, the other client can download at 450 kb/s.
- On the other hand, if 15 clients with fast Internet connections are downloading, none of them will get a speed of more than 33 kb/s (500/15). Suffice it to say, Jetbrains’ servers have a very fast Internet connection.
It’s vulnerable and easy to block. If you don’t want your users to download Webstorm images, you just have to block Jetbrains’ sites. I can’t think of why non-programmers would want to block Webstorm’s image downloads, but in case of censored content (like Government crimes), or illegal content (like pirated movies), or both (NSA leaks), we can see why the government would want to block it.
Now let’s see how torrents solve these problems:
Let’s say you are a person with access to the proof of government crime (1GB of files). You tried to host it on a website, but the government blocked it. You now want to share it with the rest of the world.
What you do is — you create a torrent of the file!
A torrent is basically a very small file containing details of the files (names, file sizes, MD5 hashes etc.) that are shared using that torrent file. You can create it easily using your torrent client (uTorrent, Azureus, Transmission etc). You also have to add tracker details to the torrent file. A tracker is a server whose job is to distribute peer lists to new peers ).
You host this very small torrent file on some torrent sharing website. People who want to download your government crime proofs can go to the torrent website and download the torrent for it.
They then tell their torrent client to download the files described in the torrent. Since there is no server (like Jetbrains’ server for Webstorm’s image) to download the torrent, from their torrent, client talks to the tracker explained as:
Client — “Bro, any idea where I can get these govt. crime videos?”
Tracker — “I don’t know man, try these people” (gives client a list of other people interested in downloading the file).
Client — “By the way, add me to your list. Just in case anyone’s interested” (gives him his IP address)
Tracker — “Cool”
Your torrent client goes to each of the people in the list so obtained, and asks them if they are interested in sharing the files. Let’s say out of the 48 people in the list, 4 say they have File 1, 3 say they have File 2, and 6 say they have both the files. 9 say that they don’t have any files, but would like to download any files you have. The rest may or may not respond.
So you start downloading File 1 from all of those 4 + 6 people who have it, and File 2 from all of those 3 + 6 people who have it. Since you’re downloading the file, they are uploading it on the other end of the internet connection. Now since you downloaded it and used other people’s internet (in addition to your own), it is your moral responsibility to allow other people to download it from you.
Thus a torrent is a group of (100s or 1000s or more) people collaborating and giving each other pieces of the file until everyone has a copy of the entire file. It starts with the person who created the torrent simply uploading it until many people download, and then they upload it in turn and the torrent spreads.
So if the file is 1GB in size, the creator has to upload at least 1GB for it to spread. Ideally, he’d upload about 3–4GB, and that would give him 3–4 more friends, who’ll help spread it further.
This is why your torrent client is both downloading and uploading the torrent file. Downloading it — so that you can use, and uploading it so that others can also access the file.
Important Points to note:
1) All people engaged in the activity of sharing the torrent are called peers.
2) The people who are uploading are called seeders.
3) The people who are downloading are called leechers.
4) A lot of people, however are both downloading and uploading at the same time and can be called both (downloading parts they don’t have and uploading the ones they do).
5) If the number of seeders is more, you are likely to download the file faster.
6) If the number of leechers is more, the download is likely to be slow.
Advantages of torrents:
- Central servers (i.e. the website where you upload the torrent, and the tracker) don’t have to share a lot of data. Both torrent files and peer lists are very small in size, hence these servers don’t cost that much to set up and maintain.
- Difficult to block — since no central server is involved in the actual distribution and sharing of the files, it is difficult to block given its distributed nature.
Thus you may realize why uploading (seeding) is so important to the concept of torrents. You are able to download only because someone else was uploading it for you. A torrent dies quickly if people refuse to upload. It may also happen that no one wants to download the torrent any more, and people who are willing to upload don’t find any takers, and after some time they give up and stop uploading that particular torrent.