Changeset 11191
- Timestamp:
- 03/01/10 16:15:18 (5 months ago)
- Location:
- dotorg/trunk/html/beps
- Files:
-
- 1 added
- 2 edited
-
bep_0029.html (modified) (7 diffs)
-
bep_0033.html (added)
-
makefile (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
dotorg/trunk/html/beps/bep_0029.html
r11167 r11191 39 39 <tr class="field"><th class="field-name">Title:</th><td class="field-body">uTorrent transport protocol</td> 40 40 </tr> 41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">111 66</td>42 </tr> 43 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference " href="http://bittorrent.org/trac/browser/dotorg/trunk/html/beps/bep_0029.rst">2009-07-15 12:42:16 -0700 (Wed, 15 Jul 2009)</a></td>41 <tr class="field"><th class="field-name">Version:</th><td class="field-body">11189</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_0029.rst">2010-01-22 01:49:42 +0000 (Fri, 22 Jan 2010)</a></td> 44 44 </tr> 45 45 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Arvid Norberg <arvid at bittorrent.com></td> … … 49 49 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 50 50 </tr> 51 <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference " href="http://www.bittorrent.org/beps/bep-0012">text/x-rst</a></td>51 <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference external" href="http://www.bittorrent.org/beps/bep-0012">text/x-rst</a></td> 52 52 </tr> 53 53 <tr class="field"><th class="field-name">Created:</th><td class="field-body">22-Jun-2009</td> … … 61 61 <p class="topic-title first">Contents</p> 62 62 <ul class="simple"> 63 <li><a class="reference " href="#utorrent-transport-protocol" id="id2">uTorrent Transport Protocol</a><ul>64 <li><a class="reference " href="#credits" id="id3">credits</a></li>65 <li><a class="reference " href="#rationale" id="id4">rationale</a></li>66 <li><a class="reference " href="#overview" id="id5">overview</a></li>67 <li><a class="reference " href="#header-format" id="id6">header format</a><ul>68 <li><a class="reference " href="#version" id="id7">version</a></li>69 <li><a class="reference " href="#connection-id" id="id8">connection_id</a></li>70 <li><a class="reference " href="#timestamp-microseconds" id="id9">timestamp_microseconds</a></li>71 <li><a class="reference " href="#timestamp-difference-microseconds" id="id10">timestamp_difference_microseconds</a></li>72 <li><a class="reference " href="#wnd-size" id="id11">wnd_size</a></li>73 <li><a class="reference " href="#extension" id="id12">extension</a><ul>74 <li><a class="reference " href="#selective-ack" id="id13">Selective ACK</a></li>75 <li><a class="reference " href="#extension-bits" id="id14">Extension bits</a></li>63 <li><a class="reference internal" href="#utorrent-transport-protocol" id="id2">uTorrent Transport Protocol</a><ul> 64 <li><a class="reference internal" href="#credits" id="id3">credits</a></li> 65 <li><a class="reference internal" href="#rationale" id="id4">rationale</a></li> 66 <li><a class="reference internal" href="#overview" id="id5">overview</a></li> 67 <li><a class="reference internal" href="#header-format" id="id6">header format</a><ul> 68 <li><a class="reference internal" href="#version" id="id7">version</a></li> 69 <li><a class="reference internal" href="#connection-id" id="id8">connection_id</a></li> 70 <li><a class="reference internal" href="#timestamp-microseconds" id="id9">timestamp_microseconds</a></li> 71 <li><a class="reference internal" href="#timestamp-difference-microseconds" id="id10">timestamp_difference_microseconds</a></li> 72 <li><a class="reference internal" href="#wnd-size" id="id11">wnd_size</a></li> 73 <li><a class="reference internal" href="#extension" id="id12">extension</a><ul> 74 <li><a class="reference internal" href="#selective-ack" id="id13">Selective ACK</a></li> 75 <li><a class="reference internal" href="#extension-bits" id="id14">Extension bits</a></li> 76 76 </ul> 77 77 </li> 78 <li><a class="reference " href="#type" id="id15">type</a></li>79 <li><a class="reference " href="#seq-nr" id="id16">seq_nr</a></li>80 <li><a class="reference " href="#ack-nr" id="id17">ack_nr</a></li>78 <li><a class="reference internal" href="#type" id="id15">type</a></li> 79 <li><a class="reference internal" href="#seq-nr" id="id16">seq_nr</a></li> 80 <li><a class="reference internal" href="#ack-nr" id="id17">ack_nr</a></li> 81 81 </ul> 82 82 </li> 83 <li><a class="reference " href="#connection-setup" id="id18">connection setup</a></li>84 <li><a class="reference " href="#packet-loss" id="id19">packet loss</a></li>85 <li><a class="reference " href="#timeouts" id="id20">timeouts</a></li>86 <li><a class="reference " href="#packet-sizes" id="id21">packet sizes</a></li>87 <li><a class="reference " href="#congestion-control" id="id22">congestion control</a></li>83 <li><a class="reference internal" href="#connection-setup" id="id18">connection setup</a></li> 84 <li><a class="reference internal" href="#packet-loss" id="id19">packet loss</a></li> 85 <li><a class="reference internal" href="#timeouts" id="id20">timeouts</a></li> 86 <li><a class="reference internal" href="#packet-sizes" id="id21">packet sizes</a></li> 87 <li><a class="reference internal" href="#congestion-control" id="id22">congestion control</a></li> 88 88 </ul> 89 89 </li> … … 143 143 (and has the ability to) implement its own congestion control.</p> 144 144 <p>The main difference compared to TCP is the delay based congestion 145 control. See the <a class="reference " href="#congestion-control">congestion control</a> section.</p>145 control. See the <a class="reference internal" href="#congestion-control">congestion control</a> section.</p> 146 146 <p>Like TCP, uTP uses window based congestion control. Each socket 147 147 has a <tt class="docutils literal"><span class="pre">max_window</span></tt> which determines the maximum number of bytes … … 151 151 <p>A socket may only send a packet if <tt class="docutils literal"><span class="pre">cur_window</span></tt> + <tt class="docutils literal"><span class="pre">packet_size</span></tt> 152 152 is less than or equal to min(<tt class="docutils literal"><span class="pre">max_window</span></tt>, <tt class="docutils literal"><span class="pre">wnd_size</span></tt>). 153 The packet size may vary, see the <a class="reference " href="#packet-sizes">packet sizes</a> section.</p>153 The packet size may vary, see the <a class="reference internal" href="#packet-sizes">packet sizes</a> section.</p> 154 154 <p><tt class="docutils literal"><span class="pre">wnd_size</span></tt> is the advertised window from the other end. It sets 155 155 an upper limit on the number of packets in-flight.</p> … … 160 160 other endpoint (<tt class="docutils literal"><span class="pre">reply_micro</span></tt>). Whenever a packet is received, 161 161 this state is updated by subtracting <tt class="docutils literal"><span class="pre">timestamp_microseconds</span></tt> 162 from the hosts current time, in microseconds (see <a class="reference " href="#header-format">header format</a>).</p>162 from the hosts current time, in microseconds (see <a class="reference internal" href="#header-format">header format</a>).</p> 163 163 <p>Every time a packet is sent, the sockets <tt class="docutils literal"><span class="pre">reply_micro</span></tt> value is 164 164 put in the <tt class="docutils literal"><span class="pre">timestamp_difference_microseconds</span></tt> field of the packet … … 212 212 received packet, at the time the last packet was received. This is the latest 213 213 one-way delay measurement of the link from the remote peer to the local machine.</p> 214 <p>When a socket is newly opened and doesn't have any delay samples yet, this must 215 be set to 0.</p> 214 216 </div> 215 217 <div class="section" id="wnd-size"> -
dotorg/trunk/html/beps/makefile
r11178 r11191 35 35 bep_0031.html \ 36 36 bep_0032.html \ 37 bep_0033.html \ 37 38 bep_1000.html \ 38 39
Note: See TracChangeset
for help on using the changeset viewer.