Today I was talking to Charlie (my youngest brother) about various methods of downloading stuff. He was telling me how people at his highschool use lots of "Limewire", a Gnutella2 program. The problem with Limewire is that it has become mainstream. Once any geek tech goes mainstream, it gets watered down by the common, less technical, users' different needs and uses. Geeks tend to move on to newer, better technology, if only to get away from the n00bs.
BitTorrent became popular after the demise of Kazaa and many of the other [mostly Gnutella/Gnutella2] programs, because while being centralized, it doesn't depend on any one central "mother" server. Anyone can host a BitTorrent tracker.
Here's how torrent files sort of work...
- Someone has a file on their computer, and they want to share it.
- They make a file, using a BitTorrent client, named something like "myfile.torrent", that is a list of people that have the file(s). At first, it only includes themselves. Anyone with a complete copy of the file(s) is called a "seed", including the original person.
- They post this .torrent file to a torrent indexing site and it also includes a description of what you will get when you download the files the torrent points to.
- You go to the index site, and are looking for "myfile". You search, and find the .torrent uploaded by the other guy, that has the files you want, according to the description.
- You download the .torrent file, and load it into your bit torrent client.
- The bit torrent client then reads the file, which lists all the people to try to connect to, in order to get the files. It starts trying to connect to all the people in the list.
- The bit torrent client makes some connections, and starts downloading pieces of the file. You are a "leech", or a "leecher".
- You now have pieces of the file(s) yourself, so Vuze now tells the torrent index site to add your contact info to the list too. This is handled by a special piece of software that the index site runs, called a "tracker". Most bit torrent clients, including Vuze, have the ability to run a tracker too, if you ever want to for some reason.
- You continue getting pieces of the file, and rechecking the list of people, making new connections as people get added to the list. The bit torrent clients are smart enough, that they will give out different pieces of the files to different people, so that it spreads the work around. You might be trying to get pieces 3-8, while serving out 1-2, and someone else is trying to get 1-6, while serving out 7-8.
- Once you have the whole thing, you should not immediately take it out of the bit torrent client. You should try your best to "seed" it back out until you have seeded out at least as much as you have downloaded (1:1 ratio). Many torrent index sites will give you boosted abilites for seeding higher than 1-1.25 ratio, and most will punish you if you drop below 1:1 or less.
BitTorrent gets faster based on the number of people in the torrent's "cloud". Here is a java applet that demonstrates this visually. I didn't write this. It was posted many years ago at this link, which has long since been broken. I found a guy who pulled the code out of the Way Back Machine, and updated it so that it can be compiled again. So I recompiled it, and now you can play with it.
To play with the BitTorrent Simulator, CLICK HERE.