BitTorrent
It is a protocol for the practice of peer-to-peer file sharing that is
used to distribute large amounts of data over the Internet.
BitTorrent is one of the most common protocols for transferring large files,
and peer-to-peer networks have been estimated to collectively account for
approximately 43% to 70% of all Internet traffic (depending
on geographical location) as of February 2009.[1]In November 2004, BitTorrent was responsible
for 35% of all Internet traffic. As of February 2013, BitTorrent was
responsible for 3.35% of all worldwide bandwidth, more than half of the 6% of total
bandwidth dedicated to file sharing.
To send or receive files the user must have a BitTorrent client; a computer program that
implements the BitTorrent protocol. Some popular BitTorrent clients include μTorrent, Xunlei, Transmission, qBittorrent, Vuze and BitComet. BitTorrent trackers provide a list of
files available for transfer, and assist in transferring and reconstructing the
files.
Programmer Bram Cohen, a former University at
Buffalo graduate student in Computer Science, designed the protocol in April 2001 and
released the first available version on 2 July 2001, and the most recent version in 2013. BitTorrent
clients are available for a variety of computing platforms and operating systems including an
official client released by Bittorrent, Inc.
As of January 2012, BitTorrent is utilized by 150 million active
users (according to BitTorrent, Inc.). Based on this figure, the total number
of monthly BitTorrent users can be estimated at more than a quarter of a
billion.
Description
The
middle computer is acting as a seed to provide a file to the other computers
which act as peers.
The
BitTorrent protocol can be used to reduce the server and network impact of
distributing large files. Rather than downloading a file from a single source
server, the BitTorrent protocol allows users to join a "swarm" of
hosts to upload to/download from each other simultaneously. The protocol is an
alternative to the older single source, multiple mirror sources technique for
distributing data, and can work effectively over networks with lower bandwidth.
Using the BitTorrent protocol, several basic computers, such as home computers,
can replace large servers while efficiently distributing files to many
recipients. This lower bandwidth usage also helps prevent large spikes in internet traffic in a given area, keeping internet
speeds higher for all users in general, regardless of whether or not they use
the BitTorrent protocol.
A user who
wants to upload a file first creates a small torrent descriptor file that they distribute
by conventional means (web, email, etc.). They then make the file itself
available through a BitTorrent node acting as a seed.
Those with the torrent descriptor file can give it to their own BitTorrent
nodes, which—acting as peers or leechers—download it by connecting to the seed and/or
other peers (see diagram on the right).
Segmented file
transfer implementation:
the file being distributed is divided into segments called pieces. As each peer receives a
new piece of the file it becomes a source (of that piece) for other peers,
relieving the original seed from having to send that piece to every computer or
user wishing a copy. With BitTorrent, the task of distributing the file is
shared by those who want it; it is entirely possible for the seed to send only
a single copy of the file itself and eventually distribute to an unlimited
number of peers.
Each
piece is protected by a cryptographic hash contained in the torrent descriptor. This ensures that any modification of the
piece can be reliably detected, and thus prevents both accidental and malicious
modifications of any of the pieces received at other nodes. If a node starts
with an authentic copy of the torrent descriptor, it can verify the
authenticity of the entire file it receives.
Pieces
are typically downloaded non-sequentially and are rearranged into the correct
order by the BitTorrent Client, which monitors which pieces it needs, and which
pieces it has and can upload to other peers. Pieces are of the same size
throughout a single download (for example a 10 MB file may be transmitted
as ten 1 MB pieces or as forty 256 KB pieces). Due to the nature of
this approach, the download of any file can be halted at any time and be resumed
at a later date, without the loss of previously downloaded information, which
in turn makes BitTorrent particularly useful in the transfer of larger files.
This also enables the client to seek out readily available pieces and download
them immediately, rather than halting the download and waiting for the next
(and possibly unavailable) piece in line, which typically reduces the overall
time of the download.
Once a
peer has downloaded a file completely, it becomes an additional seed. This
eventual transition from peers to seeders determines the overall
"health" of the file (as determined by the number of times a file is
available in its complete form).
The
distributed nature of BitTorrent can lead to a flood-like spreading of a file throughout many
peer computer nodes. As more peers join the swarm, the likelihood of a
completely successful download by any particular node increases. Relative to
traditional Internet distribution schemes, this permits a significant reduction
in the original distributor's hardware and bandwidth resource costs.
Distributed
downloading protocols in
general provide redundancy against
system problems, reduces dependence on the original distributor and provides sources for the file which are
generally transient and therefore harder to trace by those
who would block distribution compared to the situation provided by limiting
availability of the file to a fixed host machine (or even several).
One
such example of BitTorrent being used to reduce the distribution cost of file
transmission is in the BOINC Client-Server system. If a BOINC distributed computing application needs to be updated (or
merely sent to a user) it can do so with little impact on the BOINC Server.



No comments:
Post a Comment