root / dotorg / v6 / html / beps / bep_0012.html

Revision 10784, 4.9 kB (checked in by dave, 11 months ago)

missing html files.

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><span>For Developers</span></li>
23<!-- <li><a href="./blog">Blog</a></li> -->
24<li><a href="../donate.html">Donate!</a></li>
25</ul>
26</div> <!-- nav -->
27<!-- ### Begin Content ### -->
28<div id="second">
29
30
31
32<table class="rfc2822 docutils field-list" frame="void" rules="none">
33<col class="field-name" />
34<col class="field-body" />
35<tbody valign="top">
36<tr class="field"><th class="field-name">BEP:</th><td class="field-body">12</td>
37</tr>
38<tr class="field"><th class="field-name">Title:</th><td class="field-body">Multitracker Metadata Extension</td>
39</tr>
40<tr class="field"><th class="field-name">Version:</th><td class="field-body">10603</td>
41</tr>
42<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="https://svn.bittorrent.com/trac.cgi/browser/dotorg/trunk/html/beps/bep_0012.rst">2008-02-07 17:54:09 -0800 (Thu, 07 Feb 2008)</a></td>
43</tr>
44<tr class="field"><th class="field-name">Author:</th><td class="field-body">John Hoffman &lt;theshadow&#32;&#97;t&#32;degreez.net&gt;</td>
45</tr>
46<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
47</tr>
48<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
49</tr>
50<tr class="field"><th class="field-name">Created:</th><td class="field-body">07-Feb-2008</td>
51</tr>
52<tr class="field"><th class="field-name">Post-History:</th><td class="field-body"></td>
53</tr>
54</tbody>
55</table>
56<hr />
57<div class="contents topic" id="contents">
58<p class="topic-title first">Contents</p>
59<ul class="simple">
60<li><a class="reference internal" href="#metadata-extension" id="id2">Metadata Extension</a></li>
61<li><a class="reference internal" href="#order-of-processing" id="id3">Order of Processing</a></li>
62</ul>
63</div>
64<div class="section" id="metadata-extension">
65<h1>Metadata Extension</h1>
66<p>In addition to the standard &quot;announce&quot; key, in the main area of the
67metadata file and not part of the &quot;info&quot; section, will be a new key,
68&quot;announce-list&quot;.  This key will refer to a list of lists of URLs, and
69will contain a list of tiers of announces.  If the client is compatible
70with the multitracker specification, and if the &quot;announce-list&quot; key is
71present, the client will ignore the &quot;announce&quot; key and only use the
72URLs in &quot;announce-list&quot;.</p>
73</div>
74<div class="section" id="order-of-processing">
75<h1>Order of Processing</h1>
76<p>The tiers of announces will be processed sequentially; all URLs in each
77tier must be checked before the client goes on to the next tier.  URLs
78within each tier will be processed in a randomly chosen order; in other
79words, the list will be shuffled when first read, and then parsed in
80order.  In addition, if a connection with a tracker is successful, it
81will be moved to the front of the tier.</p>
82<p>Examples:</p>
83<pre class="literal-block">
84d['announce-list'] = [ [tracker1], [backup1], [backup2] ]
85</pre>
86<p>On each announce, first try tracker1, then if that cannot be reached,
87try backup1 and backup2 respectively.  On the next announce, repeat
88in the same order.  This is meant for when the trackers are standard
89and can not share information.</p>
90<blockquote>
91d['announce-list'] = [[ tracker1, tracker2, tracker3 ]]</blockquote>
92<p>First, shuffle the list.  (For argument's sake, we'll say the list
93has already been shuffled.)  Then, if tracker1 cannot be reached, try
94tracker2.  If tracker2 can be reached, the list is now:
95tracker2,tracker1,tracker3.  From then on, this will be the order the
96client tries.  If later neither tracker2 nor tracker1 can be reached,
97but tracker3 responds, then the list will be changed to:
98tracker3,tracker2,tracker1, and will be tried in that order in the
99future.  This form is meant for trackers which can trade peer
100information and will cause the clients to help balance the load
101between the trackers.</p>
102<blockquote>
103d['announce-list'] = [ [ tracker1, tracker2 ], [backup1] ]</blockquote>
104<p>The first tier, consisting of tracker1 and tracker2, is shuffled.
105Both trackers 1 and 2 will be tried on each announce (though perhaps
106in varying order) before the client tries to reach backup1.</p>
107</div>
108
109
110</div>
111        <div id="footer">
112<hr/>
113</div>
114
115</div>
116</body>
117</html>
Note: See TracBrowser for help on using the browser.