UDP tracker
# UDP tracker

The UDP tracker protocol is a high-performance low-overhead BitTorrent tracker protocol. It uses the stateless User Datagram Protocol (UDP) for data transmission instead of the HTTP protocol (over TCP) regular trackers use. The data is in a custom binary format instead of the standard bencode algorithm BitTorrent uses for most communication.

URLs for this protocol have the following format: udp://example.com:port.

## Comparison with the HTTP tracker

The UDP tracker is better optimized and puts less strain on the tracking server. Neither tracker has any effect on transfer speeds.

## Clients implementing the protocol

* BitComet
* BitLord
* BitRocket
* BitSpirit
* Deluge
* FlashGet
* KTorrent
* libbt
* Libtorrent (Rasterbar)
* qBittorrent
* rtorrent (implementing libTorrent (Rakshasa))
* μTorrent
* Turbo Torrent
* Vuze
* XBT Client
* MLDonkey
* Transmission
* Tixati

## Criticisms

* Limited IPv6 support (the protocol specifies a 32-bit integer for the IP address and supports pseudo-headers for 128-bit IPv6 addresses)
* No mechanism for index sites to scrape an entire tracker
   * This can be supported by traditional TCP scrape mechanisms, as it's not a performance issue.
* No mechanism for trackers to enforce client restrictions
* The UDP tracker protocol has no field to represent the user agent, as the HTTP protocol has. However, the convention to encode the user agent and version inside the peer_id field still applies.
* No mechanism for trackers to send warning messages
* No compression, especially problematic for large announce responses.
