root / dotorg / trunk / html / beps / bep_0024.html

Revision 11086, 6.7 kB (checked in by dave, 3 months ago)

Rebuild HTML.

Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
7<title></title>
8<link rel="stylesheet" href="../css/bep.css" type="text/css" />
9</head>
10<body>
11<div class="document">
12
13<div id="upper" class="clear">
14<div id="wrap">
15<div id="header">
16<h1><a href="../index.html">BitTorrent<span>.org</span></a></h1>
17</div>
18<div id="nav">
19<ul>
20<li><a href="../index.html">Home</a></li>
21<li><a href="../introduction.html">For Users</a></li>
22<li><a href="bep_0000.html"><span>For Developers</span></a></li>
23<!-- <li><a href="./blog">Blog</a></li> -->
24<li><a href="http://forum.bittorrent.org"> Forums </li>
25<li><a href="../donate.html">Donate!</a></li>
26</ul>
27</div> <!-- nav -->
28<!-- ### Begin Content ### -->
29<div id="second">
30
31
32
33<table class="rfc2822 docutils field-list" frame="void" rules="none">
34<col class="field-name" />
35<col class="field-body" />
36<tbody valign="top">
37<tr class="field"><th class="field-name">BEP:</th><td class="field-body">24</td>
38</tr>
39<tr class="field"><th class="field-name">Title:</th><td class="field-body">Tracker Returns External IP</td>
40</tr>
41<tr class="field"><th class="field-name">Version:</th><td class="field-body">11085</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_0024.rst">2008-05-14 14:54:49 -0700 (Wed, 14 May 2008)</a></td>
44</tr>
45<tr class="field"><th class="field-name">Author:</th><td class="field-body">David Harrison &lt;dave&#32;&#97;t&#32;bittorrent.com&gt;</td>
46</tr>
47<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
48</tr>
49<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards track</td>
50</tr>
51<tr class="field"><th class="field-name">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</tr>
53<tr class="field"><th class="field-name">Created:</th><td class="field-body">12-May-2008</td>
54</tr>
55<tr class="field"><th class="field-name">Post-History:</th><td class="field-body"></td>
56</tr>
57</tbody>
58</table>
59<hr />
60<div class="contents topic" id="contents">
61<p class="topic-title first">Contents</p>
62<ul class="simple">
63<li><a class="reference internal" href="#overview" id="id4">Overview</a></li>
64<li><a class="reference internal" href="#references" id="id5">References</a></li>
65<li><a class="reference internal" href="#copyright" id="id6">Copyright</a></li>
66</ul>
67</div>
68<p>So that peers may easily determine their IP address.  A BitTorrent
69tracker may return the requesting peer's public IP address.</p>
70<div class="section" id="overview">
71<h1>Overview</h1>
72<p>A BitTorrent client can easily learn the IP address used when sending,
73but because of intervnening Network Address Translators (NATs) the IP
74address of the client's host seen inside the client's private network
75may differ from the IP address used to route the client's packets
76through the public Internet.</p>
77<p>In BitTorrent as described in BEP 3 <a class="footnote-reference" href="#bep-3" id="id1">[1]</a>, peers wishing to
78transfer a file contact a central tracker.  This tracker returns a
79list of peers that are currently transferring the file.  For all peers
80that reach the tracker across the public Internet, the source address
81in each request seen by the tracker carries the publicly routable IP
82address of the requesting peer.</p>
83<p>A tracker implementing this extension returns the key <em>external ip</em>
84with a bencoded string value containing the IPv4 address as a 32 bit
85binary or containing the IPv6 address as a 128 bit binary.</p>
86<p>Using a 32 or 128 packed binary is idiosyncratic since the value for
87the <em>ip</em> key returned in a dict within the <em>peers</em> list is returned as
88a string using ipv4 dotted notation or a domain name.  However the
89packed representation poses no semantic disadvantage and is negligibly
90smaller.</p>
91<p>The IPv4 part of this extension has been supported by uTorrent since
92May of 2007.</p>
93<p>The tracker is not unique in its ability to see a peer's public IP
94address.  Any peer reached over the public Internet sees the public IP
95address of the peer on the far side of the connection.  The <em>Extension
96Protocol</em> proposed in <a class="footnote-reference" href="#bep-10" id="id2">[3]</a> provides a mechanism for a client to
97obtains its public IP from any of its peers.  There is no conflict for
98a BitTorrent client to support both tracker and peer methods, and they
99have slightly different advantages.  A peer can learn its external IP
100from a tracker even when there are no peers.  For trackerless swarms,
101a peer can learn its IP from any peer whose reference was obtained from the DHT
102<a class="footnote-reference" href="#bep-5" id="id3">[2]</a>.</p>
103</div>
104<div class="section" id="references">
105<h1>References</h1>
106<table class="docutils footnote" frame="void" id="bep-3" rules="none">
107<colgroup><col class="label" /><col /></colgroup>
108<tbody valign="top">
109<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>BEP_0003. The BitTorrent Protocol Specification, Cohen.
110(<a class="reference external" href="http://www.bittorrent.org/beps/bep_0003.html">http://www.bittorrent.org/beps/bep_0003.html</a>)</td></tr>
111</tbody>
112</table>
113<table class="docutils footnote" frame="void" id="bep-5" rules="none">
114<colgroup><col class="label" /><col /></colgroup>
115<tbody valign="top">
116<tr><td class="label"><a class="fn-backref" href="#id3">[2]</a></td><td>BEP_0005. DHT Protocol. Loewenstern.
117(<a class="reference external" href="http://www.bittorrent.org/beps/bep_0005.html">http://www.bittorrent.org/beps/bep_0005.html</a>)</td></tr>
118</tbody>
119</table>
120<table class="docutils footnote" frame="void" id="bep-10" rules="none">
121<colgroup><col class="label" /><col /></colgroup>
122<tbody valign="top">
123<tr><td class="label"><a class="fn-backref" href="#id2">[3]</a></td><td>BEP_0010. Extension Protocol. Norberg, Strigeus, Hazel
124(<a class="reference external" href="http://www.bittorrent.org/beps/bep_0010.html">http://www.bittorrent.org/beps/bep_0010.html</a>)</td></tr>
125</tbody>
126</table>
127</div>
128<div class="section" id="copyright">
129<h1>Copyright</h1>
130<p>This document has been placed in the public domain.</p>
131<!-- Local Variables:
132mode: indented-text
133indent-tabs-mode: nil
134sentence-end-double-space: t
135fill-column: 70
136coding: utf-8
137End: -->
138</div>
139
140
141</div>
142        <div id="footer">
143<hr/>
144</div>
145
146</div>
147</body>
148</html>
Note: See TracBrowser for help on using the browser.