A kindergarten class is assigned homework with 10 questions.
The smartest kid in the class completes the homework and knows all the answers are correct, and shares one separate answer to 10 separate classmates.
The separate classmates meet each other at recess and give each other the answer they have, so they each have or share the same answers.
At the end of recess, each classmate has met enough other kids to have all the correct answers and will get all 10 answers correct
The smart kid that initially did the homework is the seeder. The other classmates are the leechers.
Imagine you’re in a classroom and trying to get the phone numbers for all of your classmates to study from.
**Approach A:**
Step 1: you write down everyone’s phone numbers, then give it to Amy. (the other 20 people wait) Step 2: You write down everyone’s phone numbers, then give it to Brad. (the other 19 people wait) Step 3: You write down everyone’s phone numbers and give it to Corey. (the other 18 people wait) Etc… one person is copying the entire file and passing it out individually.
**Approach B:**
Step 1: you write down your phone number and give it to Amy. (the other 20 people wait) Step 2: You write down your phone number and give it to Brad. AT THE SAME TIME, Amy writes down your phone number and hers and gives it to Corey. (only 18 people are waiting) Step 3: You, and Amy, and Brad, and Corey are all giving out parts of the list to four other people ( 15 people are waiting). Everyone is working cooperatively to give everyone what they need which often speeds up the process exponentially
This has certain benefits: no one is sitting, waiting, twiddling their thumbs (efficiency); if Amy is a slow writer, we can have one person work with her while other people work with the other students (bandwidth), if you decide to leave the classroom, everyone else can still copy down all the information quickly with what information they have already.
The first person (and people who keep sharing after they have it) are “seeding”, everyone who is getting it then immediately quits without sharing back is “leeching”.
Before torrenting, a user would enter a queue and wait for their turn to download a file from the server. You would wait in line, download the complete file and leave.
Torrenting was created for more efficient and faster downloads. Instead of the person at the head of the queue downloading the entire file while everyone behind them waits, they download a small part of the file, then share it with the three people in line behind them, who reshare it to everyone else.
Everyone is simultaneously downloading and uploading different parts of the file, until everyone in line has the complete file.
Seeding means that you are sharing the completed file with people, and leeching means that you are downloading the file.
Person A starts with a file that they want to share. 2 other people want the file. Person A splits the file into 2 parts, and gives each person a different part. Now Person B can give Person C the part they have, so Person C will have the whole file. Person B can get the part they need from Person A or Person C.
In a real example the file will be split into hundreds or thousands of parts, and people will start and stop sharing over time. A seeder is someone who shares file parts with other people. A leecher is someone who downloads, but doesn’t share the parts they have. Most (all?) torrent programs let you set limits on what or how fast you seed.
There are several benefits to torrents vs direct downloads: Once all the parts have been given out once, the original seeder can stop sharing and it is still possible for everyone else to get the whole file. The burden of sharing the file is distributed between all the seeders. Seeders with a faster connection can share more than a seeder with a slow one. And rather than needing one fast connection (which can be expensive), if many people share at the same time on a normal , the end user can download a lot quite quickly. Hence it is popular for distributing files like Linux .isos.
Latest Answers