Bittorrent Article Index for
Bittorrent
Articles about
Bittorrent
Website Links For
Bittorrent
 

Information About

Bittorrent






BitTorrent is a Peer-to-peer File Sharing (P2P) Communications Protocol . BitTorrent is a method of distributing large amounts of Data widely without the original distributor incurring the entire costs of Hardware , Hosting and Bandwidth resources. Instead, when data is distributed using the BitTorrent protocol, each recipient supplies pieces of the data to newer recipients, reducing the cost and burden on any given individual source, providing Redundancy against system problems, and reducing dependence on the original distributor.

The protocol is the brainchild of programmer Bram Cohen , who designed it in April 2001 and released a first implementation on 2 July 2001 . It is now maintained by Cohen's company BitTorrent, Inc. 1

Usage of the protocol accounts for significant traffic on the Internet, but the precise amount has proven difficult to measure.

There are numerous compatible BitTorrent Client s, written in a variety of Programming Language s, and running on a variety of Computing Platforms .


OPERATION


A BitTorrent client is any program which implements the BitTorrent protocol. Each client is capable of preparing, requesting, and transmitting any type of Computer File over a network, using the protocol. A peer is any computer running an instance of a client.

To share a file or group of files, a peer first creates a "torrent." This is a small file which contains Metadata about the files to be shared, and about the Tracker , the computer that coordinates the file distribution. Peers that want to download the file first obtain a torrent file for it, and connect to the specified tracker which tells them from which other peers to download the pieces of the file.

Though both ultimately transfer files over a network, a BitTorrent download differs from a classic full-file HTTP request in several fundamental ways:

  • BitTorrent makes many small P2P requests over different TCP sockets, while web-browsers typically make a single HTTP GET request over a single TCP socket.

  • BitTorrent downloads in a random or "rarest-first" approach that ensures high availability, while HTTP downloads in a contiguous manner.


Taken together, BitTorrent achieves much lower cost, much higher redundancy, and much greater resistance to abuse or " Flash Crowds " than a regular HTTP server. However, this protection comes at a cost: downloads take time to rise to full speed because these many peer connections take time to establish, and it takes time for a node to get sufficient data to become an effective uploader. As such, a typical BitTorrent download will gradually rise to very high speeds, and then slowly fall back down toward the end of the download. This contrasts with an HTTP server that, while more vulnerable to overload and abuse, rises to full speed very quickly and maintains this speed throughout.

In general, BitTorrent's non-contiguous download methods have prevented it from supporting "progressive downloads" or "streaming playback". But recent comments by Bram Cohen and new developments by Red Swoosh suggest that streaming torrent downloads will soon be commonplace.


Creating and publishing torrents


The peer distributing a data file treats it as a number of identically-sized pieces, typically between 64 kB and 1 MB each. A piece size of greater than 512 kB will reduce the size of a torrent file for a very large payload, but is claimed to reduce the efficiency of the protocol {Link without Title} . The peer creates a Checksum for each piece, using a Hashing Algorithm , and records it in the torrent file. When another peer later receives that piece, its checksum is compared to the recorded checksum to test that it is error-free. Peers that provide a complete file are called seeders, and the peer providing the initial copy is called the initial seeder.

The exact information contained in the torrent file depends on the version of the BitTorrent protocol. By convention, the name of a torrent file has the suffix .torrent. Torrent files contain an "announce" section, which specifies the URL of the tracker, and an "info" section which contains (suggested) names for the files, their lengths, the piece length used, and a SHA-1 Hash Code for each piece, which clients should use to verify the integrity of the data they receive.

Completed torrent files are typically published on websites or elsewhere, and registered with a tracker. The tracker maintains lists of the clients currently participating in the torrent.2 Alternatively, in a ''trackerless system'' (decentralized tracking) every peer acts as a tracker. This is implemented by the BitTorrent , µTorrent , BitComet and KTorrent clients through the Distributed Hash Table (DHT) method. Azureus also supports a trackerless method which is incompatible (as of April 2007) with the DHT offered by all other supporting clients.

In November 2006, BitTorrent Inc. introduced its "Publish Torrent" service which creates and hosts a torrent file (seeded from an existing web-hosted media file), and tracks downloads. The service (''http://www.bittorrent.com/publish'') requires a client which supports web-seeding (currently only the official client, Azureus and μTorrent ).


Downloading torrents and sharing files


Users browse the web to find a torrent of interest, download it, and open it with a BitTorrent client. The client connects to the tracker(s) specified in the torrent file, from which it receives a list of peers currently transferring pieces of the file(s) specified in the torrent. The client connects to those peers to obtain the various pieces. Such a group of peers connected to each other to share a torrent is called a swarm. If the swarm contains only the initial seeder, the client connects directly to it and begins to request pieces. As peers enter the swarm, they begin to trade pieces with one another, instead of downloading directly from the seeder.

Clients incorporate mechanisms to optimize their download and upload rates; for example they download pieces in a random order, to increase the opportunity to exchange data, which is only possible if two peers have different pieces of the file.

The effectiveness of this data exchange depends largely on the policies that clients use to determine to whom to send data. Clients may prefer to send data to peers that send data back to them (a Tit For Tat scheme), which encourages fair trading. But strict policies often result in suboptimal situations, where newly joined peers are unable to receive any data (because they don't have any pieces yet to trade themselves) and two peers with a good connection between them do not exchange data simply because neither of them wants to take the initiative. To counter these effects, the official BitTorrent client program uses a mechanism called “optimistic unchoking,” where the client reserves a portion of its available bandwidth for sending pieces to random peers (not necessarily known-good partners, so called preferred peers), in hopes of discovering even better partners and to ensure that newcomers get a chance to join the swarm.3


ADOPTION


A growing number of individuals and organizations are using BitTorrent to distribute their own or licensed material. The most notable of these is BitTorrent Inc. which has amassed a number of licenses from Hollywood studios for distributing popular content at the company's website. Independent adopters report that without using BitTorrent technology, with its dramatically reduced demands on networking hardware and bandwidth, they could not afford to distribute their files.

Many sites imitating big BitTorrent trackers have turned to distribution of only legal material in general. With several different categories they often provide a working distribution method for parties who want to have big material packets available for large audience without investing large amounts of money.

The Amazon S3 "Simple Storage Service" is a scalable Internet-based storage service with a simple Web Service interface, equipped with built-in BitTorrent support.

BitTorrent is often used to distribute Free And Open Source Software , especially ISO Image s of Linux Distributions . Most Linux distributions offer BitTorrent as one of the download methods for installation CD s.

Sub Pop Records, the record label credited with popularizing grunge rock and current publisher of The Shins, The Postal Service and other popular bands, releases tracks and videos via BitTorrent Inc.4] to distribute its 1000+ albums. The band Ween uses the website Browntracker.net5 to distribute free audio and video recordings of live shows.

Blizzard's World Of Warcraft video game utilizes the BitTorrent protocol to send game updates to clients.

Virtual Solutions Group is using BitTorrent to distribute their open source full-frame avi video files for use by thousands of video and DVD content creators at www.dvdmenubacks.com.

Anime Fansub communities often use BitTorrent for their releases, and some have RSS feeds.

Blog Torrent offers a simplified BitTorrent tracker to enable Bloggers and non-technical users to host a tracker on their site. Blog Torrent also allows visitors to download a "stub" loader which acts as a BitTorrent client to download the desired file, allowing users without BitTorrent software to use the protocol.6 This is similar to the concept of a Self-extracting Archive .

The game GunZ The Duel has a built-in BitTorrent client.

Podcast ing software is starting to integrate BitTorrent to help podcasters deal with the download demands of their MP3 "radio" programs. Specifically, Juice and Miro (formerly known as Democracy Player) support automatic processing of .torrent files from RSS feeds. Similarly, some BitTorrent clients, such as µTorrent , are able to process Web Feeds and automatically download content found within them.

The creator of the BitTorrent protocol, Bram Cohen , at one time worked for Valve Software . Valve uses the BitTorrent protocol in their Steam media streaming frontend.


Network impact