Search

The Online Encyclopedia and Dictionary

 
     
 

Encyclopedia

Dictionary

Quotes

   
 

BitTorrent

right

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 was released originally under the MIT License, but the current license is the BitTorrent Open Source License .

Most notably, BitTorrent allows many people to download the same file without slowing down everyone else's download. It does this by having downloaders swap portions of a file with one another, instead of all downloading from a single server. This way, each new downloader not only uses up bandwidth but also contributes bandwidth back to the swarm. Such contributions are encouraged because every client trying to upload to other clients gets the fastest downloads.

Contents

Why files download faster with BitTorrent

The reason files download faster using the BitTorrent protocol, is that a user's computer simultaneously downloads chunks of the file from many different computers.

Commonly, a personal computer connected to the Internet via a residential broadband connection has a much greater bandwidth available to it for downloads than for uploads. When running a file sharing application, a single computer's limited upload bandwidth slows down the upload of the file it wants to share. But if that file is divided into many smaller chunks, and those chunks are distributed to multiple computers, those computers can simultaneously upload chunks of the file to each other.

Any individual uploading computer's upload bandwidth is still limited, but BitTorrent goes around the problem of limited upload bandwidth of a single computer. A downloading computer can download chunks from many different computers much faster, using their upload bandwidth and its download bandwidth more efficiently. The net effect is as though the downloading computer were downloading the file from a single uploading computer with a much higher upload bandwidth.

How it works

Distribution via BitTorrent
Distribution via BitTorrent

Let's say you want to share a home movie you made via BitTorrent. First, you need to create a .torrent file. This file includes two things:

  • the file's name, size, and the hash of each block in the file (which allows users to make sure they're downloading the real thing)
  • the address of a "tracker" server (which we'll discuss in a moment)

Once you've used the BitTorrent software to create this torrent file, you then distribute it, for example by putting it on a website or sending it to people by email. At the same time, you'll also have to start what's called a "seed" node, a BitTorrent client that already has the full file and is willing to share it with everyone. (Otherwise there'd be no way for the process to get started!) If other people finish downloading the whole file and begin seeding it, you can turn off your seed node, but if all the seed nodes get turned off there will be no way to download the file anymore.

Each person who wants to download your movie first grabs the torrent and opens it in the BitTorrent client software.. The client then gets the address of the tracker from the file and tells the tracker that it's ready to download the file. The tracker acts as a sort of matchmaker, keeping track of who's downloading the file and matching them up with others who are doing the same. The tracker will give you back a list of people who have portions of the file, who you can start downloading from. At the same time, the tracker will give your address out to people who have copies of the file and want to share. The client will check in with the tracker every once in a while to get more people to share with and update it on how its download is coming.

Now that your client has a list of people, it tries to connect to them and start downloading from them. It asks them what blocks of the file they have and then requests a random block it doesn't have yet. (The client doesn't begin by requesting the first block of the file, since this would mean that almost all downloaders would have pretty much the same blocks, making it hard for them to swap anything.) As soon as the client finishes a block it hashes it to make sure that the block matches what the .torrent file said it should be. Then it begins looking for someone to upload the block to.

Since there are almost always more prospective downloaders than you have bandwidth for, your client has to choose which ones to share with. It picks by giving preference to the people who share the most with it. This means the people who upload the most get the fastest downloads, a property known as "leech resistance", since it discourages "leeches" from trying to download the file without uploading it to anyone. (Although, confusingly, when used in opposition to "seeds" or "seeders" as in "S/L ratio" (meaning "seed/leech ratio"), "leecher" only means someone who hasn't downloaded the full file yet.)

Though BitTorrent is good for a broadband user, the downloading speed in case of dialup connections is abysmally low and often saturates the network causing disconnections.

BitTorrent vs. other P2P clients

BitTorrent download window, using the original client
Enlarge
BitTorrent download window, using the original client

The method used by BitTorrent to distribute files parallels to a large extent the one used by the eDonkey2000 network, but nodes in eDonkey's 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. While the original eDonkey2000 client provided little "leech resistance", most new clients have some sort of system to encourage uploaders. eMule, for example, has a credits system whereby a client stores the amount of data it has uploaded and downloaded from every client and gives clients that have net upload to it a higher priority in the queue. However, the nature of the eDonkey2000 concept means download speeds tend to be much more variable, although the number of available files is far greater.

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 most popular P2P protocol adopted officially for legal uses, especially for the circulation of various Linux distributions. It should be noted that many legal files, including Linux distributions are typically available on other networks such as eDonkey2000 and Gnutella, however these are placed there by users and not generally part of the official distribution mechanism.

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 system adopted by KaZaA is flawed as it relies on the client accurately reporting their Participation Level and therefore it is easy to cheat with the many "unofficial" clients.

Legal issues

While initially created to distribute files legally, such as GNU/Linux distributions or large movie trailers, BitTorrent is also being used by some to download music, movies, and software illegally, similar to many other peer-to-peer networks. 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).

The Finnish police raided a BitTorrent site and rumours state that they arrested 34 moderators of that site [1] http://www.theregister.co.uk/2004/12/14/finnish_police_raid_bittorrent_site/ . Also, the founder and administrator of the world's leading torrent provider -- Suprnova -- felt so much pressure that he closed the site. It will not host any torrents if it reopens.

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, as well as the World of Warcraft beta.

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. (Naturally, however, ensuring that the same data reaches all nodes neglects the possibility that the original, source file may be corrupted or incorrectly labelled.)

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 http://www.grumet.net/weblog/ .

Another solution exists here: TV RSS http://tvtrss.sourceforge.net/

Also adding that anime fansub communities often use Bittorrent for their releases and the most popular announce sites like animesuki , Tokyo Toshokan http://www.tokyotosho.com/ and 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 http://ipodder.sourceforge.net/ supports BitTorrent for the RSS 2.0 enclosures that power podcasting. Also X Hollywood http://www.xhollywood.com/ aggregates RSS feeds from Bittorrent sites.

WebTorrent

WebTorrent is an application of BitTorrent proposed for websites. WebTorrent would use the BitTorrent solution on webservers, so as to allow sites to cope when the web traffic is too high. The theory is that 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. To address this problem, WebTorrent attempts to bundle web content in order to make larger files and to modify BitTorrent to operate more efficiently on smaller file sizes. A further obstacle is that the nature of websites requires low latency, however, this is difficult when a suitable host must first be found to deliver the files.

External links

  • Official website http://bittorrent.com/ and home of Bram Cohen's original client and tracker.

Software

  • Another BitTorrent Client (Yet Another BitTorrent Client) [2] http://pingpong-abc.sourceforge.net/ - ABC is an improved client for the Bittorrent peer-to-peer file distribution solution.
  • Azureus Java BitTorrent Client [3] http://azureus.sourceforge.net/ - 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 [4] http://www.bitcomet.com/ - 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 [5] http://www.bytelinker.com/intl/bs.htm - BitSpirit is a powerful and easy-to-use BitTorrent client which provides not only full BitTorrent protocol implementation but also many personalization features.
  • BitTornado [6] http://bittornado.com/ has a user interface similar to the original client, with many added features. It allows for the real-time display of peer & seed connections, pausing a torrent download, and adjustment of port range.It supports auto resume but this feature in itself is not foolproof and often fails
  • G3 Torrent [7] http://g3torrent.sourceforge.net/ - G3 Torrent is a Python based client. Offers a built-in web interface to control the client.
  • ctorrent [8] http://ctorrent.sourceforge.net/ - CTorrent is a BitTorrent client written in the C programming language.
  • eDonkey2000 [9] http://edonkey.com/ - P2P Client that supports eDonkey and BitTorrent as well as other protocols.
  • libtorrent [10] http://libtorrent.sf.net - 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 [11] http://libtorrent.rakshasa.no - rtorrent is a powerful and efficient text-based client for *nix. It uses the libtorrent http://libtorrent.rakshasa.no library which is written in C++. (Not the same one as above)
  • Shareaza [12] http://www.shareaza.com/ - P2P Client that supports Gnutella2, Gnutella, eDonkey and BitTorrent. Torrent files become automatically decentralized by being shared through 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 for version 2.1.
  • Tomato Torrent [13] http://sarwat.net/bittorrent/ - A BSD licensed Cocoa-based BitTorrent client for Mac OS X.
  • Qtorrent [14] http://thegraveyard.org/qtorrent.php - Multi-torrent client using Qt toolkit for use in the X Window System.
  • TorrentStorm [15] http://www.torrentstorm.com/ - Features piece files and a built in tracker.
  • The MST3K Bittorrent Guide http://mst3k.booyaka.com/bittorrent_guide.shtml - Quick overview of "the best" Windows / Mac / Linux clients.
  • More BitTorrent Clients... http://a.scarywater.net/torrent/clients/

Torrent creators

  • Azureus http://azureus.sourceforge.net/
  • BitComet http://www.bitcomet.com/
  • BitSpirit http://www.bytelinker.com/intl/bs.htm
  • MakeTorrent2 http://krypt.dyndns.org:81/torrent/maketorrent/
  • Torrent Aid http://www.torrentaid.com/ .

Torrent sites

General collections

  • Kedora TV http://www.kedora.net/ - Directory of videos using RSS feeds.
  • unofficial RSS feeds http://varchars.com/rss/
  • speedtorrent.dl.am http://www.speedtorrent.dl.am/ - Big german Torrent Site
  • Yotoshi.com http://www.yotoshi.com/
  • Bittorrent.org.uk http://www.bittorrent.org.uk/ - Index site of bit torrent links (Dead)
  • isoHunt.com http://isohunt.com/ - IRC and BitTorrent search engine, P2P releases system
  • X Hollywood http://www.xhollywood.com/ - Index and news of BitTorrent sites
  • TorrentReactor.to http://www.torrentreactor.to/ (the .net site was domain hijacked) - large search engine
  • www.lokitorrent.com http://www.lokitorrent.com/

Forums

  • Digital Update http://www.digital-update.com/
  • Speedtorrent-Board.net http://www.speedtorrent-board.net/
  • Filesoup.com http://www.filesoup.com/

Specific content

  • Anime:
    • AnimeYume.org http://www.animeyume.org - also has non-English releases
    • AnimeSuki http://www.animesuki.com/ - keeps track of almost all (unlicensed) Anime torrents
    • Frozen-Layer Network http://bittorrent.frozen-layer.net - Spanish Anime distribution page
    • a.scarywater.net http://a.scarywater.net/
  • GNU/Linux:
    • The Linux Mirror Project http://www.tlm-project.org/ - Loads of Linux distribution ISO images as downloadable torrents
    • ShareGroundz.info http://www.sharegroundz.info/ - Linux iso's, games and apps, all legal (Like free MMORPG's)
    • SolidZ.com http://www.solidz.com/ - Linux torrents and various other open source apps
  • Music:
    • etree.org http://bt.etree.org/ - trade friendly live recordings. lossless formats.
    • Legal Torrents http://www.legaltorrents.com/ - wide selection of electronic music and the Wired Magazine Creative Commons CD
  • Politics:
    • Torrentocracy http://torrentocracy.com/torrents/ - 2004 US Presidential Election torrent
    • Chomsky Torrents http://chomskytorrents.piranho.com — Filesharing resource for videos of Noam Chomsky's talks.
  • Television shows:
    • TvTorrents.tv http://www.tvtorrents.tv/ (changed domains from TvTorrents.net)
    • BTEfnet http://www.btefnet.com/
    • TV-Swarm.com http://www.tv-swarm.com/ (split off from TVTorrents)

Other

  • Torrents.to http://www.torrents.to/ Torrent search engine (music/movies/tv/other) and latest torrent clients
  • LokiTorrent http://www.lokitorrent.com/
  • Nabasu's BitTorrent Bookmarks http://strikingcomic.com/torrents.html
  • The Pirate Bay http://trackerwww.prq.to/ - Created by piratbyrån, they document http://static.thepiratebay.org/legal/ all legal threats received
  • WebTorrent http://sourceforge.net/projects/webtorrent/ - A PHP Frontend for Bittorrent, serving as a centralised BitTorrent download server

In the news

  • NYT: File Sharing's New Face http://www.nytimes.com/2004/02/12/technology/circuits/12shar.html?ex=1391922000&
    en=da75cefbee224928&ei=5007&partner=USERLAND
    (should work without registration)
  • The BitTorrent Effect http://www.wired.com/wired/archive/13.01/bittorrent.html

Other

  • BitTorrent Simulator Visualization http://aphid.org/btsim/
  • Animation of BitTorrent in action (MNG format, not supported by all browsers.)
  • Bit Torrent Download Tutorial http://www.btorrents.com/forum/index.php?showtopic=73
  • Unofficial, but more complete documentation of BitTorrent http://wiki.theory.org/index.php/TitleSearch?auto_redirect=1&s=bittorrent
  • Unofficial but lengthy tutorial on the usage of BitTorrent http://pcpages.com/idolcrash/Tutorial.html
  • Luna Tech Tutorials http://lunatech.zaeleus.org/tutorials/ - - Full image and description guides on how to create torrents with various torrent creators and upload torrents to a tracker.
  • WebTorrent: a BitTorrent Extension for High Availability Servers (PDF) http://www.pdos.lcs.mit.edu/6.824/reports/jwolfe.pdf
  • NPR feature on BitTorrent http://www.npr.org/templates/story/story.php?storyId=4186201
  • The BitTorrent P2P file-sharing system http://www.theregister.co.uk/2004/12/18/bittorrent_measurements_analysis/ , Johan Pouwelse, 18th December, Register - A detailed study of the BitTorrent network
  • Wired: "The BitTorrent Effect" http://www.wired.com/wired/archive/13.01/bittorrent.html



Last updated: 05-06-2005 01:27:49