root / dotorg / trunk / html / beps / bep_0021.html

Revision 11097, 6.1 kB (checked in by dave, 5 months ago)

regenerated html

Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
7<title></title>
8<link rel="stylesheet" href="../css/bep.css" type="text/css" />
9</head>
10<body>
11<div class="document">
12
13<div id="upper" class="clear">
14<div id="wrap">
15<div id="header">
16<h1><a href="../index.html">BitTorrent<span>.org</span></a></h1>
17</div>
18<div id="nav">
19<ul>
20<li><a href="../index.html">Home</a></li>
21<li><a href="../introduction.html">For Users</a></li>
22<li><a href="bep_0000.html"><span>For Developers</span></a></li>
23<!-- <li><a href="./blog">Blog</a></li> -->
24<li><a href="http://forum.bittorrent.org"> Forums </li>
25<li><a href="../donate.html">Donate!</a></li>
26</ul>
27</div> <!-- nav -->
28<!-- ### Begin Content ### -->
29<div id="second">
30
31
32
33<table class="rfc2822 docutils field-list" frame="void" rules="none">
34<col class="field-name" />
35<col class="field-body" />
36<tbody valign="top">
37<tr class="field"><th class="field-name">BEP:</th><td class="field-body">21</td>
38</tr>
39<tr class="field"><th class="field-name">Title:</th><td class="field-body">Extension for partial seeds</td>
40</tr>
41<tr class="field"><th class="field-name">Version:</th><td class="field-body">11067</td>
42</tr>
43<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="http://bittorrent.org/trac/browser/dotorg/trunk/html/beps/bep_0021.rst">2008-05-13 16:49:33 -0700 (Tue, 13 May 2008)</a></td>
44</tr>
45<tr class="field"><th class="field-name">Author:</th><td class="field-body">Arvid Norberg &lt;arvid&#32;&#97;t&#32;bittorrent.com&gt;, Greg Hazel &lt;greg&#32;&#97;t&#32;bittorrent.com&gt;, Aaron Grunthal</td>
46</tr>
47<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
48</tr>
49<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
50</tr>
51<tr class="field"><th class="field-name">Created:</th><td class="field-body">8-May-2008</td>
52</tr>
53<tr class="field"><th class="field-name">Post-History:</th><td class="field-body"></td>
54</tr>
55</tbody>
56</table>
57<hr />
58<div class="contents topic" id="contents">
59<p class="topic-title first">Contents</p>
60<ul class="simple">
61<li><a class="reference internal" href="#extension-header" id="id3">Extension Header</a></li>
62<li><a class="reference internal" href="#tracker-scrapes" id="id4">Tracker Scrapes</a></li>
63<li><a class="reference internal" href="#tracker-announce" id="id5">Tracker Announce</a></li>
64<li><a class="reference internal" href="#rationale" id="id6">Rationale</a></li>
65<li><a class="reference internal" href="#references" id="id7">References</a></li>
66<li><a class="reference internal" href="#copyright" id="id8">Copyright</a></li>
67</ul>
68</div>
69<p>The purpose of this extension is to allow further optimizations of
70bittorrent swarms when peers are <em>partial seeds</em>. A partial seed
71is a peer that is incomplete without downloading anything more. This
72happens for multi file torrents where users only download some of
73the files.</p>
74<div class="section" id="extension-header">
75<h1>Extension Header</h1>
76<p>A peer that is a partial seed SHOULD include an extra header in the extension
77handshake (specified in <a class="reference external" href="http://www.bittorrent.org/beps/bep_0010.html">BEP 0010</a> <a class="footnote-reference" href="#id1" id="id2">[1]</a>), 'upload_only'. Setting the value of
78this key to 1 indicates that this peer is not interested in downloading anything.</p>
79<p>Example extension handshake message:</p>
80<pre class="literal-block">
81{'m': {'ut_metadata', 3}, 'upload_only': 1}
82</pre>
83</div>
84<div class="section" id="tracker-scrapes">
85<h1>Tracker Scrapes</h1>
86<p>The tracker scrape conventions defines three values per torrent, 'complete',
87'incomplete' and 'downloaded'. The purpose of this extensions is to let clients
88distinguish between partial seeds and downloaders, both of which currently would
89be classified as <em>incomplete</em>.</p>
90<p>If the tracker supports this extension, it MUST add a fourth field, 'downloaders'.
91This field is the number of active downloaders in the swarm, it does not include
92partial seeds. The number of partial seeds can be calculated by:
93<tt class="docutils literal"><span class="pre">incomplete</span> <span class="pre">-</span> <span class="pre">downloaders</span></tt>.</p>
94</div>
95<div class="section" id="tracker-announce">
96<h1>Tracker Announce</h1>
97<p>In order to tell the tracker that a peer is a partial seed, it MUST send an
98<tt class="docutils literal"><span class="pre">event=paused</span></tt> parameter in every announce while it is a partial seed.</p>
99</div>
100<div class="section" id="rationale">
101<h1>Rationale</h1>
102<p>Allowing peers to scrape a tracker and distinguish between active downloaders
103and partial seeds makes it more efficient to determine what to seed based
104on the downloader/seed ratio.</p>
105<p>The reason why every announce should contain <tt class="docutils literal"><span class="pre">event=paused</span></tt> is to avoid
106relying on the state being stored in the tracker. In case there's a failure
107and a backup tracker is used, it can recover all of the swarm state because
108the clients are announcing that they are partial seeds.</p>
109</div>
110<div class="section" id="references">
111<h1>References</h1>
112<table class="docutils footnote" frame="void" id="id1" rules="none">
113<colgroup><col class="label" /><col /></colgroup>
114<tbody valign="top">
115<tr><td class="label"><a class="fn-backref" href="#id2">[1]</a></td><td><a class="reference external" href="http://www.bittorrent.org/beps/bep_0010.html">http://www.bittorrent.org/beps/bep_0010.html</a></td></tr>
116</tbody>
117</table>
118</div>
119<div class="section" id="copyright">
120<h1>Copyright</h1>
121<p>This document has been placed in the public domain.</p>
122<!-- Local Variables:
123mode: indented-text
124indent-tabs-mode: nil
125sentence-end-double-space: t
126fill-column: 70
127coding: utf-8
128End: -->
129</div>
130
131
132</div>
133        <div id="footer">
134<hr/>
135</div>
136
137</div>
138</body>
139</html>
Note: See TracBrowser for help on using the browser.