Bittorrent is an alternative to other peer-to-peer networks, such as Limewire. Peer-to-peer (P2P) is a way of distributing files between users, rather than downloading directly from a central server. This offloads the overhead of file distribution from organizations and moves it to the customers, making it cheaper to provide software files.
How Bittorrent works
Bittorrent (BT) is a protocol that allows an initial file “seed” to be provided to users to download. Once the initial batch of users have received the initial file, they in turn become seeders to new users. What makes the BT protocol different is that, rather then everyone just being receivers of the file, each person is also a supplier of the file. Each person who is downloading the file is, at the same time, also uploading the file to other recepients. This practice reduces the cost and burden on any individual system, provides redundancy to file distribution, and reduces dependency on the original file uploader.
Briefly, a seeder is a computer that contains the entire file and is only uploading it to users. A leecher is a system that doesn’t have the complete file and therefore is still downloading the file while uploading the parts the system does have. Obviously, if there are no seeders available, then people end up sharing the same bits of data and no one ends up with the complete file.
BT files are found via search engines. Though Google and Yahoo! can be used for these searches, it’s usually easier to use a dedicated BT search site, such as The Pirate Bay. These sites do not provide the files themselves; they simply provide links to the .torrent files people have provided.
The .torrent files are what are downloaded by users and given to a BT client program. The client program then uses the information in the .torrent file to actually find seeders on the Internet and download the actual software file. The .torrent file IS NOT the actual software you are looking for; it is simply a “map” to locate the desired file.
The below definitions were borrowed from http://www.vladd44.com/torrent/terms.php.
- Torrent: A small metadata file which contains information about the data you want to download, not the data itself. It is downloaded from a web site (BitTorrent file extension is .torrent) by clicking on a download link. It can also be saved to your computer. This is useful if you want to be able to re-open the torrent later on without having to find the link again.
- Peer: A peer is another computer on the internet that is sharing the file you wish to download. Typically a peer does not have the complete file, if it did it would be called a seed. Peers are also called leeches, to distinguish them from those who have completed their download and continue to leave their BitTorrent Client running and act as a seed.
- Seed: A computer that has a complete copy of the specific torrent you are downloading . Once your client finishes downloading, it will remain open until you click the Finish button. This is known as seeding. You can also start a BitTorrent Client with a complete file, and once BitTorrent has checked the file it will connect and seed the file to others. It is good to continue seeding a file after you have finished downloading, to help others finish. Also, when a new torrent is posted to a tracker, someone must seed it in order for it to be available to others. The tracker doesn’t know anything of the actual contents of a file, so it’s important to follow through and seed a file if you upload the torrent to a tracker.
- Reseed: When there are zero seeds for a given torrent (and not enough peers to have a distributed copy), all the peers will get stuck with an incomplete file, since no one in the swarm has the missing pieces. When this happens, someone with a complete file (a seed) must connect to the swarm so that those missing pieces can be transferred. This is called reseeding. Usually a request for a reseed comes with an implicit promise that the requester will leave his or her client open for some time period after finishing (to add longevity to the torrent).
- Distributed Copies: In some versions of the client, you will see “Connected to x seeds; also seeing x.xxx distributed copies.” A seed is a computer with the complete file. However, the swarm can collectively have a complete copy (or copies) of the file, even without seeds a complete distributed copy can be available if the sum total of the users have a complete copy among themselves. BitTorrent doesn’t distribute in sequential order, so this is possible.
- Swarm: The group of users that are collectively connected for a particular file. Example, if you start a BitTorrent Client and it tells you that you’re connected to 5 peers and 1 seeds, then the swarm consists of you and those 6 other people.
- Tracker: Server on the Internet that coordinates the action of BitTorrent Clients. Upon opening a torrent, you contact the tracker and receive a list of peers to connect to. Throughout the transfer, your computer will query the tracker, telling it how much you’ve downloaded and uploaded and how much before finishing. If a tracker is down and you try to open a torrent, you will be unable to connect. If a tracker goes down during a torrent (you have already connected at some point and are already talking to peers), you will be able to continue transferring with those peers, but no new peers will be able to contact you. Tracker errors are often temporary, leave the client open and continue trying.
- Share Rating: A ratio of your amount uploaded divided by your amount downloaded. The amounts used are for the current session only, not over the history of the file. If you achieve a share ratio of 1.0, that would mean you’ve uploaded as much as you’ve downloaded. The higher the number, the more you have contributed. If you see a share ratio of this means infinity, which will happen if you open a BitTorrent Client with a complete file (i.e., you seed the file.) In this case you download nothing since you have the full file, and so anything you send will cause the ratio to reach infinity. While share ratings are just displayed for your convenience, courtesy to others should cause you to keep this ratio as high as possible.
- Choked: When a connection is choked, it means that the transmitter isn’t currently sending anything else on the link. A BitTorrent Client signals that it’s choked to other clients for a number of reasons, the most common is that by default a client will only maintain –max_uploads active simultaneous uploads, the rest will be marked choked. A connection can also be choked for other reasons, for example a peer downloading from a seed will mark his connection as choked since the seed has no need to receive.
Bittorrent Safety and Security
Probably the biggest concern about BT is the sharing of copyrighted materials. Though there are many legitimate, legal uses for file sharing (such as downloading a Linux ISO image) the main purpose for many people is sharing movies, TV shows, and music. Because any digital file can be transferred, legal and illegal items may be found on a BT search engine. Because the laws differ in different countries, you have to know what is legal and illegal where you are. However, it’s generally safe to say that if a work is copyrighted, it shouldn’t be shared without express permission from the copyright owner.
Bittorrent does not offer anonymity to users. Your IP address is available to anyone on the network so users are just as vulnerable to lawsuits from copyright holders as other P2P networks. It also means you are vulnerable to attacks that target your IP address.
You may come across the term “bittorrent encryption”. This encryption is not a security feature as normally envisioned. It is simply a way to hide BT traffic from an Internet service provider. Many ISPs are starting to conduct “traffic shaping” to limit their bandwidth costs, with BT being a favorite target for throttling. Using BT encryption, the data stream is effectively hides BT traffic over the Internet and makes it harder for an ISP to detect. A list of ISPs known to throttle P2P traffic can be found at the Azureus wiki.
In my previous post I discussed port forwarding and IP “blacklisting”. To reiterate port forwarding, you need to ensure your computer is setup to forward BT data from your router to your computer; this ensures you maximize your transfer speeds. Depending on your router and BT client program, this can be done automatically or manually. You’ll have to check the help file that came with your program to see how to set this up correctly.
IP blacklisting is essentially a way to create a firewall that blocks anti-P2P companies and other organizations from seeing who is connected to a swarm and what data is being transferred. Once you install the sofware, a list of known “bad” IPs is put in a database and compared to who is connected to your BT connection. Any offenders are prevented from connecting to the swarm, so it’s a good idea to keep your blacklist database up to date. PeerGuardian and Protowall are two of the more well-known blacklist programs; PeerGuardian also has clients for Mac and Linux in addition to the usual Windows programs.
More information on protocol encryption can be found in Rav009′s Bittorrent Privacy and Safety Guide.