Changeset 11109
- Timestamp:
- 06/16/2008 05:33:22 PM (5 months ago)
- Files:
-
- 1 modified
-
dotorg/trunk/html/beps/bep_0022.rst (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dotorg/trunk/html/beps/bep_0022.rst
r11101 r11109 1 1 BEP: 22 2 Title: BitTorrent CacheDiscovery Protocol2 Title: BitTorrent Tracker Discovery Protocol 3 3 Version: $Revision$ 4 4 Last-Modified: $Date$ … … 13 13 ========== 14 14 15 Some Internet Service Providers (ISPs) may be interested in deploying 16 BitTorrent caches to lower transit costs, reduce internal traffic, and 17 improve user experience by speeding up downloads. 18 19 A cache is simply a fast peer in the middle of the network. It might 20 also have substantial disk space. The client communicates with a cache 21 using the normal BitTorrent protocol. 22 23 With this extension, BitTorrent clients are able to discover caches 24 nearby on the network. When a cache is present, the user benefits 25 from having a high capacity peer from which the user's client 26 downloads and to which it can delegate seeding. When a cache inside 27 the user's ISP network seeds on behalf of the client, it frees 28 upstream capacity in the user's access network benefiting the user and 29 those that share the access network. When subsequent peers transfer 30 from their ISP's cache, the ISP experiences less transit traffic. 15 Some Internet Service Providers (ISPs) may wish to localize traffic 16 to reduce transit costs, reduce internal traffic, and improve user 17 experience by speeding up downloads. 18 19 With this extension, BitTorrent clients are able to discover a tracker 20 nearby on the network, and via this tracker discover nearby caches or 21 peers. A cache is simply a fast peer in the middle of the network. It 22 might also have substantial disk space. The client communicates with a 23 cache using the normal BitTorrent protocol. 24 25 When a cache is present, the user benefits from having a high capacity 26 peer from which the user's client downloads and to which it can 27 delegate seeding. When a cache inside the user's ISP network seeds on 28 behalf of the client, it frees upstream capacity in the user's access 29 network benefiting the user and those that share the access network. 30 When subsequent peers transfer from their ISP's cache, the ISP 31 experiences less transit traffic. 31 32 32 33 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL … … 39 40 ======================= 40 41 41 To find the cachesfor its ISP, a BitTorrent client performs a reverse42 To find the tracker for its ISP, a BitTorrent client performs a reverse 42 43 DNS lookup on its external IP address and then obtains the BitTorrent 43 44 SRV resource record associated with the host's domain name. For … … 69 70 The target field in each returned SRV resource record contains the 70 71 domain name of a tracker and the port on which the tracker runs. This 71 tracker is called a * cachetracker*, but the protocol to talk to this72 tracker is called a *local tracker*, but the protocol to talk to this 72 73 tracker is no different from the standard BitTorrent tracker protocol 73 74 described in [#BEP-3]_. … … 75 76 When the BitTorrent client joins a swarm it announces to one or more 76 77 of the trackers referenced in the .torrent file and announces to the 77 cache tracker. The cachetracker returns peers which may be caches or78 other peers that announced the same file to the cachetracker.79 80 A c ache is a BitTorrent peer. A client MAY treat itpreferentially.78 local tracker. The local tracker returns peers which may be caches or 79 other peers that announced the same file to the local tracker. 80 81 A client MAY treat nearby peers or caches preferentially. 81 82 82 83 Reverse DNS lookups are described in RFC 1034 [#RFC-1034]_. … … 189 190 190 191 In our example, we use AT&T's PacBell network. AT&T could implement 191 cachediscovery by adding the following lines to the zone file for192 tracker discovery by adding the following lines to the zone file for 192 193 pacbell.net, 193 194 … … 197 198 _bittorrent-tracker._tcp.pacbell.net. 600 IN SRV 5 0 6969 tracker 198 199 199 Now when a client performs cachediscovery, it performs three DNS200 Now when a client performs tracker discovery, it performs three DNS 200 201 queries removing labels before reaching the domain name pacbell.net, 201 202 at which point the SRV record is returned and the client queries 202 203 tracker.pacbell.net to obtain the domain names of caches. 203 204 204 In Python, the cachetracker's port and domain can be obtained using205 In Python, the local tracker's port and domain can be obtained using 205 206 PyDNS using the following code:: 206 207