1. BitTorrent clients

     If you want to download a large blu-ray movie file in its original format at your maximum sustaining download speed, more sooner than later you will run into or will have to consider the use of peer-to-peer file transfer, most notably the deployment of BitTorrent technology.

     To employ the power and versatility of the BitTorrent protocol, you will need to have a BitTorrent client, which is a computer program designed for peer-to-peer file sharing using the message communications and rules as defined by the BitTorrent protocol.

     In a nutshell, the BitTorrent protocol segments a file into many smaller chunks of a specified size and coordinates the transfer of these chunks among other computer users called peers connected in one or more large global network called swarms. The chunks are transferred in no particular order based upon the availability of one of the participating peers. One peer at any moment can act as a server to send a particular chunk of data to thousands of other peers. The same peer can simultaneously receive data from these thousands of other peers acting as servers. So it is quite possible that in a normal file transfer, you may receive the entire movie minus a small chunk somewhere in the middle of the movie before the download is completed.

     Popular BitTorrent clients such as BitComet, BitTorrent, uTorrent, qBitTorrent, Tixati, Transmission, or Vuze, to name a few, are compiled programs developed either on C++ or Java platform. These are computer programs specifically designed for peer-to-peer file sharing using the BitTorrent protocol.

     The BitTorrent protocol coordinates segmented file transfer among peers connected in a swarm. A BitTorrent client enables a user to exchange data as a peer in one or more swarms. From the user perspective, a peer participating in a transfer is simply an Internet address with an associated port number. There are tools available to map the public Internet address into city and country location. A swarm is a collection of peers participating in the transfer of a particular digital content. The mainline DHT and the Vuze DHT network contains millions of swarms with hundreds of millions of peers worldwide at any moment.

     It is entirely possible that one can get a complete download from many peers who do not have the complete download yet but do have different fragments that made up the complete content. In this sense, each peer in a swarm acts as both a client and a server which is very much different from the conventional meaning of a client–server model.

     The BitTorrent protocol after all is one of those standards to transfer files over the Internet in the most efficient manner possible. It neither cares nor it is capable to recognize which material circulating in its many swarms as copyrighted or as in public domain. In the United States, copyright infringement is a serious offense punishable by federal law. To be specific, violating the United States Copyright Act (17 U.S.C. §§ 101-1332) is a typical complaint in many copyright infringement lawsuits against the users of BitTorrent.

     Not all BitTorrent clients are open-source software. Open-source implies that anyone can build the client based upon its available source code. For example, Vuze is open source and its Java source code is freely available. This is easier said than done since it is a major and difficult task to convert the source code into its executable form. Once in its executable form, no more features can be added or modified. Vuze supports a plugin architecture to enable extension of the main program, but again no more features can be added or modified to the extension. Any changes, major or minute, require the conversion process from the modified source code to its updated executable form.