BitTorrent has helped change the way we get files on the Internet. No longer do we depend solely on a single servers maxing out their allotted bandwidth on a first come first served basis. No, that is the distribution method of the past where as today we have the BitTorrent Protocol. This new method of communicating and sharing files over the Internet has lots of benefits as long as you know how to properly take advantage of them.
In Theory
BitTorrent relies on just a few core ideas; sharing (known as seeding), downloading (know as leeching), users either seeding or leeching (peers), files (usually in the form of .torrent), BitTorrent clients (software), and Torrent sites (trackers/indexers). Since there are peers that are seeding or leaching or both, the distribution model is no longer centralized but spread out. The more popular any given torrent is, the more peers there are uploading and downloading. The more peers, the faster you files download.
Torrent Files
Key to the BitTorrent network are the torrent files. These little text files contain information about what files they are trying to share, and where to find users to download from. They do not how ever contain any actually content. They are more or less just a link to where the actual files are.
Trackers
Trackers are websites that keep track of .torrent files. When you upload a .torrent file to a tracker, other users may download that file. Then the tracker will keep stats on who has what files and will help peers connect to other peers so that they too can download the actual files from the other users. How ever not all torrents need trackers. Torrents using DHT (Distributed Hash Tables) allow users to swap files without the use of a tracker at all.
There are many great trackers out there.
- The Pirate Bay
- Demonoid
- Mininova
- Digg Torrents (Uses Google custom search)
- btjunkie
Seeders and Leechers
Seeders are the guys who will either upload the original content or after finishing the download, continue to share. This sharing is important since it increases the speed at which the torrent can be downloaded by others.
Leechers are the ones who have yet to complete a full copy of the download. The reason I say full copy is because leechers do actually share files. Well actually just parts of the original file. They share what ever part they themselves have completed downloading. This way, there is less stress on the seeders. Also this allows for the files to spread more quickly.
Lets look at this scenario. John has the newest copy of his custom Ubuntu. He wants to share it with a bunch of his friends. So he creates a .torrent file with all the information needed to share it. Then he emails the .torrent file to 10 friends. Sally noticed the new email first and starts downloading. So far there is one seeder (John), and one leecher (Sally). So sally starts to download from John and its going at a mere 40 KBps. Then Jeff checks his email an hour later. Jeff starts to download. By this time, Sally has completed 30% of the original download. So when Jeff starts his download, he will be able to download at 130% (or 1.3) availability. This sounds weird since how can you have 30% more of the file available? Well that is because Sally is also sharing her 30%. This means that John does not need to provide 100% of the file to Jeff only what ever he does not get from Sally. Finally 3 more hours go by and Jill, Mike, and Pat all start downloading. Sally by now ha 100%, Jeff has about 80%, John is still sharing, and Jill Mike and Pat all have nothing yet. When they connect to the other users (called a swarm), they each get a little bit of the file from Sally since she has all of the file, they get some from Jeff because he has most of the file, and they get some from John. After 30 minutes though, they each have a different amount of the file and some of them have different parts because while Jill downloaded most from Sally, Mike Got Most from John. Then Mike and Jill start sharing each of their portions with each other and their download speeds increase some more. At this point, John has to turn his computer off. However the rest of the people can continue to download as long as there is someone in the swarm with 100% of the file or two people who have at least 100% when combined.
This would not at all be possible if John just had a simple file server set up on his home computer. Each person would have to download a copy in full from John and this would take a week.
The Client
One of the most important parts of your downloading experience has to do with what BitTorrent client you use. There are tons available to you depending on OS, GUI, features, easy of use. The trick is to find one that works best for you as is in most cases with software.
Being a F/OSS user, I'm partial to Free and Open Source products. On Linux and Windows I prefer deluge. On OS X Transmission all the way.
The reason I choose these clients over others is simple.
Deluge
- Fast
- Lots of Option
- Built in customizable block lists
- Automatic completion moving
- Encrypted Streams
- Windows and Linux Clients available
- Web interface
Transmission
- Small and light weight
- Dead Simple
- Built-in block lists
- web interface
- command line interface (useful for automated start and stop)
- OS X and Linux
There are lots of reasons one would want to take advantage of this technology. Blizzards World of Warcraft uses this technology to distribute the massive game patches quickly and efficiently. Also using BitTorrent to distribute podcasts makes takes the stress of the podcasters servers.
Hopefully though, old media will find a way to adapt and distribute through new vectors such as BitTorrent rather than fight the change.