A free C++ BitTorrent/HTTP/FTP Download Client


This is an old revision of the document!


BitTorrent is a peer-to-peer file-sharing protocol designed by Bram Cohen, and a family of of BitTorrent compatible clients (software) support this p2p protocol. BitComet is a C++ BitTorrent client running on Windows, compatible with BitTorrent along with many enhancements.

BitTorrent is designed to facilitate file transfers among multiple peers across unreliable networks. While downloading, clients will simultaneously upload already downloaded data to other BitTorrent clients interested in that data.

The HTTP/FTP downloading method has a problem: more customers require more bandwidth on the server side.

The BitTorrent Network offers a solution: customers help distribute the content.

That's the reason why BitTorrent many times works even faster than ordinary HTTP/FTP. In order to use this technology, one needs to use a BitTorrent client. A bootstrap point (tracker, DHT node) will also be needed to help users learn about each other.

“BitTorrent has an interesting design that enables each individual downloader to maximize his own download rate and locks out users who do not contribute to the system. A peer wishing to download a particular file through BitTorrent first needs to obtain a torrent metafile for the file from, for example, a Web site or RSS news feed. The metafile gives the peer the address of a tracker for the file and checksums to verify downloaded parts of the file. The peer then contacts the tracker to obtain a list of peers currently involved in downloading the file, implying they have pieces of the file to share.

Next, the peer contacts a random peer to obtain a first piece of the file itself. With this piece in hand, the peer starts to contact other peers in the list to see if they will trade its piece for another part of the file. If so, the contacted peer sends a few blocks of the negotiated piece, and continues to do so as long as the other does the same. This tit-for-tat mechanism automatically locks out peers who are unwilling to upload themselves. By monitoring the download rate obtained from its current set of peers and randomly trying other peers to see if faster peers are available, a user can maximize its download rate. By always selecting a rare part of the file from the pieces on offer, a peer ensures it always has a piece of the file that other peers are interested in.

These policies for piece selection and bandwidth trading lead to a balanced economy with suppliers meeting demand and achieving their own goal (fast download) at the same time. Once the peer has obtained the complete file it will become a seeder and altruistically provide pieces to other peers without any return. The set of all peers currently actively exchanging pieces of the file is called the file’s swarm.”

Read more about BitTorrent on:

Main Index

bittorrent.1272609009.txt.gz · Last modified: 2015/08/15 04:21 (external edit)
[unknown button type]
Recent changes RSS feed Driven by DokuWiki