In this animation, the colored bars beneath all of the 7 clients inthe upper region above represent individual pieces of the file.After the initial pieces transfer from the seed (large system atthe bottom), the pieces are individually transferred from clientto client. The original
only needs to send out one copy of the file for all the clients to receive a copy.
A BitTorrent client is any program that implementsthe 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 aclient.To share a file or group of files, a peer first createsa small file called a "torrent" (e.g. MyFile.torrent).This file contains metadata about the files to beshared and about the tracker, the computer thatcoordinates the file distribution. Peers that want todownload the file must first obtain a torrent file for it, and connect to the specified tracker, which tellsthem from which other peers to download the pieces of the file.Though both ultimately transfer files over anetwork, a BitTorrent download differs from aclassic download (as is typical with an HTTP or FTP request, for example) in several fundamentalways:BitTorrent makes many small data requestsover different TCP connections to differentmachines, while classic downloading is typically made via a single TCP connection to a single machine.BitTorrent downloads in a random or in a "rarest-first"
approach that ensures high availability, whileclassic downloads are sequential.Taken together, these differences allow BitTorrent to achieve much lower cost to the content provider, muchhigher redundancy, and much greater resistance to abuse or to "flash crowds" than regular server software.However, this protection, theoretically, comes at a cost: downloads can take time to rise to full speed because itmay take time for enough peer connections to be established, and it may take time for a node to receivesufficient data to become an effective uploader. This contrasts with regular downloads (such as from an HTTPserver, for example) that, while more vulnerable to overload and abuse, rise to full speed very quickly andmaintain this speed throughout.In general, BitTorrent's non-contiguous download methods have prevented it from supporting "progressivedownloads" or "streaming playback". However, comments made by Bram Cohen in January 2007(http://torrentfreak.com/interview-with-bram-cohen-the-inventor-of-bittorrent) suggest that streaming torrentdownloads will soon be commonplace and ad supported streaming (http://torrentfreak.com/bittorrent-launches-ad-supported-streaming-071218) appears to be the result of those comments.
Creating and publishing torrents
The peer distributing a data file treats the file as a number of identically sized pieces, typically between 32 KBand 4 MB each. The peer creates a checksum for each piece, using the SHA1 hashing algorithm, and records itin the torrent file. Pieces with sizes 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.
When another peer later receives a particular piece, the checksum of the piece is compared to the recorded checksum to test that the piece is error-free.
BitTorrent (protocol) - Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/BitTorrent_(protocol)3 of 163/10/2010 7:48 PM