BEP
3
Title

The BitTorrent Protocol Specification

Version

0e08ddf84d8d3bf101cdf897fc312f2774588c9e

Last-Modified
Sat Feb 4 12:58:40 2017 +0100
Author

Bram Cohen <bram@bittorrent.com>

Status
Final
Type
Standard
Created
10-Jan-2008
Post-History

24-Jun-2009 (arvid@bittorrent.com), clarified the encoding of strings in torrent files.

20-Oct-2012 (arvid@bittorrent.com), clarified that info-hash is the digest of en bencoding found in .torrent file. Introduced some references to new BEPs and cleaned up formatting.

11-Oct-2013 (arvid@bittorrent.com), correct the accepted and de-facto sizes for request messages 04-

Feb-2017 (the8472.bep@infinite-source.de), further info-hash clarifications, added resources for new implementors

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.

A BitTorrent file distribution consists of these entities:

There are ideally many end users for a single file.

To start serving, a host goes through the following steps:

  1. Start running a tracker (or, more likely, have one running already).
  2. Start running an ordinary web server, such as apache, or have one already.
  3. Associate the extension .torrent with mimetype application/x-bittorrent on their web server (or have done so already).

  4. Generate a metainfo (.torrent) file using the complete file to be served and the URL of the tracker.

  5. Put the metainfo file on the web server.
  6. Link to the metainfo (.torrent) file from some other web page.

  7. Start a downloader which already has the complete file (the 'origin').

To start downloading, a user does the following:

  1. Install BitTorrent (or have done so already).

  2. Surf the web.
  3. Click on a link to a .torrent file.

  4. Select where to save the file locally, or select a partial download to resume.
  5. Wait for download to complete.
  6. Tell downloader to exit (it keeps uploading until this happens).

bencoding


CategoryRFC

BEP-0003 (last edited 2019-01-22 00:22:02 by xj9)