Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Bit Torrent Protocol - Information

Bit Torrent Protocol - Information

Ratings: (0)|Views: 635|Likes:
Published by Vinaykumar Singh

More info:

Published by: Vinaykumar Singh on Sep 19, 2010
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See More
See less





Part of a series on
File sharing
Timeline of file sharing
Anonymous P2PFriend-to-friendDarknetPrivate P2P
Networks and services:
Gnutella, Gnutella2 (G2)FastTrack, KazaaeDonkey
, Mininova,isoHunt, The Pirate Bay
File sharing in Canada
BitTorrent (protocol)
From Wikipedia, the free encyclopedia
is a peer-to-peer file sharing protocol used for distributing largeamounts of data. BitTorrent is one of the most common protocols for transferringlarge files, and it has been estimated that it accounts for approximately 27-55%of all Internet traffic (depending on geographical location) as of February2009.
Programmer Bram Cohen designed the protocol in April 2001 and released afirst implementation on 2 July 2001.
It is now maintained by Cohen's companyBitTorrent, Inc. There are numerous BitTorrent clients available for a variety of computing platforms.
1 Description2 Operation2.1 Creating and publishing torrents2.2 Downloading torrents and sharing files3 Adoption3.1 Film, video and music3.2 Broadcasters3.3 Personal material3.4 Software4 Network impact5 Indexing6 Limitations6.1 Content unavailability6.2 Lack of anonymity6.3 The leech problem6.4 The cheater problem6.5 Speed7 Technologies built on BitTorrent7.1 Distributed trackers7.2 Web seeding7.3 RSS feeds7.4 Throttling and encryption7.5 Multitracker 7.6 Decentralized keyword search7.7 GitTorrent8 Implementations9 Development
BitTorrent (protocol) - Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/BitTorrent_(protocol)1 of 163/10/2010 7:48 PM
10 Legal issues11 See also12 References13 Further reading14 External links
BitTorrent protocol allows users to distribute large amounts of data without the heavy demands on their computers that would be needed for standard Internet hosting. A standard host's servers can easily be brought toa halt if high levels of simultaneous data flow are reached. The protocol works as an alternative data distributionmethod that makes even small computers (e.g. mobile phones) with low bandwidth capable of participating inlarge data transfers.First, a user playing the role of file-provider makes a file available to the network. This first user's file is called a
and its availability on the network allows other users, called
, to connect and begin to download theseed file. As new peers connect to the network and request the same file, their computer receives a different piece of the data from the seed. Once multiple peers have multiple pieces of the seed, BitTorrent allows each to become a source for that portion of the file. The effect of this is to take on a small part of the task and relievethe initial user, distributing the file download task among the seed and many peers. With BitTorrent, no onecomputer needs to supply data in quantities which could jeopardize the task by overwhelming all resources, yetthe same final result—each peer eventually receiving the entire file—is still reached.After the file is successfully and completely downloaded by a given peer, the peer is able to shift roles and become an additional seed, helping the remaining peers to receive the entire file. This eventual shift from peersto seeders determines the overall 'health' of the file (as determined by the number of times a file is available inits complete form).This distributed nature of BitTorrent leads to a flood like spreading of a file throughout peers. As more peersoin the swarm, the likelihood of a successful download increases. Relative to standard Internet hosting, this provides a significant reduction in the original distributor's hardware and bandwidth resource costs. It also provides redundancy against system problems, reduces dependence on the original distributor and provides asource for the file which is generally temporary and therefore harder to trace than when provided by theenduring availability of a host in standard file distribution techniques.
BitTorrent (protocol) - Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/BitTorrent_(protocol)2 of 163/10/2010 7:48 PM
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.
[5]BitTorrent (protocol) - Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/BitTorrent_(protocol)3 of 163/10/2010 7:48 PM

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->