Jump to content

BitTorrent

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 24.60.178.249 (talk) at 14:41, 3 November 2004 (Specific content). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

BitTorrent is a peer-to-peer (P2P) file distribution tool written by programmer Bram Cohen which was debuted at CodeCon 2002. It is written in Python and is released under the MIT License.

Brief background

BitTorrent earned its fame by allowing many people to download the same files without slowing down the transfer for each other. It accomplishes this by forcing all downloaders to also upload the pieces of the files that they have to other downloaders, so that each member of a swarm is contributing to the distribution of its contents.

How it works

Unlike traditional file sharing systems, its primary intention is to provide an efficient way to distribute the same file to a large group of people by having everybody that downloads a file also upload it to others. First, a small file with a .torrent extension is distributed via conventional means. This file is static, so it is often placed on regular websites or even distributed by e-mail. The .torrent file contains hashing information for blocks of the file, so the size of it depends on the size of the file or group of files that it refers to. It also contains, hardcoded, the address of a so-called "tracker server" (often called simply "tracker") which is used to locate sources that have the file or parts of it.

animated GIF, animated MNG

The list of trackers is fixed for any one .torrent file. It also provides statistics about the number of transfers, number of nodes who have a complete copy of the file and number of nodes who only have a partial copy.

The desired file or collection of files is downloaded from the sources provided by the tracker server, and while it is downloaded, it is also uploaded to other sources, with the client utilizing the amount of bandwidth available to it unless a limit is set by the user. By uploading parts of the file while it is downloading, each node inevitably contributes to the distribution of the file — in fact, nodes with high upload bandwidth are also automatically connected to more nodes to download the file from. This is referred to as "leech resistance". As the name implies, leech resistance reduces the impact of people who wish to download the file as quickly as possible and then disconnect without helping to upload the file to others.

When a user begins downloading a file, BitTorrent does not necessarily start at the beginning of the file. Random pieces of the file are initially downloaded by all users. Then, users connect with one another to share pieces of the file. If enough users are connected to one another, all will eventually obtain the entire file. Of course, initially someone must possess the entire complete file to begin the process. This method has the effect of causing download speeds to increase when more users connect to download/upload a file. When there are no longer any nodes connected to the tracker server who possess the complete file (so-called "seeds" or "seeders"), the nodes cannot finish the download if they do not have a complete copy distributed amongst themselves.

BitTorrent vs. other P2P clients

File:BitTorrent download.jpg
BitTorrent download window

The method used by BitTorrent to distribute files parallels to a large extent the one used by the eDonkey2000 network, but nodes in this file sharing network usually share and download a much larger number of files, making the bandwidth available to each transfer much smaller. BitTorrent transfers are typically very fast, because all nodes in a group concentrate on transferring a single file or collection of files. Furthermore, the standard eDonkey2000 protocol provides little "leech resistance".

There are two major differences between BitTorrent and the better-known peer-to-peer file-trading systems, which advocates suggest make it less useful to copyright violators. First, BitTorrent does not offer a search facility to find files by name. A user must find the initial .torrent file by other means, such as a Web search. Second, BitTorrent makes no attempt to conceal the host ultimately responsible for a given file's availability: a person who wishes to make a file available must run a tracker on a specific host or hosts and distribute the tracker address(es) in the .torrent file. While it is possible to simply operate a tracker on a server that is located where the copyright holder cannot take legal action, this feature of the protocol does imply some degree of accountability that other protocols lack. It is far easier to request that the server's internet service provider shut the site down than it is to find and identify every user sharing a file on a traditional peer-to-peer network.

BitTorrent also seems to be the only P2P protocol to be widely adopted for legal uses, especially for distribution of various Linux distributions. Following the success of the BitTorrent protocol, its creator was hired to develop a means of distributing patches and other content for online video games in 2004, proving that there are some less controversial reasons for the development of this technology.

A similar method to BitTorrent was the Participation Level introduced in KaZaA in 2002. The Participation Level would increase when you upload and decrease when you download. Then when you upload a file to someone else the person with the highest Participation Level gets it first, then they upload it on to the person with the next highest Participation Level, and so on. Think of a pyramid, with the people who have the most upload bandwidth available at the top and on each level down you have people with slightly less bandwidth until you get to the bottom. This is the most efficient way to distribute a file to a large number of users: even the people at the bottom of the pyramid probably get the file faster than if the file was served by a non P2P method.

Unfortunately the Participation Level was easily cheated by using the unofficial KaZaA Lite which is almost as popular as the official client.

While initially created to distribute legal files, such as GNU/Linux distributions or large movie trailers, BitTorrent is also being used by some to download copyrighted music, movies, and software, similar to many other peer-to-peer networks. It is still contested whether or not this is legal; see peer-to-peer for more information. BitTorrent was allegedly used to distribute high-quality bootlegs of the movie The Matrix Reloaded created from film prints just days after the movie was released in theaters. There were BitTorrent links on Slashdot to the Half-Life 2 source code (soon after it was leaked in October 2003), as well as to the (incomplete) Windows NT and Windows 2000 source trees in February 2004 (amidst rumored third-party leaks).

However, BitTorrent can also be used for legal purposes by software developers who want to ease the bandwidth strain on their servers. If a developer offers a large file for download, the bandwidth limit of their server may be exceeded if a large number of people download the file. By offering the file via BitTorrent, they transfer much of the bandwidth burden to downloaders of the file. For example, the demo of the flight sim X-Plane is offered via BitTorrent.

New Developments

The BitTorrent protocol is still under development and therefore may still acquire new features and other enhancements such as improved efficiency.

Web seeding

One recently-implemented feature is web seeding. The advantage of this feature is that a site may distribute a .torrent for a particular file or batch of files and make those files available for download from that same web server application; this can simplify seeding and load balancing greatly once support for this feature is implemented in the various BitTorrent clients. In theory, this would make using BitTorrent almost as easy for a web publisher as simply creating a direct download while allowing some of the upload bandwidth demands to be placed upon the downloaders (who normally use only a very small portion of their upload bandwidth capacity). This feature is an unofficial one, created by the author of a specific third-party client.

"Broadcatching" — Where BitTorrent meets RSS

Another proposed feature combines RSS and BitTorrent to create the perfect content delivery system, dubbed broadcatching. Since a Steve Gillmor column for Ziff-Davis in December 2003, the discussion has spread quickly among many bloggers (Techdirt, Ernest Miller, and ex-Tech TV host Chris Pirillo, for example). However it's Scott Raymond whose entry best explains what has everyone excited:

"I want RSS feeds of BitTorrent files. A script would periodically check the feed for new items, and use them to start the download. Then, I could find a trusted publisher of an Alias RSS feed, and 'subscribe' to all new episodes of the show, which would then start downloading automatically — like the 'season pass' feature of the TiVo."

While potential illegal uses abound as is the case with any new distribution method, this idea lends itself to a great number of ideas that could turn traditional distribution models on their heads, giving smaller operations a new opportunity for content distribution. Similar to Lindows, the system leans on the cost-saving benefit of BitTorrent, where expenses are virtually non-existent; each downloader of a file participates in a portion of the distribution.

RSS feeds layered on top keep track of the content, and because BitTorrent does cryptographic hashing of all data, subscribers to the feed can be sure they're getting what they think they're getting, whether that winds up being the latest Sopranos episode, or the latest Sveasoft firmware upgrade.

Despite ample discussion, one of the first practical applications of this idea has only surfaced recently. Programmer Andrew Grumet has announced the release of a beta version of an RSS and BitTorrent integration tool for Radio Userland's news aggregator, available here.

Another solution exists here: TV RSS

Also adding that anime fansub communities often use Bittorrent for their releases and the most popular announce sites like animesuki, Tokyo Toshokanand downloadanime.org have RSS feeds.

Azureus has also an RSS feedreader plug-in which can be used in conjunction with the sites mentioned above.

Podcasting is starting to integrate BitTorrent to help podcasters deal with the download demands of their MP3 "radio" programs. Specifically, iPodder supports BitTorrent for the RSS 2.0 enclosures that power podcasting.

WebTorrent

WebTorrent is an application of BitTorrent proposed for websites. WebTorrent would use the BitTorrent solution on webservers, so as to minimize the Slashdot effect on websites. In a few words, a small site would not suffer or go offline because it suddenly grew with too many visitors. It has been estimated that large sites like Wikipedia, which live on donations and apply almost all their funds to more server power could save thousands of dollars.

Achieving content high-availability is one of the most important goals of a webserver system. In order to achieve high-availability in the traditional server-client setting, the server must have the bandwidth and the hardware needed to handle any peak load that might occur. However, this is a very costly and rarely practical solution, especially for servers that are subjected to the Slashdotting effect. We propose a WebTorrent system that is based on BitTorrent and will leverage the resources of the clients to help the server make the content more available. Such a system will alleviate the load on the server and reduce the client download times.

One current obstacle for WebTorrent is that the existing BitTorrent infrastructure is not suitable for use on this level; BitTorrent was designed for efficient transfer of single large files, where the content that WebTorrent tries to enable is more likely to be a large number of smaller text and image files. WebTorrent attempts to bundle web content in order to make larger files and to modify BitTorrent to operate more efficiently on smaller file sizes.

BitTorrent Clients — Dedicated BitTorrent Clients

  • The Official BitTorrent Home Page - The home of Bram Cohen's original client.
  • ABC ( Yet Another Bittorrent Client ) [1] - ABC is an improved client for the Bittorrent peer-to-peer file distribution solution.
  • Azureus Java BitTorrent Client [2] - Azureus offers multiple torrent downloads, queuing/priority systems (on torrents and files), start/stop seeding options and instant access to numerous pieces of information about your torrents.
  • BitComet [3] - BitComet is a closed-source Windows native client with torrent creation features, a queuing/priority system, and a large amount of information available to the user. Written in C++, this client is extremely quick even on slower machines.
  • BitSpirit [4] - BitSpirit is a powerful and easy-to-use BitTorrent client which provides not only full BitTorrent protocol implementation but also many personalization features.
  • BitTornado [5]
  • ctorrent [6] - CTorrent is a BitTorrent client written in the C programming language.
  • eDonkey2000 [7] - P2P Client that supports eDonkey and BitTorrent as well as other protocols.
  • libtorrent [8] - libtorrent is a C++ library that aims to be a good alternative to all the other bittorrent implementations around. It is a library and not a full featured client, although it comes with a working example client.
  • rtorrent [9] - rtorrent is a powerful and efficient text-based client for *nix. It uses the libtorrent library which is written in C++. (Not the same one as above)
  • Shareaza [10] - P2P Client that supports Gnutella2, Gnutella, eDonkey and BitTorrent. Torrent files become automatically decentralized by being shared through the the other P2P networks. Was banned from some Trackers in the past, with the reason being 'poor implementation' or 'bad behavior'. A few bans linger, but many have been lifted.
  • TorrentStorm [11] - Features piece files and a built in tracker.
  • More BitTorrent Clients...

Torrent Sites

Search engines or categories

Forums

Specific content

Other

Torrent Creation Tools

WebTorrent