BitTorrent
From Computing and Software Wiki
BitTorrent is a peer to peer file sharing protocol. The protocol works in a way such that there is not a single host distributing the file, instead, all users downloading the file also share in uploading as well. This reduces the burden on resources by the distributer as all users wishing to download the content are taking part in uploading pieces and parts of the data file.
Contents |
How It Works
The method allows essentially any kind of data to be distributed in a manor such that all users downloading the same file, referred as leechers, will upload bits and parts of the file that they have already downloaded. Users that have the complete file and still connected to the tracker are referred as seeders. The tracker is simply a list of all users that are currently connected to the torrent of interest, while categorizing the number of leechers and seeders to determine the healthiness of the torrent.
Users download "torrent" files that are created specifically for the file to be distributed. Using a bittorrent client, the user opens the torrent file which contains the URL of the tracker that the torrent was published to, and attempts to connect to the tracker. If the tracker is up and running, the user enters the swarm which is the collection of all the seeders and leechers. The client makes many peer to peer TCP connections to trade the fragments of the file. Essentially, having lots of users with the file of interest being downloaded, the transfer speeds are maximized by sharing bits and parts of the files that has already been downloaded [1].
In general, most bittorrent clients have their own policies that determine how fast or slow a download achieves. Some clients require that the ratio of downloads and uploads be fairly even in order to achieve the fastest downloads, a policy of fairness. Other clients may attempt to exploit the generosity of the seeders and allow leechers to download at full speeds without having to contribute in uploading.
Creating a Torrent
Most bittorrent clients support creating your own torrent files. The setup wizards will ask for certain details such as the announcing tracker and the file you wish to distribute.
The file being created gets fragmented into many small pieces of equally sized data from 64kB to 4MB. A checksum is created for each of the fragmented pieces and stored in the torrent file with a hashing algorithm. When a complete fragment is downloaded by a user, the checksum is compared with the checksum in the torrent file for integrity. If the file is corrupt, the data will be re-downloaded [2].
Upon completion of creating a torrent, it is normally then hosted on many torrent search engines that have trackers for each of the torrents. Users would search for the file of interest, download the torrent and proceed in the process of downloading the file.
Drawbacks and Issues
BitTorrent relies heavily on the cooperativeness of the users involved in sharing the files. It is highly necessary for users that finish downloading to stay connected to the tracker for as long as possible to allow better distribution of complete and rare pieces of the file. However, greediness of users lead to dying trackers as they disconnect from the tracker as soon as they finish the downloading the file. This in turn reduces the number of seeders and fewer complete files to be distributed. In the worst case that there are no seeders left and all the leechers downloading are missing a rare part of the file, all the users remaining in the swarm will never complete the file. Therefore it is essential that there is cooperation between the users to give as well as take.
BitTorrent is in no way anonymous as all past and present users connected to the tracker can have their IP addresses obtained [2].
Popular Clients and Search Engines
Clients
- BitTorrent Client is the first original client
- Azureus BitTorrent Client is a Java based client for cross-platform compatibility
- µTorrent is a light-weight, feature filled and easy to use client
Search Engines Most search engines
See Also
References
[1] Howstuffworks - How Bittorrent Works Carmack, C
[2] Wikipedia - BitTorrent
--Leunga5 18:35, 13 April 2008 (EDT)