You’d like to buy a book. One option is to go to the bookstore and spend money on it (direct download) but you don’t want to do that.
So you talk to your friend Alberto. Alberto knows everyone, and has a long list of all the people who own this book and are willing to photocopy a page (seeders).
You send a letter to each person, asking for a specific page number (leeching).
They send a letter back with that specific page. Sometimes you are missing a page, or it’s unreadable. That’s ok, you have that list and you can just ask someone else!
Now you have all the pages of the book. Because everyone helped you, you now tell Alberto that you’re willing to help. You give him your address, and you start getting letters asking for pages (becoming a seeder).
That’s fine. You can enjoy your book and help others get pages too.
A torrent file is like an invite to a potluck. You arrive and say “hey guys I’ve arrived, what’s for dinner?” and everyone gives you a bit of the food they have. Eventually you’ve got a full meal and you can eat.
Those people are seeders and are giving you parts of a file to download from their own copy of the file. You’re a leecher who’s downloading the file. The file just begins the process of you connecting to the network and downloading from seeders.
The best part is that, unlike a potluck, you’re just copying the file instead of taking the food.
Imagine asking someone to draw a picture of a dog.
In a typical direct download, someone has the picture of a dog, and they draw a copy of the dog for you and give it to you. The whole file is given to you.
Whereas in a torrent type of download, the files are broken into chunks. Imagine now after requesting it you have many people with a picture of the same dog, but one person draws the dog’s ears, one draws the face and snout, one draws the arms and the last person draws the legs and tail. The biggest advantage is rather than one person going through the work of drawing the whole picture, many people can work together to deliver your picture. After you receive a part of the dog picture, you are in turn able to copy down that part of the dog for someone else too.
Seeding means being available to copy the picture from (upload). Leeching means requesting parts of a picture from others (download).
It’s like if you had a 100-piece jigsaw puzzle but you had thousands of users each contributing a few pieces each. The torrent software pieces them together.
Even if you had only 20 people contributing, they each need only contribute 5 pieces on average. Compared to if you only had one seeder, then you might as well be downloading the entire file from them.
It can even sequentially request for piece 1 to 100, so let’s say you wna watch a movie WHILE it’s torrenting, well you can, provided the download speed is faster than your watching speed.
I believe the protocol was originally invented to distribute the Linux OS source code.
Basically, the source code is huge, and any time a new release comes out, everybody wants a copy and so the servers that have the copy are brought to their knees. Many entities volunteer the use of their own servers, so when a new Linux version comes out, it gets sent to all those servers first, and they all release together. The problem is that those volunteer entities hate having their own servers brought to their knees and often drop out, making the problem worse again.
Bittorrent was invented to combat this problem. Basically, everybody downloading the Linux source starts becoming both a server and a client.
The source (typically a single giant archive file) is broken into many manageable chunks and distributed among a few volunteer servers as above. Those are called seeders. One master server keeps track of everybody who has any of the chunks and which chunks they have. Initially, this list is only the seeders.
Every client contacts the master server to get the torrent data. Then, given a list of chunks and seeders, they pick one chunk and one seeder at random and ask for that chunk. They may do this simultaneously for two or three chunks at a time.
Once a client has a chunk, it informs the master server that it has it, and that client gets added to the list of sources for that chunk.
Fairly soon, all the clients join the pool, and the load on the original seeders is reduced as the clients start grabbing chunks from each other. Once a client has the complete set, it’s considered to be another seeder.
A leech is a client that doesn’t share the chunks it’s downloaded. It only downloads. This may be out of laziness, cheapness (don’t want to pay for bandwidth), paranoia (don’t want to be caught distributing pirated material), or because their ISP has set up a firewall that won’t let them do it. It’s considered anti-social to leech, and some pirate sites will ban you for doing it. But if your ISP has set up a firewall to prevent it, it might not be your fault.
All you need to get started is access to the original torrent file, which tells you where to find everything else you need. That torrent file will be published somewhere for you to find it. There’s also a protocol called “magnet” that makes it easier to find the torrent file.
—-
Now for a question of my own: How do “magnets” work?
You and your friends want to build a 5 piece Gundam. So Billy buys the left leg, you get the right leg, Jimbo buys the torso/head, Bobby gets the right arm and Allan buys the left arm. You all decide to share the 5 pieces and one person gets all 5 pieces on a weekend when they request it. You all decide to take a picture of the 5 pieces together when you have it for the weekend. Now you all have a piece, and the whole picture.
It’s basically a decentralized way to store, transfer, and download files because the files are split into different parts which are duplicated across the whole network. All anyone needs to download the whole is just download one of each part (wherever they are) and put them together.
Ex: traditional file downloading works wholesale: file XYZ is on computer A and gets transferred to computer B.
Torrenting is basically a way of splitting up file XYZ into X, Y, and Z across computers A, B, and C, and then downloading them from wherever they happen to be to reassemble into XYZ.
Latest Answers