BitTorrent Protocol

BitTorrent Protocol is a protocol that was developed in April 2001 and released in July 2001 by Bram Cohen.

History
The BitTorrent protocol was developed by Bram Cohen in 2001 after he quit his job to develop it. The idea was inspired by his previous job at MojoNation where they were breaking confidential files up into pieces, encrypting the pieces and then distributing those pieces to other computers, the file would have to be downloaded simultaneously from the computers connected to the software.

The first mass distributing of files through BitTorrent was in the Summer of 2002, it was a compilation of free pornography that Cohen compiled himself.

In 2004 Cohen formed BitTorrent, Inc with his brother and business parter.

Design
The BitTorrent protocol was designed to allow efficient transferring of large files in between users using a peer-to-peer (P2P) structure.

What makes BitTorrent an ideal solution for distributing files is that files aren't downloaded from a single source. When a torrent is created the file(s) are broken up into pieces and the data of which is contained in a hash. When a user wants to download content, they join the group called the swarm, of people who are transferring the files. Anyone who has downloaded a copy of the files, has their client running and has not removed them from their client can instantly start uploading pieces of the files to the user who wants the file. If multiple people have the files then they can simultaneously be uploading separate pieces to the user, this allows the uploading load to be distributed across multiple networks. As an added perk that the protocol inherently allows is the stopping and resuming of downloads as the user would not have to redownload the pieces that they already have. Downloaded pieces are checked against the hash contained in the torrent file to make sure they haven't be altered in any way.

Pieces of the files are downloaded in a random order, this is important for the protocol to operate efficiently. If files are downloaded in sequential order it can end up making the latter pieces become more rare, especially on new and popular torrents. Software that allows streaming of material before it is finished download betrays this trust and forces the uploader to send files in sequential order so they can be read/viewed before the downloading has finished. This kind of behavior isn't good for the health of the torrent.