BitTorrent Protocol by Bram Cohen

[BitTorrent Protocol] BitTorrent is a peer-to-peer file sharing/distribution protocol designed for transferring files in portions from multiple locations. Because of the nature of this protocol, large files can be handled more efficiently than the typical client/server method. It is coordinated from a central server, called a "tracker", and each tracker is usually community based. 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 main idea behind the protocol is sharing. Users upload while they are downloading, allowing the files to be distributed evenly and efficently. BitTorrent is designed to work better as the number of people interested in a certain file increases, in contrast to other file transfer protocols.

From Brian's BT guide...

"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 (and hence what they are missing.) 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'll call 'S'. This person has a complete copy of the book, and so doesn't 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's 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've referred to as 'S' is called a seed in the terminology of BitTorrent."

BitTorrent is the most commonly used method of transferring large files, including cd images (.iso's and .bin's), movies and games. There are many clients which connect to the BitTorrent protocol, but the best are:

  • BitTorrent (Official): http://www.bittorrent.com/
  • TheSHADOW's BitTornado: http://www.bittornado.com/
  • Azureus BitTorrent Client (Java; platform independent) http://azureus.sf.net/

This article thanks to Trent Farrell (forostie)