Changeset 11107
- Timestamp:
- 05/27/08 21:03:51 (22 months ago)
- Location:
- dotorg/trunk/html/beps
- Files:
-
- 6 modified
-
bep_0000.html (modified) (1 diff)
-
bep_0001.html (modified) (1 diff)
-
bep_0004.html (modified) (1 diff)
-
bep_0007.html (modified) (1 diff)
-
bep_0022.html (modified) (19 diffs)
-
bep_0023.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
dotorg/trunk/html/beps/bep_0000.html
r11103 r11107 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">0</td> 38 </tr> 39 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Index of BitTorrent Enhancement Proposals</td> 40 </tr> 41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11106</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_0000.rst">2008-05-27 20:58:22 -0700 (Tue, 27 May 2008)</a></td> 44 </tr> 45 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com></td> 46 </tr> 47 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Active</td> 48 </tr> 49 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Process</td> 50 </tr> 51 <tr class="field"><th class="field-name">Created:</th><td class="field-body">10-Jan-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="#final-and-active-process-beps" id="id4">Final and Active Process BEPs</a></li> 62 <li><a class="reference internal" href="#accepted-beps" id="id5">Accepted BEPs</a></li> 63 <li><a class="reference internal" href="#draft-beps" id="id6">Draft BEPs</a></li> 64 <li><a class="reference internal" href="#deferred-beps" id="id7">Deferred BEPs</a></li> 65 <li><a class="reference internal" href="#withdrawn-beps" id="id8">Withdrawn BEPs</a></li> 66 <li><a class="reference internal" href="#rejected-beps" id="id9">Rejected BEPs</a></li> 67 </ul> 68 </div> 69 <p>The BitTorrent Community Forum coordinates the development of the 70 BitTorrent protocol suite and its reference implementation. It is the 71 wish of Bram Cohen that the BitTorrent mainline python implementation 72 remain open source and that the protocol development process be 73 modelled after the Python Enhancement Proposal (PEP) process <a class="footnote-reference" href="#python" id="id1">[1]</a>.</p> 74 <p>This document indexes all BitTorrent Enhancement Proposals (BEPs). 75 When a new proposal is submitted, one of the BitTorrent.org editors 76 assigns a BEP number and updates this index appropriately. Each 77 document has a number that never changes and the history of the 78 document is maintained in subversion <a class="footnote-reference" href="#svn" id="id2">[2]</a>.</p> 79 <div class="section" id="final-and-active-process-beps"> 80 <h1>Final and Active Process BEPs</h1> 81 <table border="1" class="docutils"> 82 <colgroup> 83 <col width="7%" /> 84 <col width="93%" /> 85 </colgroup> 86 <thead valign="bottom"> 87 <tr><th class="head">Num</th> 88 <th class="head">Title</th> 89 </tr> 90 </thead> 91 <tbody valign="top"> 92 <tr><td><span class="raw-html"><A HREF="bep_0000.html">0</A></span></td> 93 <td><span class="raw-html"><A HREF="bep_0000.html">Index of BitTorrent Enhancement Proporsals </A></span></td> 94 </tr> 95 <tr><td><span class="raw-html"><A HREF="bep_0001.html">1</A></span></td> 96 <td><span class="raw-html"><A HREF="bep_0001.html">The BEP Process</A></span></td> 97 </tr> 98 <tr><td><span class="raw-html"><A HREF="bep_0002.html">2</A></span></td> 99 <td><span class="raw-html"><A HREF="bep_0002.html">Sample reStructured Text BEP Template</A></span></td> 100 </tr> 101 <tr><td><span class="raw-html"><A HREF="bep_0003.html">3</A></span></td> 102 <td><span class="raw-html"><A HREF="bep_0003.html">The BitTorrent Protocol Specification</A></span></td> 103 </tr> 104 <tr><td><span class="raw-html"><A HREF="bep_0004.html">4</A></span></td> 105 <td><span class="raw-html"><A HREF="bep_0004.html">Known Number Allocations </A></span></td> 106 </tr> 107 <tr><td><span class="raw-html"><A HREF="bep_0020.html">20</A></span></td> 108 <td><span class="raw-html"><A HREF="bep_0020.html">Peer ID Conventions</A></span></td> 109 </tr> 110 <tr><td><span class="raw-html"><A HREF="bep_1000.html">1000</A></span></td> 111 <td><span class="raw-html"><A HREF="bep_1000.html">Pending Standards Track Documents</A></span></td> 112 </tr> 113 </tbody> 114 </table> 115 </div> 116 <div class="section" id="accepted-beps"> 117 <h1>Accepted BEPs</h1> 118 <p>These BEPs describe mechanisms that have been deployed in one or more BitTorrent 119 implementations and have proven useful. They may require minor revisions. 120 They await the blessing of the BDFL before they can be considered Final.</p> 121 <table border="1" class="docutils"> 122 <colgroup> 123 <col width="7%" /> 124 <col width="93%" /> 125 </colgroup> 126 <thead valign="bottom"> 127 <tr><th class="head">Num</th> 128 <th class="head">Title</th> 129 </tr> 130 </thead> 131 <tbody valign="top"> 132 <tr><td><span class="raw-html"><A HREF="bep_0009.html">9</A></span></td> 133 <td><span class="raw-html"><A HREF="bep_0009.html">Extension for Peers to Send Metadata Files </A></span></td> 134 </tr> 135 <tr><td><span class="raw-html"><A HREF="bep_0023.html">23</A></span></td> 136 <td><span class="raw-html"><A HREF="bep_0023.html">Tracker Returns Compact Peer Lists</A></span></td> 137 </tr> 138 </tbody> 139 </table> 140 </div> 141 <div class="section" id="draft-beps"> 142 <h1>Draft BEPs</h1> 143 <p>The following BEPs are under consideration for standardization.</p> 144 <table border="1" class="docutils"> 145 <colgroup> 146 <col width="7%" /> 147 <col width="93%" /> 148 </colgroup> 149 <thead valign="bottom"> 150 <tr><th class="head">Num</th> 151 <th class="head">Title</th> 152 </tr> 153 </thead> 154 <tbody valign="top"> 155 <tr><td><span class="raw-html"><A HREF="bep_0005.html">5</A></span></td> 156 <td><span class="raw-html"><A HREF="bep_0005.html">DHT Protocol </A></span></td> 157 </tr> 158 <tr><td><span class="raw-html"><A HREF="bep_0006.html">6</A></span></td> 159 <td><span class="raw-html"><A HREF="bep_0006.html">Fast Extension </A></span></td> 160 </tr> 161 <tr><td><span class="raw-html"><A HREF="bep_0007.html">7</A></span></td> 162 <td><span class="raw-html"><A HREF="bep_0007.html">IPv6 Tracker Extension </A></span></td> 163 </tr> 164 <tr><td><span class="raw-html"><A HREF="bep_0010.html">10</A></span></td> 165 <td><span class="raw-html"><A HREF="bep_0010.html">Extension Protocol </A></span></td> 166 </tr> 167 <tr><td><span class="raw-html"><A HREF="bep_0012.html">12</A></span></td> 168 <td><span class="raw-html"><A HREF="bep_0012.html">Multitracker Metadata Extension</A></span></td> 169 </tr> 170 <tr><td><span class="raw-html"><A HREF="bep_0015.html">15</A></span></td> 171 <td><span class="raw-html"><A HREF="bep_0015.html">UDP Tracker Protocol</A></span></td> 172 </tr> 173 <tr><td><span class="raw-html"><A HREF="bep_0016.html">16</A></span></td> 174 <td><span class="raw-html"><A HREF="bep_0016.html">Superseeding</A></span></td> 175 </tr> 176 <tr><td><span class="raw-html"><A HREF="bep_0017.html">17</A></span></td> 177 <td><span class="raw-html"><A HREF="bep_0017.html">HTTP Seeding (Hoffman-style) </A></span></td> 178 </tr> 179 <tr><td><span class="raw-html"><A HREF="bep_0018.html">18</A></span></td> 180 <td><span class="raw-html"><A HREF="bep_0018.html">Search Engine Specification</A></span></td> 181 </tr> 182 <tr><td><span class="raw-html"><A HREF="bep_0019.html">19</A></span></td> 183 <td><span class="raw-html"><A HREF="bep_0019.html">HTTP/FTP Seeding (GetRight-style) </A></span></td> 184 </tr> 185 <tr><td><span class="raw-html"><A HREF="bep_0021.html">21</A></span></td> 186 <td><span class="raw-html"><A HREF="bep_0021.html">Extension for Partial Seeds</A></span></td> 187 </tr> 188 <tr><td><span class="raw-html"><A HREF="bep_0022.html">22</A></span></td> 189 <td><span class="raw-html"><A HREF="bep_0022.html">BitTorrent Cache Discovery Protocol</A></span></td> 190 </tr> 191 <tr><td><span class="raw-html"><A HREF="bep_0024.html">24</A></span></td> 192 <td><span class="raw-html"><A HREF="bep_0024.html">Tracker Returns External IP</A></span></td> 193 </tr> 194 <tr><td><span class="raw-html"><A HREF="bep_0026.html">26</A></span></td> 195 <td><span class="raw-html"><A HREF="bep_0026.html">Zeroconf Peer Advertising and Discovery</A></span></td> 196 </tr> 197 </tbody> 198 </table> 199 </div> 200 <div class="section" id="deferred-beps"> 201 <h1>Deferred BEPs</h1> 202 <p>The editor(s) deem that the following BEPs are not progressing toward standardization, 203 but they have not yet been withdrawn.</p> 204 <table border="1" class="docutils"> 205 <colgroup> 206 <col width="8%" /> 207 <col width="92%" /> 208 </colgroup> 209 <thead valign="bottom"> 210 <tr><th class="head">Num</th> 211 <th class="head">Title</th> 212 </tr> 213 </thead> 214 <tbody valign="top"> 215 <tr><td><span class="raw-html"><A HREF="bep_0008.html">8</A></span></td> 216 <td><span class="raw-html"><A HREF="bep_0008.html">Tracker Peer Obfuscation </A></span></td> 217 </tr> 218 </tbody> 219 </table> 220 </div> 221 <div class="section" id="withdrawn-beps"> 222 <h1>Withdrawn BEPs</h1> 223 <p>At this time, no BEPs have been withdrawn.</p> 224 </div> 225 <div class="section" id="rejected-beps"> 226 <h1>Rejected BEPs</h1> 227 <p>At this time, no BEPs have been rejected.</p> 228 <table class="docutils footnote" frame="void" id="python" rules="none"> 229 <colgroup><col class="label" /><col /></colgroup> 230 <tbody valign="top"> 231 <tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><a class="reference external" href="http://www.python.org/dev/peps/">http://www.python.org/dev/peps/</a></td></tr> 232 </tbody> 233 </table> 234 <table class="docutils footnote" frame="void" id="svn" rules="none"> 235 <colgroup><col class="label" /><col /></colgroup> 236 <tbody valign="top"> 237 <tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td><a class="reference external" href="http://bittorrent.org/trac">http://bittorrent.org/trac</a></td></tr> 238 </tbody> 239 </table> 240 </div> 241 242 243 </div> 244 <div id="footer"> 245 <hr/> 246 </div> 247 248 </div> 249 </body> 250 </html> -
dotorg/trunk/html/beps/bep_0001.html
r11103 r11107 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">1</td> 38 </tr> 39 <tr class="field"><th class="field-name">Title:</th><td class="field-body">The BitTorrent Enhancement Proposal Process</td> 40 </tr> 41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11054</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_0001.rst">2008-05-02 20:19:03 -0700 (Fri, 02 May 2008)</a></td> 44 </tr> 45 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com></td> 46 </tr> 47 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Active</td> 48 </tr> 49 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Process</td> 50 </tr> 51 <tr class="field"><th class="field-name">Created:</th><td class="field-body">10-Jan-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="#what-is-a-bep" id="id3">What is a BEP</a></li> 62 <li><a class="reference internal" href="#bep-types" id="id4">BEP Types</a></li> 63 <li><a class="reference internal" href="#bep-work-flow" id="id5">BEP Work Flow</a></li> 64 <li><a class="reference internal" href="#intellectual-property-and-bittorrent-standards" id="id6">Intellectual Property and BitTorrent Standards</a></li> 65 <li><a class="reference internal" href="#history" id="id7">History</a></li> 66 <li><a class="reference internal" href="#acknowledgements" id="id8">Acknowledgements</a></li> 67 <li><a class="reference internal" href="#references-and-footnotes" id="id9">References and Footnotes</a></li> 68 <li><a class="reference internal" href="#copyright" id="id10">Copyright</a></li> 69 </ul> 70 </div> 71 <div class="section" id="what-is-a-bep"> 72 <h1>What is a BEP</h1> 73 <p>BEP stands for BitTorrent Enhancement Proposal. A BEP is a design 74 document providing information to the BitTorrent community, or 75 describing a new feature for the BitTorrent protocols. The BEP should 76 provide a concise technical specification of the feature and a 77 rationale for the feature.</p> 78 <p>We intend BEPs to be the primary mechanisms for proposing new 79 features, for collecting community input on an issue, and for 80 documenting the design decisions that have gone into BitTorrent. The BEP 81 author is responsible for building consensus within the community and 82 documenting dissenting opinions.</p> 83 <p>Because the BEPs are maintained as reStructured text files in a versioned 84 repository, their revision history is the historical record of the 85 feature proposal <a class="footnote-reference" href="#svn" id="id1">[1]</a>.</p> 86 </div> 87 <div class="section" id="bep-types"> 88 <h1>BEP Types</h1> 89 <p>There are three kinds of BEP:</p> 90 <blockquote> 91 <ol class="arabic simple"> 92 <li>A Standards Track BEP describes an extension to one of the BitTorrent 93 protocols or a change in the behavior of one of the actors in these 94 protocols, where the actors are currently clients, trackers, and web 95 servers.</li> 96 <li>An Informational BEP describes a BitTorrent design issue, or 97 provides general guidelines or information to the BitTorrent 98 community, but does not propose an extension. Informational BEPs 99 do not necessarily represent a BitTorrent community consensus or 100 recommendation, so users and implementors are free to ignore 101 Informational BEPs or follow their advice.</li> 102 <li>A Process BEP describes a process surrounding BitTorrent, or 103 proposes a change to (or an event in) a process. Process BEPs are 104 like Standards Track BEPs but apply to areas other than the 105 BitTorrent protocols. They are more than recommendations, and 106 users are typically not free to ignore them. Examples include 107 release schedules, procedures, guidelines, changes to the 108 decision-making process, and changes to the tools or environment 109 used in BitTorrent development.</li> 110 </ol> 111 </blockquote> 112 </div> 113 <div class="section" id="bep-work-flow"> 114 <h1>BEP Work Flow</h1> 115 <p>The BEP editors assign BEP numbers and change their status. The 116 current BEP editors are David Harrison and Arvid Norberg. Please send 117 all BEP-related email to <<a class="reference external" href="mailto:editor%40bittorrent.org">editor<span>@</span>bittorrent<span>.</span>org</a>>. Also see BEP Editor 118 Responsibilities & Workflow below.</p> 119 <p>The BEP process begins with a new idea for the BitTorrent 120 protocols. It is highly recommended that a single BEP contain a single 121 key proposal. The BEP editor reserves the right to reject BEP 122 proposals if they appear unfocussed or overly broad. If in doubt, 123 split your BEP into muliple BEPs.</p> 124 <p>Each BEP must have a champion -- someone who writes the BEP using the 125 style and format described below, shepherds the discussions in the 126 appropriate forums, and attempts to build community consensus around 127 the idea. The BEP champion should first post a description of the idea 128 to the BEPs forum at forum.bittorrent.org.</p> 129 <p>If the champion believes the idea warrants a BEP then the champion 130 emails the BEP editor <<a class="reference external" href="mailto:editor%40bittorrent.org">editor<span>@</span>bittorrent<span>.</span>org</a>> with a proposed title 131 and a draft of the BEP. This draft must be written in BEP style as 132 described below.</p> 133 <p>If the BEP editor approves, he assigns the BEP a number, labels it as 134 Standards Track, Informational, or Process, gives it status "Draft", 135 and creates and checks-in the initial draft of the BEP to the 136 subversion repository. The BEP editor will not unreasonably 137 deny a BEP. Reasons for denying BEP status include duplication of 138 effort, being technically unsound, not providing proper motivation or 139 not addressing backwards compatibility. The BDFL (Benevolent Dictator 140 for Life, Bram Cohen) can be consulted during the approval phase, and 141 is the final arbiter of the draft's BEP-ability.</p> 142 <p>If a pre-BEP is rejected, the author may elect to take the pre-BEP to 143 the BEP forum seeking feedback and consesnsus from the community at large. 144 A proposal may be re-submitted after it has been revised.</p> 145 <p>The champion is then responsible for marshaling community support for 146 it. As updates are necessary, the BEP author can check in new versions 147 if they have SVN commit permissions, or can email new BEP versions to 148 the BEP editor for committing.</p> 149 <p>Standards Track BEPs consist of two parts, a design document and a 150 reference implementation. The reference implementation need not be 151 complete when a BEP is submitted to the editors. However Standards 152 Track BEPs must include an implementation in at least one BitTorrent 153 client with publicy available code before it can be considered Final.</p> 154 <p>BEP champions are responsible for collecting community feedback on a 155 BEP before submitting it for review. A BEP that has not been discussed 156 in the BEPs forum on forum.bittorrent.org will not be 157 accepted. However, wherever possible, long open-ended discussions in 158 the BEP forum should be avoided. Strategies to keep the discussions 159 efficient include: setting up a separate SIG forum for the topic, 160 having the BEP author accept private comments in the early design 161 phases, setting up a wiki page, etc. BEP authors should use their 162 discretion here.</p> 163 <p>Once the authors have completed a BEP, they must inform the BEP editor 164 that it is ready for review. BEPs are reviewed by the BDFL and his 165 chosen consultants, who may accept or reject a BEP or send it back to 166 the author(s) for revision. For a BEP that is pre-determined to be 167 acceptable (e.g., it is an obvious win as-is and/or its implementation 168 already exists in one or more popular BitTorrent clients) the BDFL may 169 also initiate a BEP review, first notifying the BEP author(s) and 170 giving them a chance to make revisions.</p> 171 <p>For a BEP to be accepted it must meet certain minimum criteria. It 172 must be a clear and complete description of the proposed 173 enhancement. The enhancement must represent a net improvement. The 174 proposed implementation, if applicable, must be functional and have 175 been tested in live BitTorrent swarms. Supporting results from 176 analyses, testbed experiments and event-based simulations are also 177 recommended where appropriate. A Standards Track document should 178 include the rationale behind a proposal and may briefly summarize 179 analytical, simulation, or experimental results where necessary to 180 illustrate or motivate the enhancement. However, detailed analytical, 181 simulation, and experiment results, especially comparing different 182 approaches to the same problem should be omitted from Standards Track 183 BEPs and instead cited from a published paper or a separate 184 Informational BEP.</p> 185 <p>Once a BEP has been accepted, the reference implementation must be 186 completed. When the reference implementation is complete and accepted 187 by the BDFL, the status will be changed to "Final".</p> 188 <p>A BEP can also be assigned status "Deferred". The BEP author or editor 189 can assign the BEP this status when no progress is being made on the 190 BEP. Once a BEP is deferred, the BEP editor can re-assign it to draft 191 status.</p> 192 <p>A BEP can also be "Rejected". Perhaps after all is said and done it 193 was not a good idea. It is still important to have a record of this 194 fact.</p> 195 <p>BEPs can also be replaced by a different BEP, rendering the original 196 obsolete. This is intended for Informational BEPs, where version 2 of 197 an API can replace version 1.</p> 198 <p>The possible paths of the status of BEPs are as follows:</p> 199 <img alt="bep_0001_1.png" src="bep_0001_1.png" /> 200 </div> 201 <div class="section" id="intellectual-property-and-bittorrent-standards"> 202 <h1>Intellectual Property and BitTorrent Standards</h1> 203 <p>Any idea submitted in a BEP will not be considered for standardization 204 if the idea is not in the public domain. Before a BEP can be 205 considered Final, all people (including the BEP authors) or entities 206 with a claim on the intellectual property expressed in a BEP must 207 assign in writing all intellectual property expressed in the BEP to 208 the public domain. If the BEP authors lack the power to assign 209 intellectual property rights then they must disclose this fact before 210 the BEP can be considered Final.</p> 211 <p>Furthermore BEP authors should not knowingly propose anything in their 212 BEPs that infringes on the intellectual property rights of others.</p> 213 <p>This policy statement should not be construed as meaning that BEP 214 authors are required to assign software implementations of any 215 particular idea to the public domain. BitTorrent implementors may 216 retain all rights to their implementations.</p> 217 </div> 218 <div class="section" id="history"> 219 <h1>History</h1> 220 <p>This document was derived heavily from PEP-0001 <a class="footnote-reference" href="#pep-1" id="id2">[2]</a>. In many places 221 text was simply copied and modified. Although the PEP-0001 text 222 was written by Barry Warsaw, Jeremy Hylton, and David Goodger, they 223 are not responsible for its use in the BitTorent Enhancement Process, 224 and should not be bothered with technical questions specific to 225 BitTorrent or the BEP process. Please direct all comments to the 226 BitTorrent editors <<a class="reference external" href="mailto:editor%40bittorrent.org">editor<span>@</span>bittorrent<span>.</span>org</a>> or the forums at 227 forum.bittorrent.org.</p> 228 </div> 229 <div class="section" id="acknowledgements"> 230 <h1>Acknowledgements</h1> 231 <p>Thanks to Barry Warsaw, David Goodger, and Guido van Rossum for their 232 guidance.</p> 233 </div> 234 <div class="section" id="references-and-footnotes"> 235 <h1>References and Footnotes</h1> 236 <table class="docutils footnote" frame="void" id="svn" rules="none"> 237 <colgroup><col class="label" /><col /></colgroup> 238 <tbody valign="top"> 239 <tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>This historical record is available by the normal SVN 240 commands for retrieving older revisions. For those without direct 241 access to the SVN tree, you can browse the current and past BEP 242 revisions here: <a class="reference external" href="http://bittorrent.org/trac/">http://bittorrent.org/trac/</a></td></tr> 243 </tbody> 244 </table> 245 <table class="docutils footnote" frame="void" id="pep-1" rules="none"> 246 <colgroup><col class="label" /><col /></colgroup> 247 <tbody valign="top"> 248 <tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>PEP-001: PEP Purposes and Guidelines, Warsaw, Hylton, Goodger. 249 (<a class="reference external" href="http://www.python.org/dev/peps/pep-0001">http://www.python.org/dev/peps/pep-0001</a>)</td></tr> 250 </tbody> 251 </table> 252 </div> 253 <div class="section" id="copyright"> 254 <h1>Copyright</h1> 255 <p>This document has been placed in the public domain.</p> 256 <!-- Local Variables: 257 mode: indented-text 258 indent-tabs-mode: nil 259 sentence-end-double-space: t 260 fill-column: 70 261 coding: utf-8 262 End: --> 263 </div> 264 265 266 </div> 267 <div id="footer"> 268 <hr/> 269 </div> 270 271 </div> 272 </body> 273 </html> -
dotorg/trunk/html/beps/bep_0004.html
r11093 r11107 39 39 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Assigned Numbers</td> 40 40 </tr> 41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">110 31</td>41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11093</td> 42 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_0004.rst">2008-0 2-28 16:43:58 -0800 (Thu, 28 Feb2008)</a></td>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_0004.rst">2008-05-20 19:01:53 -0700 (Tue, 20 May 2008)</a></td> 44 44 </tr> 45 45 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com></td> -
dotorg/trunk/html/beps/bep_0007.html
r11098 r11107 39 39 <tr class="field"><th class="field-name">Title:</th><td class="field-body">IPv6 Tracker Extension</td> 40 40 </tr> 41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">110 31</td>41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11098</td> 42 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_0007.rst">2008-0 2-28 16:43:58 -0800 (Thu, 28 Feb2008)</a></td>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_0007.rst">2008-05-21 00:08:51 -0700 (Wed, 21 May 2008)</a></td> 44 44 </tr> 45 45 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Greg Hazel <greg at bittorrent.com>, Arvid Norberg <arvid at bittorrent.com></td> -
dotorg/trunk/html/beps/bep_0022.html
r11088 r11107 39 39 <tr class="field"><th class="field-name">Title:</th><td class="field-body">BitTorrent Cache Discovery Protocol</td> 40 40 </tr> 41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11 087</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_0022.rst">2008-05- 19 16:16:31 -0700 (Mon, 19May 2008)</a></td>41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11101</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_0022.rst">2008-05-27 19:02:55 -0700 (Tue, 27 May 2008)</a></td> 44 44 </tr> 45 45 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com>, Stanislav Shalunov <shalunov at bittorrent.com>, Greg Hazel <greg at bittorrent.com></td> … … 61 61 <p class="topic-title first">Contents</p> 62 62 <ul class="simple"> 63 <li><a class="reference internal" href="#motivation" id="id 9">Motivation</a></li>64 <li><a class="reference internal" href="#the-discovery-mechanism" id="id1 0">The Discovery Mechanism</a></li>65 <li><a class="reference internal" href="#iterative-queries" id="id1 1">Iterative Queries</a></li>66 <li><a class="reference internal" href="#network-address-translators" id="id1 2">Network Address Translators</a></li>67 <li><a class="reference internal" href="#example" id="id1 3">Example</a></li>68 <li><a class="reference internal" href="#references" id="id1 4">References</a></li>69 <li><a class="reference internal" href="#copyright" id="id1 5">Copyright</a></li>63 <li><a class="reference internal" href="#motivation" id="id10">Motivation</a></li> 64 <li><a class="reference internal" href="#the-discovery-mechanism" id="id11">The Discovery Mechanism</a></li> 65 <li><a class="reference internal" href="#iterative-queries" id="id12">Iterative Queries</a></li> 66 <li><a class="reference internal" href="#network-address-translators" id="id13">Network Address Translators</a></li> 67 <li><a class="reference internal" href="#example" id="id14">Example</a></li> 68 <li><a class="reference internal" href="#references" id="id15">References</a></li> 69 <li><a class="reference internal" href="#copyright" id="id16">Copyright</a></li> 70 70 </ul> 71 71 </div> … … 86 86 those that share the access network. When subsequent peers transfer 87 87 from their ISP's cache, the ISP experiences less transit traffic.</p> 88 <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 89 NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and 90 "OPTIONAL" in this document are to be interpreted as described in 91 IETF <a class="reference external" href="http://www.faqs.org/rfcs/rfc2119.html">RFC 2119</a> <a class="footnote-reference" href="#rfc-2119" id="id1">[5]</a>.</p> 88 92 </div> 89 93 <div class="section" id="the-discovery-mechanism"> … … 113 117 tracker is called a <em>cache tracker</em>, but the protocol to talk to this 114 118 tracker is no different from the standard BitTorrent tracker protocol 115 described in <a class="footnote-reference" href="#bep-3" id="id 1">[1]</a>.</p>119 described in <a class="footnote-reference" href="#bep-3" id="id2">[1]</a>.</p> 116 120 <p>When the BitTorrent client joins a swarm it announces to one or more 117 121 of the trackers referenced in the .torrent file and announces to the … … 119 123 other peers that announced the same file to the cache tracker.</p> 120 124 <p>A cache is a BitTorrent peer. A client MAY treat it preferentially.</p> 121 <p>Reverse DNS lookups are described in <a class="reference external" href="http://www.faqs.org/rfcs/rfc1034.html">RFC 1034</a> <a class="footnote-reference" href="#rfc-1034" id="id 2">[4]</a>.122 The SRV resource record type is described in <a class="reference external" href="http://www.faqs.org/rfcs/rfc2782.html">RFC 2782</a> <a class="footnote-reference" href="#rfc-2782" id="id 3">[5]</a>.</p>125 <p>Reverse DNS lookups are described in <a class="reference external" href="http://www.faqs.org/rfcs/rfc1034.html">RFC 1034</a> <a class="footnote-reference" href="#rfc-1034" id="id3">[4]</a>. 126 The SRV resource record type is described in <a class="reference external" href="http://www.faqs.org/rfcs/rfc2782.html">RFC 2782</a> <a class="footnote-reference" href="#rfc-2782" id="id4">[6]</a>.</p> 123 127 </div> 124 128 <div class="section" id="iterative-queries"> … … 132 136 </pre> 133 137 <p>However, if wildcards are implemented according to the algorithm in 134 section 4.3.2 in <a class="footnote-reference" href="#rfc-1034" id="id 4">[4]</a> then all subdomains of pacbell.net that138 section 4.3.2 in <a class="footnote-reference" href="#rfc-1034" id="id5">[4]</a> then all subdomains of pacbell.net that 135 139 do not have an exact label match will match the wildcard. Thus,</p> 136 140 <pre class="literal-block"> … … 150 154 _bittorrent-tracker._tcp.*.pacbell.net 151 155 </pre> 152 <p>However, section 4.3.3 in <a class="footnote-reference" href="#rfc-1034" id="id 5">[4]</a> specifies that wildcards only156 <p>However, section 4.3.3 in <a class="footnote-reference" href="#rfc-1034" id="id6">[4]</a> specifies that wildcards only 153 157 appear as the first label in a domain name. This restriction was 154 lifted in <a class="footnote-reference" href="#rfc-4592" id="id 6">[6]</a>, but not with semantics applicable to our use158 lifted in <a class="footnote-reference" href="#rfc-4592" id="id7">[7]</a>, but not with semantics applicable to our use 155 159 case. An asterisk not at the beginning of a domain name is not 156 160 treated like a wildcard. Only a lookup for the exact domain name</p> … … 159 163 </pre> 160 164 <p>matches.</p> 161 <p>We propose an alternative that avoids wildcards and has the advantage162 that it allows suborganizations to override the SRV records provided 163 by parent organizations: the peer starts by querying using its 164 fully-qualified domain name returned from the reverse DNS lookup, and 165 if this fails then it queries again after removing the most specific 166 (leftmost) label in the domain name. For example, if no SRV records 167 are returnedwhen querying for</p>165 <p>We propose an alternative that avoids wildcards and allows 166 suborganizations to override SRV records provided by parent 167 organizations: the peer starts by querying using its fully-qualified 168 domain name returned from the reverse DNS lookup, and if this fails 169 then it queries again after removing the most specific (leftmost) 170 label in the domain name. For example, if no SRV records are returned 171 when querying for</p> 168 172 <pre class="literal-block"> 169 173 _bittorrent-tracker._tcp.adsl-69-107-0-14.dsl.pltn13.pacbell.net … … 177 181 _bittorrent-tracker.pltn13.pacbell.net 178 182 </pre> 179 <p>The search removes one domainat a time terminating when one or more183 <p>The search removes one label at a time terminating when one or more 180 184 resource records are found or before querying the root domain or 181 185 top-level domains that are not ccTLDs, e.g., .com, .org, .net. We 182 avoid querying the root or global top-level domains given the low183 likelihood that caches would be defined globally, and thus clients 184 wouldunnecessarily burden the root domain name servers with queries186 avoid querying the root or top-level domains given the low likelihood 187 that caches would be defined globally, and thus clients would 188 unnecessarily burden the root domain name servers with queries 185 189 generating negative results. We considered stopping before querying 186 190 country-level domains, but a country providing public infrastructure … … 197 201 address. This globally-routable address is the host's <em>external IP 198 202 address</em>.</p> 199 <p> When finding a cache, the BitTorrent client must use its host's200 external IP address. A BitTorrent client can obtain its host's 201 external IP either from the <em>external ip</em> key returned from a tracker 202 implementing BEP 24 <a class="footnote-reference" href="#bep-24" id="id7">[3]</a> or from peers using the <em>yourip</em> 203 extension defined for the <em>Extension Protocol</em> proposed in <a class="footnote-reference" href="#bep-10" id="id8">[2]</a>.</p>203 <p>The BitTorrent client must use its host's external IP address. A 204 BitTorrent client MAY obtain its host's external IP either from the 205 <em>external ip</em> key returned from a tracker implementing BEP 24 206 <a class="footnote-reference" href="#bep-24" id="id8">[3]</a> or from peers implementing the <em>yourip</em> extension defined 207 for the <em>Extension Protocol</em> proposed in <a class="footnote-reference" href="#bep-10" id="id9">[2]</a>.</p> 204 208 </div> 205 209 <div class="section" id="example"> 206 210 <h1>Example</h1> 207 <p>In our example, we use dAT&T's PacBell network. AT&T could implement211 <p>In our example, we use AT&T's PacBell network. AT&T could implement 208 212 cache discovery by adding the following lines to the zone file for 209 213 pacbell.net,</p> … … 214 218 <p>Now when a client performs cache discovery, it performs three DNS 215 219 queries removing labels before reaching the domain name pacbell.net, 216 at which point the SRV record would be returned and the client would217 t hen query tracker.pacbell.net to obtaincaches.</p>220 at which point the SRV record is returned and the client queries 221 tracker.pacbell.net to obtain the domain names of caches.</p> 218 222 <p>In Python, the cache tracker's port and domain can be obtained using 219 223 PyDNS using the following code:</p> … … 226 230 names = name.split('.') 227 231 while names and names[0] not in tlds: 228 name = "_bittorrent ._tcp." + ".".join(names)232 name = "_bittorrent-tracker._tcp." + ".".join(names) 229 233 req = DNS.Request( name=name, qtype="SRV", protocol="udp") 230 234 response = req.req() … … 243 247 ;; flags: qr aa rd ra; Ques: 1, Ans: 1, Auth: 2, Addit: 3 244 248 ;; QUESTIONS: 245 ;; _bittorrent ._tcp.pacbell.net, type = SRV, class = IN249 ;; _bittorrent-tracker._tcp.pacbell.net, type = SRV, class = IN 246 250 247 251 ;; ANSWERS: 248 _bittorrent ._tcp.pacbell.net 600 SRV (5, 0, 6969, 'cache.pacbell.net')252 _bittorrent-tracker._tcp.pacbell.net 600 SRV (5, 0, 6969, 'cache.pacbell.net') 249 253 250 254 ;; AUTHORITY RECORDS: … … 272 276 <colgroup><col class="label" /><col /></colgroup> 273 277 <tbody valign="top"> 274 <tr><td class="label"><a class="fn-backref" href="#id 1">[1]</a></td><td>BEP_0003. The BitTorrent Protocol Specification, Cohen275 (<a class="reference external" href="http://www.bittorrent.org/beps/bep_0003.html">http://www.bittorrent.org/beps/bep_0003.html</a>)</td></tr>278 <tr><td class="label"><a class="fn-backref" href="#id2">[1]</a></td><td>BEP_0003. The BitTorrent Protocol Specification, Cohen. 279 <a class="reference external" href="http://www.bittorrent.org/beps/bep_0003.html">http://www.bittorrent.org/beps/bep_0003.html</a></td></tr> 276 280 </tbody> 277 281 </table> … … 279 283 <colgroup><col class="label" /><col /></colgroup> 280 284 <tbody valign="top"> 281 <tr><td class="label"><a class="fn-backref" href="#id 8">[2]</a></td><td>BEP_0010. Extension Protocol. Norberg, Strigeus, Hazel282 (<a class="reference external" href="http://www.bittorrent.org/beps/bep_0010.html">http://www.bittorrent.org/beps/bep_0010.html</a>)</td></tr>285 <tr><td class="label"><a class="fn-backref" href="#id9">[2]</a></td><td>BEP_0010. Extension Protocol. Norberg, Strigeus, Hazel. 286 <a class="reference external" href="http://www.bittorrent.org/beps/bep_0010.html">http://www.bittorrent.org/beps/bep_0010.html</a></td></tr> 283 287 </tbody> 284 288 </table> … … 286 290 <colgroup><col class="label" /><col /></colgroup> 287 291 <tbody valign="top"> 288 <tr><td class="label"><a class="fn-backref" href="#id 7">[3]</a></td><td>BEP_0024. Tracker Returns External IP. Harrison289 (<a class="reference external" href="http://www.bittorrent.org/beps/bep_0024.html">http://www.bittorrent.org/beps/bep_0024.html</a>)</td></tr>292 <tr><td class="label"><a class="fn-backref" href="#id8">[3]</a></td><td>BEP_0024. Tracker Returns External IP. Harrison. 293 <a class="reference external" href="http://www.bittorrent.org/beps/bep_0024.html">http://www.bittorrent.org/beps/bep_0024.html</a></td></tr> 290 294 </tbody> 291 295 </table> … … 293 297 <colgroup><col class="label" /><col /></colgroup> 294 298 <tbody valign="top"> 295 <tr><td class="label">[4]</td><td><em>(<a class="fn-backref" href="#id2">1</a>, <a class="fn-backref" href="#id4">2</a>, <a class="fn-backref" href="#id5">3</a>)</em> <a class="reference external" href="http://www.faqs.org/rfcs/rfc1034.html">RFC-1034</a>. DOMAIN NAMES - CONCEPTS AND FACILITIES. Mockapetris, 296 November 1987. (<a class="reference external" href="http://tools.ietf.org/html/rfc1034">http://tools.ietf.org/html/rfc1034</a>)</td></tr> 299 <tr><td class="label">[4]</td><td><em>(<a class="fn-backref" href="#id3">1</a>, <a class="fn-backref" href="#id5">2</a>, <a class="fn-backref" href="#id6">3</a>)</em> <a class="reference external" href="http://www.faqs.org/rfcs/rfc1034.html">RFC-1034</a>. DOMAIN NAMES - CONCEPTS AND FACILITIES. Mockapetris, 300 November 1987. <a class="reference external" href="http://tools.ietf.org/html/rfc1034">http://tools.ietf.org/html/rfc1034</a></td></tr> 301 </tbody> 302 </table> 303 <table class="docutils footnote" frame="void" id="rfc-2119" rules="none"> 304 <colgroup><col class="label" /><col /></colgroup> 305 <tbody valign="top"> 306 <tr><td class="label"><a class="fn-backref" href="#id1">[5]</a></td><td><a class="reference external" href="http://www.faqs.org/rfcs/rfc2119.html">RFC-2119</a>. <a class="reference external" href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a></td></tr> 297 307 </tbody> 298 308 </table> … … 300 310 <colgroup><col class="label" /><col /></colgroup> 301 311 <tbody valign="top"> 302 <tr><td class="label"><a class="fn-backref" href="#id 3">[5]</a></td><td><a class="reference external" href="http://www.faqs.org/rfcs/rfc2782.html">RFC-2782</a>. A DNS RR for specifying the location of services (DNS312 <tr><td class="label"><a class="fn-backref" href="#id4">[6]</a></td><td><a class="reference external" href="http://www.faqs.org/rfcs/rfc2782.html">RFC-2782</a>. A DNS RR for specifying the location of services (DNS 303 313 SRV). Gulbrandsen, Vixie, Esibov. February 2000. 304 (<a class="reference external" href="http://tools.ietf.org/html/rfc2782">http://tools.ietf.org/html/rfc2782</a>)</td></tr>314 <a class="reference external" href="http://tools.ietf.org/html/rfc2782">http://tools.ietf.org/html/rfc2782</a></td></tr> 305 315 </tbody> 306 316 </table> … … 308 318 <colgroup><col class="label" /><col /></colgroup> 309 319 <tbody valign="top"> 310 <tr><td class="label"><a class="fn-backref" href="#id 6">[6]</a></td><td><a class="reference external" href="http://www.faqs.org/rfcs/rfc4592.html">RFC-4592</a>. The Role of Wildcards in the Domain Name System. Lewis311 (<a class="reference external" href="http://www.faqs.org/rfcs/rfc4592.html">http://www.faqs.org/rfcs/rfc4592.html</a>)</td></tr>320 <tr><td class="label"><a class="fn-backref" href="#id7">[7]</a></td><td><a class="reference external" href="http://www.faqs.org/rfcs/rfc4592.html">RFC-4592</a>. The Role of Wildcards in the Domain Name 321 System. Lewis. <a class="reference external" href="http://www.faqs.org/rfcs/rfc4592.html">http://www.faqs.org/rfcs/rfc4592.html</a></td></tr> 312 322 </tbody> 313 323 </table> -
dotorg/trunk/html/beps/bep_0023.html
r11097 r11107 39 39 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Tracker Returns Compact Peer Lists</td> 40 40 </tr> 41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">110 83</td>41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11094</td> 42 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_0023.rst">2008-05- 13 17:34:56 -0700 (Tue, 13May 2008)</a></td>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_0023.rst">2008-05-20 23:47:15 -0700 (Tue, 20 May 2008)</a></td> 44 44 </tr> 45 45 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison <dave at bittorrent.com></td>