| 1 | BEP: 4 |
|---|
| 2 | Title: Assigned Numbers |
|---|
| 3 | Version: $Revision$ |
|---|
| 4 | Last-Modified: $Date$ |
|---|
| 5 | Author: David Harrison <dave@bittorrent.com> |
|---|
| 6 | Status: Active |
|---|
| 7 | Type: Process |
|---|
| 8 | Created: 10-Jan-2008 |
|---|
| 9 | Post-History: |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | This document describes the known bit allocations and message IDs for |
|---|
| 13 | the BitTorrent protocol. To request a bit allocation contact |
|---|
| 14 | editor@bittorrent.org. Contact the same address if you are aware of |
|---|
| 15 | any omissions. |
|---|
| 16 | |
|---|
| 17 | Reserved Bit Allocations |
|---|
| 18 | ======================== |
|---|
| 19 | |
|---|
| 20 | :: |
|---|
| 21 | |
|---|
| 22 | reserved[0] |
|---|
| 23 | 0x80 Azureus Messaging Protocol |
|---|
| 24 | |
|---|
| 25 | reserved[2] |
|---|
| 26 | 0x08 BitTorrent Location-aware Protocol (no known implementations) |
|---|
| 27 | |
|---|
| 28 | reserved[5] |
|---|
| 29 | 0x10 LTEP (Libtorrent Extension Protocol) |
|---|
| 30 | 0x02 Extension Negotiation Protocol |
|---|
| 31 | 0x01 Extension Negotiation Protocol |
|---|
| 32 | |
|---|
| 33 | reserved[7] |
|---|
| 34 | 0x01 BitTorrent DHT |
|---|
| 35 | 0x02 XBT Peer Exchange |
|---|
| 36 | 0x04 suggest, haveall, havenone, reject request, and allow fast extensions |
|---|
| 37 | 0x08 NAT Traversal |
|---|
| 38 | |
|---|
| 39 | There are known collisions:: |
|---|
| 40 | |
|---|
| 41 | reserved[0] |
|---|
| 42 | 0xFF BitComet Extension Protocol |
|---|
| 43 | |
|---|
| 44 | reserved[1] |
|---|
| 45 | 0xFF BitComet Extension Protocol |
|---|
| 46 | |
|---|
| 47 | reserved[7] |
|---|
| 48 | 0x01 XBT Metadata Exchange (implemented only in XBT) |
|---|
| 49 | |
|---|
| 50 | It is recommended that further extensions use the Extension Protocol |
|---|
| 51 | [#BEP-10]_, a.k.a., LibTorrent Extension Protocol (LTEP). With LTEP, |
|---|
| 52 | extension bit collisions become impossible since no new extension bits |
|---|
| 53 | are allocated. With LTEP, message ID collisions also become |
|---|
| 54 | impossible because message IDs are allocated on demand at the |
|---|
| 55 | beginning of the connection. Extension *name* collisions become |
|---|
| 56 | possible, but the probability is much less likely. |
|---|
| 57 | |
|---|
| 58 | Reserved Message IDs |
|---|
| 59 | ==================== |
|---|
| 60 | |
|---|
| 61 | :: |
|---|
| 62 | |
|---|
| 63 | Core Protocol: |
|---|
| 64 | 0x00 choke |
|---|
| 65 | 0x01 unchoke |
|---|
| 66 | 0x02 interested |
|---|
| 67 | 0x03 not interested |
|---|
| 68 | 0x04 have |
|---|
| 69 | 0x05 bitfield |
|---|
| 70 | 0x06 request |
|---|
| 71 | 0x07 piece |
|---|
| 72 | 0x08 cancel |
|---|
| 73 | |
|---|
| 74 | DHT Extension: |
|---|
| 75 | 0x09 port |
|---|
| 76 | |
|---|
| 77 | Fast Extensions: |
|---|
| 78 | 0x0D suggest |
|---|
| 79 | 0x0E have all |
|---|
| 80 | 0x0F have none |
|---|
| 81 | 0x10 reject request |
|---|
| 82 | 0x11 allowed fast |
|---|
| 83 | |
|---|
| 84 | Additional IDs used in deployed clients: |
|---|
| 85 | 0x14 LTEP Handshake (implemented in libtorrent, uTorrent,...) |
|---|
| 86 | |
|---|
| 87 | References |
|---|
| 88 | ========== |
|---|
| 89 | |
|---|
| 90 | .. [#BEP-10] BEP_0010. Extension Protocol. Norberg, Strigeus, Hazel. |
|---|
| 91 | http://www.bittorrent.org/beps/bep_0010.html |
|---|
| 92 | |
|---|
| 93 | Copyright |
|---|
| 94 | ========= |
|---|
| 95 | |
|---|
| 96 | This document has been placed in the public domain. |
|---|
| 97 | |
|---|
| 98 | |
|---|
| 99 | |
|---|
| 100 | .. |
|---|
| 101 | Local Variables: |
|---|
| 102 | mode: indented-text |
|---|
| 103 | indent-tabs-mode: nil |
|---|
| 104 | sentence-end-double-space: t |
|---|
| 105 | fill-column: 70 |
|---|
| 106 | coding: utf-8 |
|---|
| 107 | End: |
|---|