Special Sponsor

Thursday, January 11, 2007

How BitTorrent Works

BitTorrent is a protocol that enables fast downloading of large files using minimum Internet bandwidth. It costs nothing to use and includes no spyware or pop-up advertising.

Unlike other download methods, BitTorrent maximizes transfer speed by gathering pieces of the file you want and downloading these pieces simultaneously from people who already have them. This process makes popular and very large files, such as videos and television programs, download much faster than is possible with other protocols.

In this article, we'll examine how BitTorrent works and how it is different from other file-distribution methods. In addition, you'll learn how to use BitTorrent and what the future might hold for this innovative approach to serving files over the Internet.

BitTorrent Speak
Like most Internet phenomena, BitTorrent has its own jargon. Some of the more
common terms related to BitTorrent include:
  • Leeches - People who download files but do not share files on their own computer with others
  • Seed or seeder - A computer with a complete copy of a BitTorrent file (At least one seed computer is necessary for a BitTorrent download to operate.)
  • Swarm - A group of computers simultaneously sending (uploading) or receiving (downloading) the same file
  • .torrent - A pointer file that directs your computer to the file you want to download
  • Tracker - A server that manages the BitTorrent file-transfer process

Traditional Client-Server Downloading
To understand how BitTorrent works and why it is different from other file-serving methods, let's examine what happens when you download a file from a Web site. It works something like this:

  • You open a Web page and click a link to download a file to your computer.
  • The Web browser software on your computer (the client) tells the server (a central computer that holds the Web page and the file you want to download) to transfer a copy of the file to your computer.
  • The transfer is handled by a protocol (a set of rules), such as FTP (File Transfer Protocol) or HTTP (HyperText Transfer Protocol).


Client-server download process

The transfer speed is affected by a number of variables, including the type of protocol, the amount of traffic on the server and the number of other computers that are downloading the file. If the file is both large and popular, the demands on the server are great, and the download will be slow.

For more information about Web servers and the traditional client-server download, see How Web Servers Work.

Peer-To-Peer File Sharing
Another file-transfer method that you may have heard about is called peer-to-peer file sharing. In this process, you use a software program (rather than your Web browser) to locate computers that have the file you want. Because these are ordinary computers like yours, as opposed to servers, they are called peers. The process works like this:

  • You run peer-to-peer file-sharing software (for example, a Gnutella program) on your computer and send out a request for the file you want to download.
  • To locate the file, the software queries other computers that are connected to the Internet and running the file-sharing software.
  • When the software finds a computer that has the file you want on its hard drive, the download begins.
  • Others using the file-sharing software can obtain files they want from your computer's hard drive.


Gnutella's peer-to-peer download process

The file-transfer load is distributed between the computers exchanging files, but file searches and transfers from your computer to others can cause bottlenecks. Some people download files and immediately disconnect without allowing others to obtain files from their system, which is called leeching. This limits the number of computers the software can search for the requested file.

For more information about file sharing and the peer-to-peer download, see How Gnutella Works and How Kazaa Works.

What BitTorrent Does
Unlike some other peer-to-peer downloading methods, BitTorrent is a protocol that offloads some of the file tracking work to a central server (called a tracker). Another difference is that it uses a principal called tit-for-tat. This means that in order to receive files, you have to give them. This solves the problem of leeching -- one of developer Bram Cohen's primary goals. With BitTorrent, the more files you share with others, the faster your downloads are. Finally, to make better use of available Internet bandwidth (the pipeline for data transmission), BitTorrent downloads different pieces of the file you want simultaneously from multiple computers.

Here's how it works:


BitTorrent's peer-to-peer download process

  • You open a Web page and click on a link for the file you want.
  • BitTorrent client software communicates with a tracker to find other computers running BitTorrent that have the complete file (seed computers) and those with a portion of the file (peers that are usually in the process of downloading the file).
  • The tracker identifies the swarm, which is the connected computers that have all of or a portion of the file and are in the process of sending or receiving it.
  • The tracker helps the client software trade pieces of the file you want with other computers in the swarm. Your computer receives multiple pieces of the file simultaneously.
  • If you continue to run the BitTorrent client software after your download is complete, others can receive .torrent files from your computer; your future download rates improve because you are ranked higher in the "tit-for-tat" system.

Downloading pieces of the file at the same time helps solve a common problem with other peer-to-peer download methods: Peers upload at a much slower rate than they download. By downloading multiple pieces at the same time, the overall speed is greatly improved. The more computers involved in the swarm, the faster the file transfer occurs because there are more sources of each piece of the file. For this reason, BitTorrent is especially useful for large, popular files.

No comments: