Enhanced messaging protocol
From VuzeWiki
Work In Progress!
This specification is still under development and should NOT be implemented until this notice is removed
This specification is still under development and should NOT be implemented until this notice is removed
see http://82.182.115.6/extension.txt
Contents |
[edit] Supporting the Enhanced Peer Messaging Protocol
This describes a proposal for supporting arbitrary inter-peer messages across the wire. It is intended to supersede the current Azureus messaging protocol
The peer wire protocol is split up into two phases, handshaking and messaging.
[edit] Handshaking phase
Once the socket connection has been established between two peers, the initiating peer begins the handshaking process by sending an introductory hello message, which can be one of several possible formats:
[edit] Introduction hello
- The classic BitTorrent handshake message, starting with "19BitTorrent protocol", followed by the reserved bits, infohash and peerid as usual. If the reserved bit (TODO) is not set, it indicates the peer does not support the enhanced messaging protocol, meaning that the classic BitTorrent wire protocol (http://www.bittorrent.com/protocol.html) should be used for all for the rest of the session. If the reserved bit is set, it indicates the peer supports the enhanced messaging protocol wire format as described here, meaning that the next message must be the Message type exchange described in the next section.
- An obfuscated hello message, which looks like random bytes from the very first byte onwards, beginning something like IV + sha1( IV + infohash ) .....(TODO) Once the peer accepts the socket connection based upon the encrypted infohash key, they can use that same key for encrypting the rest of the wire session. Receiving an obfuscated introductory hello implies that the peer supports the enhanced messaging protocol, meaning that the next message must be the Message type exchange described below.
[edit] Message type exchange
here
[edit] Messaging Phase
here
