The World of Peer-to-Peer (P2P)/Networks and Protocols/BitTorrent
From Wikibooks, the open-content textbooks collection
[edit] BitTorrent
BitTorrent is a protocol ( BitTorrent Protocol Specification v1.0 ) created by Bram Cohen and designed to distribute primarily large computer files over the Internet, it can be used to distribute legitimate content and to enable copyright infringement on a massive scale. It is peer-to-peer in nature, as users connect to each other directly to send and receive portions of a large file from other peers who have also downloaded either the file or parts of the it. These pieces are then reassembled into the full file. Since the users are downloading from each other and not from one central server, the bandwidth load of downloading large files is divided between the many sources that the user is downloading from. This decreases the bandwidth cost for people hosting large files, and increases the download speeds for the people downloading large files, because the protocol makes use of the upstream bandwidth of every downloader to increase the effectiveness of the distribution as a whole, and to gain advantage on the part of the downloader. However, there is a central server (called a tracker) which coordinates the action of all such peers. 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 key philosophy of BitTorrent is that users should upload (transmit outbound) at the same time they are downloading (receiving inbound.) In this manner, network bandwidth is utilized as efficiently as possible. BitTorrent is designed to work better as the number of people interested in a certain file increases, in contrast to other file transfer protocols.
BitTorrent is redefining the way people share and search for content and is getting very popular for downloading movies, TV shows, full music albums and applications (it gains in performance with other alternatives) since it is very file specific and it gains on the "new" factor of P2P content, more users equals more speed, but it will not be the optimum solution to rare files or to distribute content that is not highly sought over.
To download files that are hosted using BitTorrent users must have a BitTorrent client and to publish a file one must run a tracker.
In November 2004, BitTorrent accounted for an astounding 35 percent of all the traffic on the Internet and in 2006 the BitTorrent protocol has risen to over 60 percent of all Internet traffic according to British Web analysis firm CacheLogic. Due to this some ISPs are doing traffic shaping also know as bandwidth throttling, meaning they are reducing the protocol priority inside their networks and reducing its overall performance this has resulted in two kind of responses, some ISPs are investing in upgrading their networks and provide local cache to the protocol and implementors of the protocol are starting to battle ISPs that refuse to adapt by encrypting and randomizing it, this kick need to adapt and the increasing popularity due to deviation from its creators vision is placing more and more its evolution on the hands of independent developers.
BitTorrent ( http://www.bittorrent.com ) is also the name of the original implementation of the protocol it started as a Python ( source code and old versions ) application to a full featured commercial enterprise. BitTorrent.com is now a destination to download entertainment content using the BitTorrent protocol. The site provide fast, on-demand access to the most comprehensive licensed catalog of thousands of movies, TV shows, music and games, but it also provides content creators a publishing platform to list their works in high-quality alongside the most recognizable titles from major movie studios, TV networks, and record labels.
The BitTorrent system is highly dependent on active participation of peers since it only goal is the sharing of files. Rare and "old" content is not easy to find on the system, only highly sought after content benefit from this P2P implementation. Small files also don't fully benefit from it, since the needed time for replication is too short and in some extreme situations can even degrade the experience.
[edit] Content Indexers
Relevant Sites
Legal Torrents ( http://www.legaltorrents.com ), a collection of Creative Commons-licensed, legally downloadable, freely distributable creator-approved files, from electronic/indie music to movies and books, which have been made available via BitTorrent. Everyone that grabs the BitTorrent client and downloads helps contribute more bandwidth, because BitTorrent utilizes your unused upload bandwidth. Again, please note that all of the current torrents are made available under a Creative Commons license with the full permission of the rights holder.
bt.etree.org ( http://bt.etree.org/ ), a site provided by the etree.org community for sharing the live concert recordings of trade friendly artists.
Other:
- isoHunt ( http://isohunt.com/ ).
- The Pirate Bay ( http://thepiratebay.org ).
- mininova ( http://www.mininova.org/ ).
Protocol
BitTorrent is a protocol for distributing files. It identifies content by URL and is designed to integrate seamlessly with the web. Its advantage over plain HTTP is that when multiple downloads of the same file happen concurrently, the downloaders upload to each other, making it possible for the file source to support very large numbers of downloaders with only a modest increase in its load. ( http://www.bittorrent.com/protocol.html ).
The protocol was partially dependent of centralized in do to the requirement of trackers, this is partially addressed by implementing DHT (Distributed Hash Tables) and enabling the volatile Peer to operate as a tracker, but even if this addressed the need for static tracker servers, there is still a centralization of the network around the content. Peers don't have any default ability to contact each other outside of that context.
[edit] Software Implementations
Wikipedia provides an article with a Comparison of BitTorrent software.
- BitTorrent Queue Manager ( http://btqueue.sourceforge.net ), a Console-based BitTorrent Client with built-in scheduler for handling multiple sessions. It is designed to manage sessions in queue easily without heavy-weight GUI. External module can search for new torrents in trackers and submit it automatically. OpenSource (Python Software Foundation License) project, using Python.
- Azureus ( http://azureus.sourceforge.net or http://www.getazureus.com/ ), an open source BitTorrent client in Java, probably the more advanced peer for the network (multiple torrent downloads, queuing/priority systems, start/stop seeding options, embedded tracker, Mainline DHT and a lot more) but a known resource hog, consuming large quantities of memory and CPU power.
- µTorrent ( http://utorrent.com ), a closed source, freeware BitTorrent client in C++, a very complete peer (includes bandwidth prioritization, scheduling, RSS auto-downloading and Mainline DHT and more) with a very low system footprint.
- BitTornado ( http://bittornado.com ), an open source BitTorrent client in Python based on the original BitTorrent client.
- BitComet ( http://www.bitcomet.com ), (originally named SimpleBT client from versions 0.11 to 0.37) is a closed source but freeware, BitTorrent client for the MS Windows OS only, it also supports HTTP/FTP download management.
- ABC [Yet Another BitTorrent Client] ( http://pingpong-abc.sourceforge.net ), an open source BitTorrent client, based on BitTornado.
- Transmission ( http://transmission.m0k.org/ ), an open source lightweight BitTorrent client with a simple graphic user interface on top of a cross-platform back-end. Transmission runs on Mac OS X with a Cocoa interface, Linux/NetBSD/FreeBSD/OpenBSD with a GTK+ interface, and BeOS with a native interface. Released under the MIT/X Consortium License.
- Warez ( http://www.warezclient.com ), a closed source, MS Windows only BitTorrent client from Neoteric Ltd. (previously supporting the Ares Network Warez P2P client).
- Deluge ( http://deluge-torrent.org ), an open source, using Python, lightweight, cross-platform BitTorrent client in Python released under the GNU GPL license.
- Bits on Wheels ( http://bitsonwheels.com ), a freeware but closed source, implementation, written in Objective-C and Cocoa for the Macintosh.
- Vidora ( http://www.videora.com/ ), a closed source, freeware implementation that also support Really Simple Syndication (RSS) feeds.
- Halite ( http://www.binarynotions.com/halite-bittorrent-client ), an open-source, under the Boost Software License, this BitTorrent client is based on the libtorrent library from Rasterbar Software. Coded in C++ using the Boost library and WTL (Windows only).
- sharktorrent ( http://sharktorrent.sourceforge.net/ ), an open source (GPL) written in C++. This a cross-platform BitTorrent client uses QT , libtorrent and boost libraries.
- ted [Torrent Episode Downloader] ( http://www.ted.nu/ ), an open source (GPL) BitTorrent client coded in Java, it also support torrent RSS feeds.