| BEP: | 23 |
|---|---|
| Title: | Tracker Returns Packed Peer Lists |
| Version: | 11083 |
| Last-Modified: | 2008-05-13 17:34:56 -0700 (Tue, 13 May 2008) |
| Author: | David Harrison <dave at bittorrent.com> |
| Status: | Accepted |
| Type: | Standards track |
| Content-Type: | text/x-rst |
| Created: | 12-May-2008 |
| Post-History: |
Contents
To reduce the size of tracker responses and to reduce memory and computational requirements in trackers, trackers may return peers as a packed string rather than as a bencoded list.
In BitTorrent as described in BEP 3 [1], peers wishing to transfer a file contact a central tracker. This tracker returns a list of peers that are currently transferring the file. The list of peers is implemented as a list of bencoded dicts. Each dict in the list contains three fields: peer id, ip, and port. The peer id is 20 bytes plus 3 bytes bencoding overhead. The ip is a string containing a domain name or an IP address, and an integer port number. The ip is variable length, but since in its longest form it is a domain name it cannot exceed 255 bytes [2] plus 4 bytes bencoding overhead. Bencoded integers are also variable length but since it is a port number, it cannot be more than 7 bytes including bencoding overhead. Thus,
It is common now to use a packed format where each peer is represented using only 6 bytes. The first 4 bytes contain the 32-bit ipv4 address. The remaining two bytes contain the port number. Both address and port use network-byte order.
The packed format uses the same peers key in the bencoded tracker response, but the value is a bencoded string rather than a bencoded list.
The peer id does not appear in the packed format. The format has been in use for years and the lack of a peer id has posed no problems.
This packed format is supported by BitTorrent mainline, Azureus, libtorrent, uTorrent, and probably most other clients.
| [1] | BEP_0003. The BitTorrent Protocol Specification, Cohen (http://www.bittorrent.org/beps/bep_0003.html) |
| [2] | RFC-1034. DOMAIN NAMES - CONCEPTS AND FACILITIES. Mockapetris, November 1987. (http://tools.ietf.org/html/rfc1034) |
This document has been placed in the public domain.