Enhanced messaging protocol

From AzureusWiki

Jump to: navigation, search
Work In Progress!
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

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.

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:

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.

Message type exchange

here

Messaging Phase

here

Personal tools