Changeset 10506
- Timestamp:
- 02/02/08 03:04:50 (2 years ago)
- Location:
- dotorg/trunk/html/beps
- Files:
-
- 6 added
- 8 modified
- 1 moved
-
Makefile (added)
-
bep_0000.html (modified) (1 diff)
-
bep_0002.html (modified) (1 diff)
-
bep_0003.html (modified) (4 diffs)
-
bep_0004.html (added)
-
bep_0006.html (added)
-
bep_0006.rst (modified) (1 diff)
-
bep_0007.html (added)
-
bep_0007.rst (modified) (1 diff)
-
bep_0008.html (added)
-
bep_0008.rst (modified) (2 diffs)
-
bep_0009.html (added)
-
bep_0009.rst (modified) (3 diffs)
-
bep_1000.rst (moved) (moved from dotorg/trunk/html/beps/bep_1000_requested_standard_track.rst)
-
makefile (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
dotorg/trunk/html/beps/bep_0000.html
r10492 r10506 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 <!--5 This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new6 BEP, see http://www.bittorrent.org/beps/bep_0001.html for instructions and links7 to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!8 -->9 <head>10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />11 <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />12 <title>BEP 0 -- Index of BitTorrent Enhancement Proposals</title>13 <style type="text/css">14 15 /*16 :Author: David Goodger17 :Contact: goodger@python.org18 :date: $Date: 2006-05-21 22:44:42 +0200 (Sun, 21 May 2006) $19 :version: $Revision: 4564 $20 :copyright: This stylesheet has been placed in the public domain.21 22 Default cascading style sheet for the BEP HTML output of Docutils.23 */24 25 /* "! important" is used here to override other ``margin-top`` and26 ``margin-bottom`` styles that are later in the stylesheet or27 more specific. See http://www.w3.org/TR/CSS1#the-cascade */28 .first {29 margin-top: 0 ! important }30 31 .last, .with-subtitle {32 margin-bottom: 0 ! important }33 34 .hidden {35 display: none }36 37 .navigation {38 width: 100% ;39 background: #99ccff ;40 margin-top: 0px ;41 margin-bottom: 0px }42 43 .navigation .navicon {44 width: 150px ;45 height: 35px }46 47 .navigation .textlinks {48 padding-left: 1em ;49 text-align: left }50 51 .navigation td, .navigation th {52 padding-left: 0em ;53 padding-right: 0em ;54 vertical-align: middle }55 56 .rfc2822 {57 margin-top: 0.5em ;58 margin-left: 0.5em ;59 margin-right: 0.5em ;60 margin-bottom: 0em }61 62 .rfc2822 td {63 text-align: left }64 65 .rfc2822 th.field-name {66 text-align: right ;67 font-family: sans-serif ;68 padding-right: 0.5em ;69 font-weight: bold ;70 margin-bottom: 0em }71 72 a.toc-backref {73 text-decoration: none ;74 color: black }75 76 blockquote.epigraph {77 margin: 2em 5em ; }78 79 body {80 margin: 0px ;81 margin-bottom: 1em ;82 padding: 0px }83 84 dl.docutils dd {85 margin-bottom: 0.5em }86 87 div.section {88 margin-left: 1em ;89 margin-right: 1em ;90 margin-bottom: 1.5em }91 92 div.section div.section {93 margin-left: 0em ;94 margin-right: 0em ;95 margin-top: 1.5em }96 97 div.abstract {98 margin: 2em 5em }99 100 div.abstract p.topic-title {101 font-weight: bold ;102 text-align: center }103 104 div.admonition, div.attention, div.caution, div.danger, div.error,105 div.hint, div.important, div.note, div.tip, div.warning {106 margin: 2em ;107 border: medium outset ;108 padding: 1em }109 110 div.admonition p.admonition-title, div.hint p.admonition-title,111 div.important p.admonition-title, div.note p.admonition-title,112 div.tip p.admonition-title {113 font-weight: bold ;114 font-family: sans-serif }115 116 div.attention p.admonition-title, div.caution p.admonition-title,117 div.danger p.admonition-title, div.error p.admonition-title,118 div.warning p.admonition-title {119 color: red ;120 font-weight: bold ;121 font-family: sans-serif }122 123 /* Uncomment (and remove this text!) to get reduced vertical space in124 compound paragraphs.125 div.compound .compound-first, div.compound .compound-middle {126 margin-bottom: 0.5em }127 128 div.compound .compound-last, div.compound .compound-middle {129 margin-top: 0.5em }130 */131 132 div.dedication {133 margin: 2em 5em ;134 text-align: center ;135 font-style: italic }136 137 div.dedication p.topic-title {138 font-weight: bold ;139 font-style: normal }140 141 div.figure {142 margin-left: 2em ;143 margin-right: 2em }144 145 div.footer, div.header {146 clear: both;147 font-size: smaller }148 149 div.footer {150 margin-left: 1em ;151 margin-right: 1em }152 153 div.line-block {154 display: block ;155 margin-top: 1em ;156 margin-bottom: 1em }157 158 div.line-block div.line-block {159 margin-top: 0 ;160 margin-bottom: 0 ;161 margin-left: 1.5em }162 163 div.sidebar {164 margin-left: 1em ;165 border: medium outset ;166 padding: 1em ;167 background-color: #ffffee ;168 width: 40% ;169 float: right ;170 clear: right }171 172 div.sidebar p.rubric {173 font-family: sans-serif ;174 font-size: medium }175 176 div.system-messages {177 margin: 5em }178 179 div.system-messages h1 {180 color: red }181 182 div.system-message {183 border: medium outset ;184 padding: 1em }185 186 div.system-message p.system-message-title {187 color: red ;188 font-weight: bold }189 190 div.topic {191 margin: 2em }192 193 h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,194 h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {195 margin-top: 0.4em }196 197 h1 {198 font-family: sans-serif ;199 font-size: large }200 201 h2 {202 font-family: sans-serif ;203 font-size: medium }204 205 h3 {206 font-family: sans-serif ;207 font-size: small }208 209 h4 {210 font-family: sans-serif ;211 font-style: italic ;212 font-size: small }213 214 h5 {215 font-family: sans-serif;216 font-size: x-small }217 218 h6 {219 font-family: sans-serif;220 font-style: italic ;221 font-size: x-small }222 223 hr.docutils {224 width: 75% }225 226 img.align-left {227 clear: left }228 229 img.align-right {230 clear: right }231 232 img.borderless {233 border: 0 }234 235 ol.simple, ul.simple {236 margin-bottom: 1em }237 238 ol.arabic {239 list-style: decimal }240 241 ol.loweralpha {242 list-style: lower-alpha }243 244 ol.upperalpha {245 list-style: upper-alpha }246 247 ol.lowerroman {248 list-style: lower-roman }249 250 ol.upperroman {251 list-style: upper-roman }252 253 p.attribution {254 text-align: right ;255 margin-left: 50% }256 257 p.caption {258 font-style: italic }259 260 p.credits {261 font-style: italic ;262 font-size: smaller }263 264 p.label {265 white-space: nowrap }266 267 p.rubric {268 font-weight: bold ;269 font-size: larger ;270 color: maroon ;271 text-align: center }272 273 p.sidebar-title {274 font-family: sans-serif ;275 font-weight: bold ;276 font-size: larger }277 278 p.sidebar-subtitle {279 font-family: sans-serif ;280 font-weight: bold }281 282 p.topic-title {283 font-family: sans-serif ;284 font-weight: bold }285 286 pre.address {287 margin-bottom: 0 ;288 margin-top: 0 ;289 font-family: serif ;290 font-size: 100% }291 292 pre.literal-block, pre.doctest-block {293 margin-left: 2em ;294 margin-right: 2em }295 296 span.classifier {297 font-family: sans-serif ;298 font-style: oblique }299 300 span.classifier-delimiter {301 font-family: sans-serif ;302 font-weight: bold }303 304 span.interpreted {305 font-family: sans-serif }306 307 span.option {308 white-space: nowrap }309 310 span.option-argument {311 font-style: italic }312 313 span.pre {314 white-space: pre }315 316 span.problematic {317 color: red }318 319 span.section-subtitle {320 /* font-size relative to parent (h1..h6 element) */321 font-size: 80% }322 323 table.citation {324 border-left: solid 1px gray;325 margin-left: 1px }326 327 table.docinfo {328 margin: 2em 4em }329 330 table.docutils {331 margin-top: 0.5em ;332 margin-bottom: 0.5em }333 334 table.footnote {335 border-left: solid 1px black;336 margin-left: 1px }337 338 table.docutils td, table.docutils th,339 table.docinfo td, table.docinfo th {340 padding-left: 0.5em ;341 padding-right: 0.5em ;342 vertical-align: top }343 344 td.num {345 text-align: right }346 347 th.field-name {348 font-weight: bold ;349 text-align: left ;350 white-space: nowrap ;351 padding-left: 0 }352 353 h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,354 h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {355 font-size: 100% }356 357 ul.auto-toc {358 list-style-type: none }359 360 </style>361 </head>362 <body bgcolor="white">363 <table class="navigation" cellpadding="0" cellspacing="0"364 width="100%" border="0">365 <tr><td class="navicon" width="150" height="35">366 <!--<a href="http://www.python.org/" title="Python Home Page">367 <img src="http://www.python.org/pics/PyBanner015.gif" alt="[Python]"368 border="0" width="150" height="35" /></a></td>369 <td class="textlinks" align="left">370 [<b><a href="http://www.bittorrent.org/">bittorrent.org</a></b>]-->371 [<b><a href="http://www.bittorrent.org/beps/">BEP Index</a></b>]372 [<b><a href="./bep-0000.txt">BEP Source</a></b>]373 </td></tr></table>374 <div class="document">375 <table class="rfc2822 docutils field-list" frame="void" rules="none">376 <col class="field-name" />377 <col class="field-body" />378 <tbody valign="top">379 <tr class="field"><th class="field-name">BEP:</th><td class="field-body">0</td>380 </tr>381 <tr class="field"><th class="field-name">Title:</th><td class="field-body">Index of BitTorrent Enhancement Proposals</td>382 </tr>383 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1</td>384 </tr>385 <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_0000.rst">11-Jan-2008</a></td>386 </tr>387 <tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison</td>388 </tr>389 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Active</td>390 </tr>391 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Process</td>392 </tr>393 <tr class="field"><th class="field-name">Created:</th><td class="field-body">10-Jan-2008</td>394 </tr>395 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body"></td>396 </tr>397 </tbody>398 </table>399 <hr />400 <div class="contents topic" id="contents">401 <p class="topic-title first">Contents</p>402 <ul class="simple">403 <li><a class="reference internal" href="#id13" id="id34">References</a></li>404 </ul>405 </div>406 <p>The BitTorrent Community Forum coordinates the development of the407 BitTorrent protocol suite and its reference implementation. It is the408 wish of Bram Cohen that the BitTorrent mainline python implementation409 remain open source and that the protocol development process be410 modelled after the Python Enhancement Proposal~(PEP) process.</p>411 <p>This document indexes all BitTorrent Enhancement Proposals (BEPs).412 When a new proposal is submitted, one of the BitTorrent.org editors413 assigns a BEP number and updates this index appropriately. The process414 is modelled after the PEP process used in the python community [#python]. Each415 document has a number that never changes and the history of document is416 maintained in subversion [#svn].</p>417 <table border="1" class="docutils">418 <colgroup>419 <col width="11%" />420 <col width="89%" />421 </colgroup>422 <thead valign="bottom">423 <tr><th class="head">Num</th>424 <th class="head">Title</th>425 </tr>426 </thead>427 <tbody valign="top">428 <tr><td><a class="reference external" href="bep_0000.html">0</a> <a class="footnote-reference" href="#id14" id="id15">[14]</a></td>429 <td>Index of BitTorrent Enhancement Proporsals</td>430 </tr>431 <tr><td><a class="reference external" href="bep_0001.html">1</a> <a class="footnote-reference" href="#id16" id="id17">[15]</a></td>432 <td>The BEP Process</td>433 </tr>434 <tr><td><a class="reference external" href="bep_0002.html">2</a> <a class="footnote-reference" href="#id18" id="id19">[16]</a></td>435 <td>The BitTorrent Protocol Specification</td>436 </tr>437 <tr><td><a class="reference external" href="bep_0003.html">3</a> <a class="footnote-reference" href="#id20" id="id21">[17]</a></td>438 <td>Known Number Allocations</td>439 </tr>440 <tr><td><a class="reference external" href="bep_0004.html">4</a> <a class="footnote-reference" href="#id22" id="id23">[18]</a></td>441 <td>DHT Protocol</td>442 </tr>443 <tr><td><a class="reference external" href="bep_0005.html">5</a> <a class="footnote-reference" href="#id24" id="id25">[19]</a></td>444 <td>Fast Extension</td>445 </tr>446 <tr><td><a class="reference external" href="bep_0006.html">6</a> <a class="footnote-reference" href="#id26" id="id27">[20]</a></td>447 <td>IPv6 Tracker Extension</td>448 </tr>449 <tr><td><a class="reference external" href="bep_0007.html">7</a> <a class="footnote-reference" href="#id28" id="id29">[21]</a></td>450 <td>Tracker Peer Obfuscation</td>451 </tr>452 <tr><td><a class="reference external" href="bep_0008.html">8</a> <a class="footnote-reference" href="#id30" id="id31">[22]</a></td>453 <td>Metadata Extension</td>454 </tr>455 <tr><td><a class="reference external" href="bep_0009.html">9</a> <a class="footnote-reference" href="#id32" id="id33">[23]</a></td>456 <td>Extension Protocol</td>457 </tr>458 </tbody>459 </table>460 <table class="docutils footnote" frame="void" id="python" rules="none">461 <colgroup><col class="label" /><col /></colgroup>462 <tbody valign="top">463 <tr><td class="label">[12]</td><td><a class="reference external" href="http://www.python.org/dev/peps/">http://www.python.org/dev/peps/</a></td></tr>464 </tbody>465 </table>466 <table class="docutils footnote" frame="void" id="svn" rules="none">467 <colgroup><col class="label" /><col /></colgroup>468 <tbody valign="top">469 <tr><td class="label">[13]</td><td><a class="reference external" href="http://svn.bittorrent.org">http://svn.bittorrent.org</a></td></tr>470 </tbody>471 </table>472 <div class="section" id="id13">473 <h1><a class="toc-backref" href="#id34">References</a></h1>474 <table class="docutils footnote" frame="void" id="id14" rules="none">475 <colgroup><col class="label" /><col /></colgroup>476 <tbody valign="top">477 <tr><td class="label"><a class="fn-backref" href="#id15">[14]</a></td><td><a class="reference external" href="bep_0000.html">bep_0000.html</a></td></tr>478 </tbody>479 </table>480 <table class="docutils footnote" frame="void" id="id16" rules="none">481 <colgroup><col class="label" /><col /></colgroup>482 <tbody valign="top">483 <tr><td class="label"><a class="fn-backref" href="#id17">[15]</a></td><td><a class="reference external" href="bep_0001.html">bep_0001.html</a></td></tr>484 </tbody>485 </table>486 <table class="docutils footnote" frame="void" id="id18" rules="none">487 <colgroup><col class="label" /><col /></colgroup>488 <tbody valign="top">489 <tr><td class="label"><a class="fn-backref" href="#id19">[16]</a></td><td><a class="reference external" href="bep_0002.html">bep_0002.html</a></td></tr>490 </tbody>491 </table>492 <table class="docutils footnote" frame="void" id="id20" rules="none">493 <colgroup><col class="label" /><col /></colgroup>494 <tbody valign="top">495 <tr><td class="label"><a class="fn-backref" href="#id21">[17]</a></td><td><a class="reference external" href="bep_0003.html">bep_0003.html</a></td></tr>496 </tbody>497 </table>498 <table class="docutils footnote" frame="void" id="id22" rules="none">499 <colgroup><col class="label" /><col /></colgroup>500 <tbody valign="top">501 <tr><td class="label"><a class="fn-backref" href="#id23">[18]</a></td><td><a class="reference external" href="bep_0004.html">bep_0004.html</a></td></tr>502 </tbody>503 </table>504 <table class="docutils footnote" frame="void" id="id24" rules="none">505 <colgroup><col class="label" /><col /></colgroup>506 <tbody valign="top">507 <tr><td class="label"><a class="fn-backref" href="#id25">[19]</a></td><td><a class="reference external" href="bep_0005.html">bep_0005.html</a></td></tr>508 </tbody>509 </table>510 <table class="docutils footnote" frame="void" id="id26" rules="none">511 <colgroup><col class="label" /><col /></colgroup>512 <tbody valign="top">513 <tr><td class="label"><a class="fn-backref" href="#id27">[20]</a></td><td><a class="reference external" href="bep_0006.html">bep_0006.html</a></td></tr>514 </tbody>515 </table>516 <table class="docutils footnote" frame="void" id="id28" rules="none">517 <colgroup><col class="label" /><col /></colgroup>518 <tbody valign="top">519 <tr><td class="label"><a class="fn-backref" href="#id29">[21]</a></td><td><a class="reference external" href="bep_0007.html">bep_0007.html</a></td></tr>520 </tbody>521 </table>522 <table class="docutils footnote" frame="void" id="id30" rules="none">523 <colgroup><col class="label" /><col /></colgroup>524 <tbody valign="top">525 <tr><td class="label"><a class="fn-backref" href="#id31">[22]</a></td><td><a class="reference external" href="bep_0008.html">bep_0008.html</a></td></tr>526 </tbody>527 </table>528 <table class="docutils footnote" frame="void" id="id32" rules="none">529 <colgroup><col class="label" /><col /></colgroup>530 <tbody valign="top">531 <tr><td class="label"><a class="fn-backref" href="#id33">[23]</a></td><td><a class="reference external" href="bep_0009.html">bep_0009.html</a></td></tr>532 </tbody>533 </table>534 </div>535 536 </div>537 </body>538 </html> -
dotorg/trunk/html/beps/bep_0002.html
r10505 r10506 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/screen.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">2</td> 37 </tr> 38 <tr class="field"><th class="field-name">Title:</th><td class="field-body">The BitTorrent Protocol Specification</td> 39 </tr> 40 <tr class="field"><th class="field-name">Version:</th><td class="field-body">2</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_0002.rst">11-Jan-2008</a></td> 43 </tr> 44 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Bram Cohen <bram at bittorrent.com></td> 45 </tr> 46 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td> 47 </tr> 48 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standard</td> 49 </tr> 50 <tr class="field"><th class="field-name">Created:</th><td class="field-body">10-Jan-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="#a-bittorrent-file-distribution-consists-of-these-entities" id="id2">A BitTorrent file distribution consists of these entities:</a></li> 61 <li><a class="reference internal" href="#to-start-serving-a-host-goes-through-the-following-steps" id="id3">To start serving, a host goes through the following steps:</a></li> 62 <li><a class="reference internal" href="#to-start-downloading-a-user-does-the-following" id="id4">To start downloading, a user does the following:</a></li> 63 <li><a class="reference internal" href="#the-connectivity-is-as-follows" id="id5">The connectivity is as follows:</a></li> 64 <li><a class="reference internal" href="#metainfo-files-are-bencoded-dictionaries-with-the-following-keys" id="id6">Metainfo files are bencoded dictionaries with the following keys:</a></li> 65 <li><a class="reference internal" href="#tracker-get-requests-have-the-following-keys" id="id7">Tracker GET requests have the following keys:</a></li> 66 <li><a class="reference internal" href="#all-non-keepalive-messages-start-with-a-single-byte-which-gives-their-type" id="id8">All non-keepalive messages start with a single byte which gives their type.</a></li> 67 <li><a class="reference internal" href="#the-possible-values-are" id="id9">The possible values are:</a></li> 68 </ul> 69 </div> 70 <p>BitTorrent is a protocol for distributing files. It identifies content 71 by URL and is designed to integrate seamlessly with the web. Its 72 advantage over plain HTTP is that when multiple downloads of the same 73 file happen concurrently, the downloaders upload to each other, making 74 it possible for the file source to support very large numbers of 75 downloaders with only a modest increase in its load.</p> 76 <div class="section" id="a-bittorrent-file-distribution-consists-of-these-entities"> 77 <h1>A BitTorrent file distribution consists of these entities:</h1> 78 <ul class="simple"> 79 <li>An ordinary web server</li> 80 <li>A static 'metainfo' file</li> 81 <li>A BitTorrent tracker</li> 82 <li>An 'original' downloader</li> 83 <li>The end user web browsers</li> 84 <li>The end user downloaders</li> 85 </ul> 86 <p>There are ideally many end users for a single file.</p> 87 </div> 88 <div class="section" id="to-start-serving-a-host-goes-through-the-following-steps"> 89 <h1>To start serving, a host goes through the following steps:</h1> 90 <ol class="arabic simple"> 91 <li>Start running a tracker (or, more likely, have one running already).</li> 92 <li>Start running an ordinary web server, such as apache, or have one already.</li> 93 <li>Associate the extension .torrent with mimetype application/x-bittorrent on their web server (or have done so already).</li> 94 <li>Generate a metainfo (.torrent) file using the complete file to be served and the URL of the tracker.</li> 95 <li>Put the metainfo file on the web server.</li> 96 <li>Link to the metainfo (.torrent) file from some other web page.</li> 97 <li>Start a downloader which already has the complete file (the 'origin').</li> 98 </ol> 99 </div> 100 <div class="section" id="to-start-downloading-a-user-does-the-following"> 101 <h1>To start downloading, a user does the following:</h1> 102 <ol class="arabic simple"> 103 <li>Install BitTorrent (or have done so already).</li> 104 <li>Surf the web.</li> 105 <li>Click on a link to a .torrent file.</li> 106 <li>Select where to save the file locally, or select a partial download to resume.</li> 107 <li>Wait for download to complete.</li> 108 <li>Tell downloader to exit (it keeps uploading until this happens).</li> 109 </ol> 110 </div> 111 <div class="section" id="the-connectivity-is-as-follows"> 112 <h1>The connectivity is as follows:</h1> 113 <ul class="simple"> 114 <li>Strings are length-prefixed base ten followed by a colon and the string. For example <code>4:spam</code> corresponds to 'spam'.</li> 115 <li>Integers are represented by an 'i' followed by the number in base 10 116 followed by an 'e'. For example <code>i3e</code> corresponds to 3 and 117 <code>i-3e </code>corresponds to -3. Integers have no size 118 limitation. <code>i-0e</code> is invalid. All encodings with a leading 119 zero, such as <code>i03e</code>, are invalid, other than 120 <code>i0e</code>, which of course corresponds to 0.</li> 121 <li>Lists are encoded as an 'l' followed by their elements (also 122 bencoded) followed by an 'e'. For example <code>l4:spam4:eggse</code> 123 corresponds to ['spam', 'eggs'].</li> 124 <li>Dictionaries are encoded as a 'd' followed by a list of alternating 125 keys and their corresponding values followed by an 'e'. For example, 126 <code>d3:cow3:moo4:spam4:eggse</code> corresponds to {'cow': 'moo', 127 'spam': 'eggs'} and <code>d4:spaml1:a1:bee</code> corresponds to 128 {'spam': ['a', 'b']}. Keys must be strings and appear in sorted order 129 (sorted as raw strings, not alphanumerics).</li> 130 </ul> 131 </div> 132 <div class="section" id="metainfo-files-are-bencoded-dictionaries-with-the-following-keys"> 133 <h1>Metainfo files are bencoded dictionaries with the following keys:</h1> 134 <dl class="docutils"> 135 <dt>announce</dt> 136 <dd>The URL of the tracker.</dd> 137 <dt>info</dt> 138 <dd><p class="first">This maps to a dictionary, with keys described below.</p> 139 <p>The <code>name</code> key maps to a string which is the suggested name 140 to save the file (or directory) as. It is purely advisory.</p> 141 <p><code>piece length</code> maps to the number of bytes in each piece 142 the file is split into. For the purposes of transfer, files are 143 split into fixed-size pieces which are all the same length except for 144 possibly the last one which may be truncated. <code>piece 145 length</code> is almost always a power of two, most commonly 2 18 = 146 256 K (BitTorrent prior to version 3.2 uses 2 20 = 1 M as 147 default).</p> 148 <p><code>pieces</code> maps to a string whose length is a multiple of 149 20. It is to be subdivided into strings of length 20, each of which is 150 the SHA1 hash of the piece at the corresponding index.</p> 151 <p>There is also a key <code>length</code> or a key <code>files</code>, 152 but not both or neither. If <code>length</code> is present then the 153 download represents a single file, otherwise it represents a set of 154 files which go in a directory structure.</p> 155 <p>In the single file case, <code>length</code> maps to the length of 156 the file in bytes.</p> 157 <p>For the purposes of the other keys, the multi-file case is treated as 158 only having a single file by concatenating the files in the order they 159 appear in the files list. The files list is the value 160 <code>files</code> maps to, and is a list of dictionaries containing 161 the following keys:</p> 162 <p><code>length</code> - The length of the file, in bytes.</p> 163 <p><code>path</code> - A list of strings corresponding to subdirectory 164 names, the last of which is the actual file name (a zero length list 165 is an error case).</p> 166 <p class="last">In the single file case, the name key is the name of a file, in the 167 muliple file case, it's the name of a directory.</p> 168 </dd> 169 </dl> 170 </div> 171 <div class="section" id="tracker-get-requests-have-the-following-keys"> 172 <h1>Tracker GET requests have the following keys:</h1> 173 <dl class="docutils"> 174 <dt>info_hash</dt> 175 <dd>The 20 byte sha1 hash of the bencoded form of the info value from the 176 metainfo file. Note that this is a substring of the metainfo 177 file. This value will almost certainly have to be escaped.</dd> 178 <dt>peer_id</dt> 179 <dd>A string of length 20 which this downloader uses as its id. Each 180 downloader generates its own id at random at the start of a new 181 download. This value will also almost certainly have to be escaped.</dd> 182 <dt>ip</dt> 183 <dd>An optional parameter giving the IP (or dns name) which this peer is 184 at. Generally used for the origin if it's on the same machine as the 185 tracker.</dd> 186 <dt>port</dt> 187 <dd>The port number this peer is listening on. Common behavior is for a 188 downloader to try to listen on port 6881 and if that port is taken try 189 6882, then 6883, etc. and give up after 6889.</dd> 190 <dt>uploaded</dt> 191 <dd>The total amount uploaded so far, encoded in base ten ascii.</dd> 192 <dt>downloaded</dt> 193 <dd>The total amount downloaded so far, encoded in base ten ascii.</dd> 194 <dt>left</dt> 195 <dd>The number of bytes this peer still has to download, encoded in 196 base ten ascii. Note that this can't be computed from downloaded and 197 the file length since it might be a resume, and there's a chance that 198 some of the downloaded data failed an integrity check and had to be 199 re-downloaded.</dd> 200 <dt>event</dt> 201 <dd>This is an optional key which maps to <code>started</code>, 202 <code>completed</code>, or <code>stopped</code> (or 203 <code>empty</code>, which is the same as not being present). If not 204 present, this is one of the announcements done at regular 205 intervals. An announcement using <code>started</code> is sent when a 206 download first begins, and one using <code>completed</code> is sent 207 when the download is complete. No <code>completed</code> is sent if 208 the file was complete when started. Downloaders send an announcement 209 using <code>stopped</code> when they cease downloading.</dd> 210 </dl> 211 <p>Tracker responses are bencoded dictionaries. If a tracker response 212 has a key <code>failure reason</code>, then that maps to a human 213 readable string which explains why the query failed, and no other keys 214 are required. Otherwise, it must have two keys: <code>interval</code>, 215 which maps to the number of seconds the downloader should wait between 216 regular rerequests, and <code>peers</code>. <code>peers</code> maps to 217 a list of dictionaries corresponding to <code>peers</code>, each of 218 which contains the keys <code>peer id</code>, <code>ip</code>, and 219 <code>port</code>, which map to the peer's self-selected ID, IP 220 address or dns name as a string, and port number, respectively. Note 221 that downloaders may rerequest on nonscheduled times if an event 222 happens or they need more peers.</p> 223 <p>If you want to make any extensions to metainfo files or tracker 224 queries, please coordinate with Bram Cohen to make sure that all 225 extensions are done compatibly.</p> 226 <p>BitTorrent's peer protocol operates over TCP. It performs efficiently 227 without setting any socket options.</p> 228 <p>Peer connections are symmetrical. Messages sent in both directions 229 look the same, and data can flow in either direction.</p> 230 <p>The peer protocol refers to pieces of the file by index as 231 described in the metainfo file, starting at zero. When a peer finishes 232 downloading a piece and checks that the hash matches, it announces 233 that it has that piece to all of its peers.</p> 234 <p>Connections contain two bits of state on either end: choked or not, 235 and interested or not. Choking is a notification that no data will be 236 sent until unchoking happens. The reasoning and common techniques 237 behind choking are explained later in this document.</p> 238 <p>Data transfer takes place whenever one side is interested and the 239 other side is not choking. Interest state must be kept up to date at 240 all times - whenever a downloader doesn't have something they 241 currently would ask a peer for in unchoked, they must express lack of 242 interest, despite being choked. Implementing this properly is tricky, 243 but makes it possible for downloaders to know which peers will start 244 downloading immediately if unchoked.</p> 245 <p>Connections start out choked and not interested.</p> 246 <p>When data is being transferred, downloaders should keep several 247 piece requests queued up at once in order to get good TCP performance 248 (this is called 'pipelining'.) On the other side, requests which can't 249 be written out to the TCP buffer immediately should be queued up in 250 memory rather than kept in an application-level network buffer, so 251 they can all be thrown out when a choke happens.</p> 252 <p>The peer wire protocol consists of a handshake followed by a 253 never-ending stream of length-prefixed messages. The handshake starts 254 with character ninteen (decimal) followed by the string 'BitTorrent 255 protocol'. The leading character is a length prefix, put there in the 256 hope that other new protocols may do the same and thus be trivially 257 distinguishable from each other.</p> 258 <p>All later integers sent in the protocol are encoded as four bytes 259 big-endian.</p> 260 <p>After the fixed headers come eight reserved bytes, which are all 261 zero in all current implementations. If you wish to extend the 262 protocol using these bytes, please coordinate with Bram Cohen to make 263 sure all extensions are done compatibly.</p> 264 <p>Next comes the 20 byte sha1 hash of the bencoded form of the info 265 value from the metainfo file. (This is the same value which is 266 announced as <code>info_hash</code> to the tracker, only here it's raw 267 instead of quoted here). If both sides don't send the same value, they 268 sever the connection. The one possible exception is if a downloader 269 wants to do multiple downloads over a single port, they may wait for 270 incoming connections to give a download hash first, and respond with 271 the same one if it's in their list.</p> 272 <p>After the download hash comes the 20-byte peer id which is reported 273 in tracker requests and contained in peer lists in tracker 274 responses. If the receiving side's peer id doesn't match the one the 275 initiating side expects, it severs the connection.</p> 276 <p>That's it for handshaking, next comes an alternating stream of 277 length prefixes and messages. Messages of length zero are keepalives, 278 and ignored. Keepalives are generally sent once every two minutes, but 279 note that timeouts can be done much more quickly when data is 280 expected.</p> 281 </div> 282 <div class="section" id="all-non-keepalive-messages-start-with-a-single-byte-which-gives-their-type"> 283 <h1>All non-keepalive messages start with a single byte which gives their type.</h1> 284 </div> 285 <div class="section" id="the-possible-values-are"> 286 <h1>The possible values are:</h1> 287 <ul class="simple"> 288 <li>0 - choke</li> 289 <li>1 - unchoke</li> 290 <li>2 - interested</li> 291 <li>3 - not interested</li> 292 <li>4 - have</li> 293 <li>5 - bitfield</li> 294 <li>6 - request</li> 295 <li>7 - piece</li> 296 <li>8 - cancel</li> 297 </ul> 298 <p>'choke', 'unchoke', 'interested', and 'not interested' have no payload.</p> 299 <p>'bitfield' is only ever sent as the first message. Its payload is a 300 bitfield with each index that downloader has sent set to one and the 301 rest set to zero. Downloaders which don't have anything yet may skip 302 the 'bitfield' message. The first byte of the bitfield corresponds to 303 indices 0 - 7 from high bit to low bit, respectively. The next one 304 8-15, etc. Spare bits at the end are set to zero.</p> 305 <p>The 'have' message's payload is a single number, the index which 306 that downloader just completed and checked the hash of.</p> 307 <p>'request' messages contain an index, begin, and length. The last 308 two are byte offsets. Length is generally a power of two unless it 309 gets truncated by the end of the file. All current implementations use 310 2 15 , and close connections which request an amount greater than 2 311 17.</p> 312 <p>'cancel' messages have the same payload as request messages. They 313 are generally only sent towards the end of a download, during what's 314 called 'endgame mode'. When a download is almost complete, there's a 315 tendency for the last few pieces to all be downloaded off a single 316 hosed modem line, taking a very long time. To make sure the last few 317 pieces come in quickly, once requests for all pieces a given 318 downloader doesn't have yet are currently pending, it sends requests 319 for everything to everyone it's downloading from. To keep this from 320 becoming horribly inefficient, it sends cancels to everyone else every 321 time a piece arrives.</p> 322 <p>'piece' messages contain an index, begin, and piece. Note that they 323 are correlated with request messages implicitly. It's possible for an 324 unexpected piece to arrive if choke and unchoke messages are sent in 325 quick succession and/or transfer is going very slowly.</p> 326 <p>Downloaders generally download pieces in random order, which does a 327 reasonably good job of keeping them from having a strict subset or 328 superset of the pieces of any of their peers.</p> 329 <p>Choking is done for several reasons. TCP congestion control behaves 330 very poorly when sending over many connections at once. Also, choking 331 lets each peer use a tit-for-tat-ish algorithm to ensure that they get 332 a consistent download rate.</p> 333 <p>The choking algorithm described below is the currently deployed 334 one. It is very important that all new algorithms work well both in a 335 network consisting entirely of themselves and in a network consisting 336 mostly of this one.</p> 337 <p>There are several criteria a good choking algorithm should meet. It 338 should cap the number of simultaneous uploads for good TCP 339 performance. It should avoid choking and unchoking quickly, known as 340 'fibrillation'. It should reciprocate to peers who let it 341 download. Finally, it should try out unused connections once in a 342 while to find out if they might be better than the currently used 343 ones, known as optimistic unchoking.</p> 344 <p>The currently deployed choking algorithm avoids fibrillation by 345 only changing who's choked once every ten seconds. It does 346 reciprocation and number of uploads capping by unchoking the four 347 peers which it has the best download rates from and are 348 interested. Peers which have a better upload rate but aren't 349 interested get unchoked and if they become interested the worst 350 uploader gets choked. If a downloader has a complete file, it uses its 351 upload rate rather than its download rate to decide who to 352 unchoke.</p> 353 <p>For optimistic unchoking, at any one time there is a single peer 354 which is unchoked regardless of it's upload rate (if interested, it 355 counts as one of the four allowed downloaders.) Which peer is 356 optimistically unchoked rotates every 30 seconds. To give them a 357 decent chance of getting a complete piece to upload, new connections 358 are three times as likely to start as the current optimistic unchoke 359 as anywhere else in the rotation.</p> 360 </div> 361 362 363 </div> 364 <div id="footer"> 365 <hr/> 366 <p>Copyright 2006 BitTorrent.org</p> 367 </div> 368 369 </div> 370 </body> 371 </html> -
dotorg/trunk/html/beps/bep_0003.html
r10492 r10506 2 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 4 <!--5 This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new6 BEP, see http://www.bittorrent.org/beps/bep_0001.html for instructions and links7 to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!8 -->9 4 <head> 10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 11 <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" /> 12 <title>BEP 3 -- Assigned Numbers</title> 13 <style type="text/css"> 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/screen.css" type="text/css" /> 9 </head> 10 <body> 11 <div class="document"> 14 12 15 /* 16 :Author: David Goodger 17 :Contact: goodger@python.org 18 :date: $Date: 2006-05-21 22:44:42 +0200 (Sun, 21 May 2006) $ 19 :version: $Revision: 4564 $ 20 :copyright: This stylesheet has been placed in the public domain. 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"> 21 29 22 Default cascading style sheet for the BEP HTML output of Docutils.23 */24 30 25 /* "! important" is used here to override other ``margin-top`` and26 ``margin-bottom`` styles that are later in the stylesheet or27 more specific. See http://www.w3.org/TR/CSS1#the-cascade */28 .first {29 margin-top: 0 ! important }30 31 31 .last, .with-subtitle {32 margin-bottom: 0 ! important }33 34 .hidden {35 display: none }36 37 .navigation {38 width: 100% ;39 background: #99ccff ;40 margin-top: 0px ;41 margin-bottom: 0px }42 43 .navigation .navicon {44 width: 150px ;45 height: 35px }46 47 .navigation .textlinks {48 padding-left: 1em ;49 text-align: left }50 51 .navigation td, .navigation th {52 padding-left: 0em ;53 padding-right: 0em ;54 vertical-align: middle }55 56 .rfc2822 {57 margin-top: 0.5em ;58 margin-left: 0.5em ;59 margin-right: 0.5em ;60 margin-bottom: 0em }61 62 .rfc2822 td {63 text-align: left }64 65 .rfc2822 th.field-name {66 text-align: right ;67 font-family: sans-serif ;68 padding-right: 0.5em ;69 font-weight: bold ;70 margin-bottom: 0em }71 72 a.toc-backref {73 text-decoration: none ;74 color: black }75 76 blockquote.epigraph {77 margin: 2em 5em ; }78 79 body {80 margin: 0px ;81 margin-bottom: 1em ;82 padding: 0px }83 84 dl.docutils dd {85 margin-bottom: 0.5em }86 87 div.section {88 margin-left: 1em ;89 margin-right: 1em ;90 margin-bottom: 1.5em }91 92 div.section div.section {93 margin-left: 0em ;94 margin-right: 0em ;95 margin-top: 1.5em }96 97 div.abstract {98 margin: 2em 5em }99 100 div.abstract p.topic-title {101 font-weight: bold ;102 text-align: center }103 104 div.admonition, div.attention, div.caution, div.danger, div.error,105 div.hint, div.important, div.note, div.tip, div.warning {106 margin: 2em ;107 border: medium outset ;108 padding: 1em }109 110 div.admonition p.admonition-title, div.hint p.admonition-title,111 div.important p.admonition-title, div.note p.admonition-title,112 div.tip p.admonition-title {113 font-weight: bold ;114 font-family: sans-serif }115 116 div.attention p.admonition-title, div.caution p.admonition-title,117 div.danger p.admonition-title, div.error p.admonition-title,118 div.warning p.admonition-title {119 color: red ;120 font-weight: bold ;121 font-family: sans-serif }122 123 /* Uncomment (and remove this text!) to get reduced vertical space in124 compound paragraphs.125 div.compound .compound-first, div.compound .compound-middle {126 margin-bottom: 0.5em }127 128 div.compound .compound-last, div.compound .compound-middle {129 margin-top: 0.5em }130 */131 132 div.dedication {133 margin: 2em 5em ;134 text-align: center ;135 font-style: italic }136 137 div.dedication p.topic-title {138 font-weight: bold ;139 font-style: normal }140 141 div.figure {142 margin-left: 2em ;143 margin-right: 2em }144 145 div.footer, div.header {146 clear: both;147 font-size: smaller }148 149 div.footer {150 margin-left: 1em ;151 margin-right: 1em }152 153 div.line-block {154 display: block ;155 margin-top: 1em ;156 margin-bottom: 1em }157 158 div.line-block div.line-block {159 margin-top: 0 ;160 margin-bottom: 0 ;161 margin-left: 1.5em }162 163 div.sidebar {164 margin-left: 1em ;165 border: medium outset ;166 padding: 1em ;167 background-color: #ffffee ;168 width: 40% ;169 float: right ;170 clear: right }171 172 div.sidebar p.rubric {173 font-family: sans-serif ;174 font-size: medium }175 176 div.system-messages {177 margin: 5em }178 179 div.system-messages h1 {180 color: red }181 182 div.system-message {183 border: medium outset ;184 padding: 1em }185 186 div.system-message p.system-message-title {187 color: red ;188 font-weight: bold }189 190 div.topic {191 margin: 2em }192 193 h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,194 h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {195 margin-top: 0.4em }196 197 h1 {198 font-family: sans-serif ;199 font-size: large }200 201 h2 {202 font-family: sans-serif ;203 font-size: medium }204 205 h3 {206 font-family: sans-serif ;207 font-size: small }208 209 h4 {210 font-family: sans-serif ;211 font-style: italic ;212 font-size: small }213 214 h5 {215 font-family: sans-serif;216 font-size: x-small }217 218 h6 {219 font-family: sans-serif;220 font-style: italic ;221 font-size: x-small }222 223 hr.docutils {224 width: 75% }225 226 img.align-left {227 clear: left }228 229 img.align-right {230 clear: right }231 232 img.borderless {233 border: 0 }234 235 ol.simple, ul.simple {236 margin-bottom: 1em }237 238 ol.arabic {239 list-style: decimal }240 241 ol.loweralpha {242 list-style: lower-alpha }243 244 ol.upperalpha {245 list-style: upper-alpha }246 247 ol.lowerroman {248 list-style: lower-roman }249 250 ol.upperroman {251 list-style: upper-roman }252 253 p.attribution {254 text-align: right ;255 margin-left: 50% }256 257 p.caption {258 font-style: italic }259 260 p.credits {261 font-style: italic ;262 font-size: smaller }263 264 p.label {265 white-space: nowrap }266 267 p.rubric {268 font-weight: bold ;269 font-size: larger ;270 color: maroon ;271 text-align: center }272 273 p.sidebar-title {274 font-family: sans-serif ;275 font-weight: bold ;276 font-size: larger }277 278 p.sidebar-subtitle {279 font-family: sans-serif ;280 font-weight: bold }281 282 p.topic-title {283 font-family: sans-serif ;284 font-weight: bold }285 286 pre.address {287 margin-bottom: 0 ;288 margin-top: 0 ;289 font-family: serif ;290 font-size: 100% }291 292 pre.literal-block, pre.doctest-block {293 margin-left: 2em ;294 margin-right: 2em }295 296 span.classifier {297 font-family: sans-serif ;298 font-style: oblique }299 300 span.classifier-delimiter {301 font-family: sans-serif ;302 font-weight: bold }303 304 span.interpreted {305 font-family: sans-serif }306 307 span.option {308 white-space: nowrap }309 310 span.option-argument {311 font-style: italic }312 313 span.pre {314 white-space: pre }315 316 span.problematic {317 color: red }318 319 span.section-subtitle {320 /* font-size relative to parent (h1..h6 element) */321 font-size: 80% }322 323 table.citation {324 border-left: solid 1px gray;325 margin-left: 1px }326 327 table.docinfo {328 margin: 2em 4em }329 330 table.docutils {331 margin-top: 0.5em ;332 margin-bottom: 0.5em }333 334 table.footnote {335 border-left: solid 1px black;336 margin-left: 1px }337 338 table.docutils td, table.docutils th,339 table.docinfo td, table.docinfo th {340 padding-left: 0.5em ;341 padding-right: 0.5em ;342 vertical-align: top }343 344 td.num {345 text-align: right }346 347 th.field-name {348 font-weight: bold ;349 text-align: left ;350 white-space: nowrap ;351 padding-left: 0 }352 353 h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,354 h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {355 font-size: 100% }356 357 ul.auto-toc {358 list-style-type: none }359 360 </style>361 </head>362 <body bgcolor="white">363 <table class="navigation" cellpadding="0" cellspacing="0"364 width="100%" border="0">365 <tr><td class="navicon" width="150" height="35">366 <!--<a href="http://www.python.org/" title="Python Home Page">367 <img src="http://www.python.org/pics/PyBanner007.gif" alt="[Python]"368 border="0" width="150" height="35" /></a></td>369 <td class="textlinks" align="left">370 [<b><a href="http://www.bittorrent.org/">bittorrent.org</a></b>]-->371 [<b><a href="http://www.bittorrent.org/beps/">BEP Index</a></b>]372 [<b><a href="./bep-0003.txt">BEP Source</a></b>]373 </td></tr></table>374 <div class="document">375 32 <table class="rfc2822 docutils field-list" frame="void" rules="none"> 376 33 <col class="field-name" /> … … 409 66 </div> 410 67 <div class="section" id="bittorrent-org-for-developers-assigned-numbers"> 411 <h1> <a class="toc-backref" href="#id2">BitTorrent.org » For Developers » Assigned Numbers</a></h1>68 <h1>BitTorrent.org » For Developers » Assigned Numbers</h1> 412 69 <p>This document describes the known bit allocations and message IDs for 413 70 the BitTorrent protocol. To request a bit allocation contact 414 <a class="reference external" href="mailto:editor&# 64;bittorrent.org">editor@bittorrent.org</a>. Contact the same address if you are aware of71 <a class="reference external" href="mailto:editor%40bittorrent.org">editor<span>@</span>bittorrent<span>.</span>org</a>. Contact the same address if you are aware of 415 72 any omissions.</p> 416 73 <div class="section" id="reserved-bit-allocations"> 417 <h2> <a class="toc-backref" href="#id3">Reserved Bit Allocations</a></h2>74 <h2>Reserved Bit Allocations</h2> 418 75 <pre class="literal-block"> 419 76 reserved[0] … … 429 86 </div> 430 87 <div class="section" id="reserved-message-ids"> 431 <h2> <a class="toc-backref" href="#id4">Reserved Message IDs</a></h2>88 <h2>Reserved Message IDs</h2> 432 89 <pre class="literal-block"> 433 90 Core Protocol: … … 457 114 </div> 458 115 116 117 </div> 118 <div id="footer"> 119 <hr/> 120 <p>Copyright 2006 BitTorrent.org</p> 121 </div> 122 459 123 </div> 460 124 </body> -
dotorg/trunk/html/beps/bep_0006.rst
r10505 r10506 1 BEP: 41 BEP: 6 2 2 Title: IPv6 Tracker Extension 3 3 Version: 2 -
dotorg/trunk/html/beps/bep_0007.rst
r10505 r10506 1 BEP: 41 BEP: 7 2 2 Title: Tracker Peer Obfuscation 3 3 Version: 3 -
dotorg/trunk/html/beps/bep_0008.rst
r10416 r10506 1 metadata extension 2 ================== 1 BEP: 8 2 Title: Metadata Extension 3 Version: 3 4 Last-Modified: 02-Feb-2008 5 Author: Greg Hazel <greg@bittorrent.com>, Arvid Norberg <arvid@bittorrent.com> 6 Status: Draft 7 Type: Standards Track 8 Created: 31-Jan-2008 9 Post-History: 3 10 4 11 The purpose of this extension is to allow clients to join a swarm and … … 124 131 If no tracker is specified, the client SHOULD use the DHT to acquire peers. 125 132 126 authors127 -------128 133 129 | `Greg Hazel`__130 | `Arvid Norberg`__131 132 .. __: mailto:greg@bittorrent.com133 .. __: mailto:arvid@bittorrent.com134 -
dotorg/trunk/html/beps/bep_0009.rst
r10416 r10506 1 extension protocol for bittorrent 2 ================================= 1 BEP: 9 2 Title: Extension Protocol 3 Version: 3 4 Last-Modified: 02-Feb-2008 5 Author: Arvid Norberg <arvid@bittorrent.com>, Ludvig Strigeus <ludde@utorrent.com> 6 Status: Draft 7 Type: Standards Track 8 Created: 31-Jan-2008 9 Post-History: 10 3 11 4 12 The intention of this protocol is to provide a simple and thin transport … … 124 132 | ``p`` | 6881 | 125 133 +-------------------+----------------------------------+ 126 | ``v`` | " �Torrent 1.2" |134 | ``v`` | "µTorrent 1.2" | 127 135 +-------------------+----------------------------------+ 128 136 129 137 and in the encoded form: 130 138 131 ``d1:md11:LT_metadatai1e6: �T_PEXi2ee1:pi6881e1:v13:\xc2\xb5Torrent 1.2e``139 ``d1:md11:LT_metadatai1e6:µT_PEXi2ee1:pi6881e1:v13:\xc2\xb5Torrent 1.2e`` 132 140 133 141 To make sure the extension names do not collide by mistake, they should be … … 198 206 be a human readable protocol, so why bother. 199 207 200 authors 201 ------- 202 203 | `Arvid Norberg`__ 204 | `Ludvig Strigeus`__ 205 206 .. __: mailto:arvid@bittorrent.com 207 .. __: ludde@utorrent.com 208 208 -
dotorg/trunk/html/beps/makefile
r10505 r10506 13 13 14 14 %.html:%.rst 15 rst pep2html.py --template=../template.txt --cloak-email-addresses --link-stylesheet --stylesheet=../css/screen.css --no-toc-backlinks $? >$@ --traceback15 rstbep2html.py --template=../template.txt --cloak-email-addresses --link-stylesheet --stylesheet=../css/screen.css --no-toc-backlinks $? >$@ --traceback 16 16 17 17 #~/docutils/tools/rst2html.py --template=../template.txt --cloak-email-addresses --link-stylesheet --stylesheet=../css/screen.css --no-doc-title --no-toc-backlinks $? >$@