|
INTRODUCTION
BitTorrent
is a protocol designed for transferring files. It is peer-to-peer in nature, as
users connect to each other directly to send and receive portions of the file.
However, there is a central server (called a tracker) which coordinates the action
of all such peers. The tracker only manages connections, it does not have any
knowledge of the contents of the files being distributed, and therefore a large
number of users can be supported with relatively limited tracker bandwidth. The
key philosophy of BitTorrent is that users should upload (transmit outbound) at
the same time they are downloading (receiving inbound.) In this manner, network
bandwidth is utilized as efficiently as possible. BitTorrent is designed to work
better as the number of people interested in a certain file increases, in contrast
to other file transfer protocols. One
analogy to describe this process might be to visualize a group of people sitting
at a table. Each person at the table can both talk and listen to any other person
at the table. These people are each trying to get a complete copy of a book. Person
A announces that he has pages 1-10, 23, 42-50, and 75. Persons C, D, and E are
each missing some of those pages that A has, and so they coordinate such that
A gives them each copies of the pages he has that they are missing. Person B then
announces that she has pages 11-22, 31-37, and 63-70. Persons A, D, and E tell
B they would like some of her pages, so she gives them copies of the pages that
she has. The
process continues around the table until everyone has announced what they have.
The people at the table coordinate to swap parts of this book until everyone has
everything. There is also another person at the table, who we will call 'S'. This
person has a complete copy of the book, and so does not need anything sent to
him. He responds with pages that no one else in the group has. At first, when
everyone has just arrived, they all must talk to him to get their first set of
pages. However, the people are smart enough to not all get the same pages from
him. After a short while, they all have most of the book amongst themselves, even
if no one person has the whole thing. In this manner, this one person can share
a book that he has with many other people, without having to give a full copy
to everyone that is interested. He can instead give out different parts to different
people, and they will be able to share it amongst themselves. This person who
we have referred to as 'S' is called a seed in the terminology of BitTorrent. WHAT
BITTORRENT DOES? When
a file is made available using HTTP, all upload cost is placed on the hosting
machine. With BitTorrent, when multiple people are downloading the same file at
the same time, they upload pieces of the file to each other. This redistributes
the cost of upload to downloaders, (where it is often not even metered), thus
making hosting a file with a potentially unlimited number of downloaders affordable.
Researchers have attempted to find practical techniques to do this before. It
has not been previously deployed on a large scale because the logistical and robustness
problems are quite difficult. Simply figuring out which peers have what parts
of the file and where they should be sent is difficult to do without incurring
a huge overhead. In addition, real deployments experience very high churn rates.
Peers rarely connect for more than a few hours, and frequently for only a few
minutes. Finally, there is a general problem of fairness. The total download rate
across all downloaders must, of mathematical necessity, be equal to the total
upload rate. The strategy for allocating upload that seems most likely to make
peers happy with their download rates is to make each peer's download rate be
proportional to their upload rate. In practice it's very difficult to keep peer
download rates from sometimes dropping to zero by chance, much less make upload
and download rates be correlated. BitTorrent
Interface BitTorrent's
interface is almost the simplest possible. Users launch it by clicking on a hyperlink
to the file they wish to download, and are given a standard "Save As"
dialog, followed by a download progress dialog that is mostly notable for having
an upload rate in addition to a download rate. This extreme ease of use has contributed
greatly to BitTorrent's adoption, and may even be more important than, although
it certainly complements, the performance and cost redistribution features
<<back |