BitTorrent is a file transfer protocol used to share files between users without requiring a central server that hosts the files.
Choosing a BitTorrent client can be a difficult process due to the complex nature of the technology. While virtually all clients will cover the basic task of downloading files, there are many combinations of usability, features and philosophy to consider depending on intended use.
Torrent is a file containing information about files and trackers. It is also used to describe the file or collection of files and folders themselves.
Peer is a user sharing a specific torrent. Peers can be further divided into seeders and downloaders (or leeches). Seeders are users with a complete torrent and downloaders are users with a part of the torrent.
Swarm is a collection of users interested in sharing a specific torrent.
Tracker is a server that enables creating connections between peers.
Choking is the process of refusing to send files to a particular client.
Availability represents how many full copies of a torrent are available.
DHT or Distributed Hash Table is a decentralized distributed system that distributes files more efficiently and saves bandwidth. It is used to store peer contact information essentially making each peer a tracker. This allows for tracker-less torrents, eases the load on centralized servers and is especially useful in cases of unreliable trackers. It’s also worth noting that there are incompatible DHT networks thus depending on which DHT the client supports torrent availability may change. Also, a “private” flag in the torrent file (used most commonly by private trackers) instructs the client to disable DHT.
PEX or Peer Exchange is used to increase the speed at which files are downloaded by reducing the dependency on centralized trackers and instead allowing each peer to keep partial lists of peers in the swarm individually and share with other peers directly.
MSE/PE or Message Stream Encryption/Protocol Encryption is BitTorrent traffic encryption method designed to improve privacy. It also attempts to make it harder to identify BitTorrent traffic by third parties such as ISPs that can choose to throttle it.
Magnet Links contain the unique identifier of a collection of files and folders that is then used to find peers via a tracker or a DHT network. Some clients pre-load the a list of files before starting a download.
UPnP or Universal Plug and Play is a set of networking protocols used to discover networked devices. Similarly, NAT-PMP or Network Address Translation Port Mapping Protocol automates NAT and port forwarding setup. NAT-PMP and UPnP greatly reduce the setup time by eliminating the need to manually configure the router.
Super-seeding is an algorithm used to allow downloaders become uploaders quicker.
Web interfaces are used to remotely control torrents.
Web seeding support allows downloading file parts from an HTTP source alongside the swarm. It’s usually used for long-term seeding and easing some of the load on web hosts that supply direct downloads by offering a BitTorrent download as an alternative while still ensuring that the file is always available in its entirety regardless of the swarm.
Clients may have an embedded tracker that can be used to turn the client into a server.
Cache Discovery Protocol is used to discover local data caches
Broadcatching via RSS is a method used to automatically download content based on RSS feeds.
Prioritization, selective downloading and sequential downloading are used to choose what should be downloaded and in what order. Sequential downloading can be used to stream video files.
Tracker exchange enables peers to exchange information about trackers in order to increase download speeds by finding more peers through the newly added trackers.
Some clients have built-in search, though their capabilities and implementation vary significantly between clients. Similarly, some are able to pull information about the files from the web such reviews and comments for movies, but since there is no standard the results are mostly lackluster.