BitTorrent BitTorrent

BitTorrent - Definition and Overview


BitTorrent.Logo.png


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.

Files download faster using the BitTorrent protocol because a user's computer simultaneously downloads chunks of the file from many different computers (segmented downloading). Each new downloader contributes bandwidth back to the network (often called a swarm). By contrast, conventional download protocols often form a bottleneck as many people request data from a single server.

Contents

File chunking and distributed downloads

BitTorrent addresses the fact that 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, that computer's limited upload bandwidth slows the transfer of the file it wants to share. With BitTorrent, that file is divided into smaller chunks, which are distributed to multiple computers. Those computers can then simultaneously upload chunks of the file to each other.

Sharing files

Distribution via BitTorrent
Distribution via BitTorrent

To share a file using BitTorrent a user creates a .torrent file, a small "pointer" file which contains:

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

The torrent file can then be distributed to other users, often via email or placed on a website. The BitTorrent client is then started as a "seed node", allowing other users to connect and commence downloading. When other users finish downloading the entire file, they can optionally "reseed" it--becoming an additional source for the file. One outcome of this approach is that if all seeds get taken offline, the file may no longer be available for download, even if the torrent file is possessed..

Downloading with BitTorrent is straightforward. Each person who wants to download the file first downloads the torrent and opens it in the BitTorrent client software. The torrent file tells the client the address of the tracker, which, in turn, maintains a log of which users are downloading the file and where the file and its fragments reside. For each available source, the tracker considers which blocks of the are available, then requests the "rarest" block it does not yet have. Block transfer is thus random, rather than sequential, making it more likely that peers will have blocks to exchange. As soon as the client finishes importing 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.

BitTorrent gives the best download performance to the people who upload the most, 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 a good protocol for a broadband user, it is less effective for of dialup connections, where disconnections are common.

Comparison to other file sharing systems

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.

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 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, and since its release the game's patches.

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. So far, BitTorrent seems to be the most popular P2P protocol adopted officially for legal uses. 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.

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.

New developments

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

Decentralization

BitTorrents reliance on torrent files and central web-based trackers have been two significant bottlenecks in preventing wider adoption of the software. These two areas have also provided a point of attack for P2P detractors to target the websites that offer these services.

In order to protect the longevity of the network, there have been recent developments to move away from reliance on centralized servers by making all users of the system themselves torrent providers and trackers. The Shareaza client offered the beginnings of this functionality, by using the other filesharing networks at its disposal - such as Gnutella 2 etc. - to look for other Shareaza users accessing the same file. Effectively this enables any torrent to be automatically decentralized when used in Shareaza.

Taking this one step further, a new contender in the P2P arena is eXeem. eXeem is a new file-sharing application being developed by Swarm Systems, Inc. and supported by sloncek, admin of the now defunct SuprNova. eXeem is a decentralized BitTorrent network that basically makes everyone a Tracker. Individuals can search for torrents files, download them, and even seed shared files to the network. Most importantly, this is all done without the need for a central server.

Still in development, eXeem reportedly will combine the best features of a decentralized network, the easy searchability of an indexing server and the swarming powers of the BitTorrent network into one program that is easy to use. The program will be closed source (as opposed to the open source BitTorrent), and its license reserves the right to install spyware on the client machine (much like KaZaA). Unlike BitTorrent, eXeem supports only Windows machines.

Exeem contains the adware Cydoor. There is a ad-free version available at eXeem Lite (http://exlite.net)

Web Seeding

One recently implemented feature of BitTorrent 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

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). In an interview Scott Raymond explained:

"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 [2] (http://www.grumet.net/weblog/).

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

Undercurrents (http://www.undercurrents.org/), a UK based video activist group are working on a "offline TV" - RSS & bittorrent application. Check it out at beyondTV (http://beyondtv.blogspot.com/).

Thinkingest (http://www.thinkingest.com/) is providing commercial broadcatching, and pro-bono consulting for community projects, such as OurMedia (http://www.ourmedia.org/).

Also adding that anime fansub communities often use Bittorrent for their releases and the most popular announce sites like animesuki, Tokyo Toshokanand (http://www.tokyotosho.com/) downloadanime.org have RSS feeds.

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

WritTorrent (http://writtorrent.sf.net/) offers a blog posting plugin for Azureus, as well as RSS feeds for the built-in Azureus tracker.

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 Slashdot 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.

See also Magnet.

External links

Software

  • ABC (Yet Another BitTorrent Client) [3] (http://pingpong-abc.sourceforge.net/) - ABC is a client based upon BitTornado that extends it by adding a queuing system.
  • Azureus Java BitTorrent Client [4] (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 [5] (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.
  • BitLord [6] (http://www.bitlord.com/) - Based on BitComet, so far the only BitTorrent client which has a search feature for the torrents.
  • BitSpirit [7] (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 [8] (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
  • BtManager [9] (http://btmanager.sourceforge.net/) is a BitTorrent client that run as a server (daemon), accessible via a web interface or a GUI
  • G3 Torrent [10] (http://g3torrent.sourceforge.net/) - G3 Torrent is a Python based client. Offers a built-in web interface to control the client.
  • ctorrent [11] (http://ctorrent.sourceforge.net/) - CTorrent is a BitTorrent client written in the C programming language.
  • eDonkey2000 [12] (http://edonkey.com/) - P2P Client that supports eDonkey and BitTorrent as well as other protocols.
  • libtorrent [13] (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 [14] (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 [15] (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 [16] (http://sarwat.net/bittorrent/) - A BSD licensed Cocoa-based BitTorrent client for Mac OS X.
  • Qtorrent [17] (http://thegraveyard.org/qtorrent.php) - Multi-torrent client using Qt toolkit for use in the X Window System.
  • TorrentStorm [18] (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.
  • WritTorrent (http://writtorrent.sf.net/) provides plugins for Azureus, and more.
  • 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/).
  • Prodigem (http://www.prodigem.com/)

Torrent sites

General collections

Forums

Specific content

  • Music:
    • etree.org (http://bt.etree.org/) - trade friendly live recordings. lossless formats.
    • LegalTorrents (http://www.legaltorrents.com/) - wide selection of music (acoustic, electronic, experimental) and the Wired Magazine Creative Commons CD

Other

  • TowerSeek.org (http://www.towerseek.org/) - Advanced crawler-based search engine for BitTorrent
  • 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
  • PartyBits (http://www.pbits.org/)
  • LMTLinks/LickMyTaint (http://www.lmtlinks.com/) - BT Site Listing - Updated Daily. Very helpful Forum.

In the news

Other


Example Usage of BitTorrent

jen_williams: Utorrent and BitTorrent clients look pretty much identical. I trying to make them function different than my azuereus client. No luck.
mmarx9i0x: Comcast told not to target BitTorrent file sharing » Download... http://tinyurl.com/yzsnp7e
Kaiserism: MeatMyAss.com - Melissa Lauren http://tinyurl.com/yca6pyt (via @KAISERISM #BitTorrent #piratebay)
Copyright 2009 WordIQ.com - Privacy Policy  :: Terms of Use  :: Contact Us  :: About Us
This article is licensed under the GNU Free Documentation License. It uses material from the this Wikipedia article.