Peer identification

From VuzeWiki
Jump to: navigation, search


Background[edit]

As of Azureus 3.0.2.0 (and a few versions prior to it), changes were made to the peer identification code (the code which determines what name to display for the peers in the "Client" column in the "Files" view). There a number of situations where you might see more than a simple label for a client, and this page is here to explain what those things are.

Azureus has two mechanisms to identify clients. The first (and most common way) is via the other client's peer ID. A lot of BitTorrent clients use one of a few different ways to encode some code to identify the client - for example, Azureus 3.0.2.0 will have a peer ID which starts with the text -AZ3020-, the AZ is the client code for Azureus, and 3020 is the version number component.

Most clients will then contain a database of client code mappings to client names.

The second mechanism is used if both Azureus and the other client support an extended message protocol - this allows each client to exchange the application name fully.

List of known clients[edit]

The following bittorrent procotol definition also contains a nice list of known IDs: http://wiki.theory.org/BitTorrentSpecification#peer_id

Unknown clients[edit]

This one might be fairly obvious - if the client name says "Unknown" (or whatever you expect), then it just means Azureus can't determine what the client really is. In these cases, you will usually see something like "Unknown [--c--_-5-\----t-#---]", which means Azureus doesn't know how to identify the client from the peer ID. In other cases, you might see something like "Unknown BD/0.3.0.0", which means that Azureus is able to determine some identifying information from the peer ID, but the client code is not one known by Azureus's database of known clients (so the client code in this case is "BD").

Fake clients[edit]

In some situations, Azureus will indicate that a client is "fake" if it appears to purposefully misidentify itself - there are only a limited number of situations where Azureus is able to determine that, however.

If Azureus indicates a client is fake, then it will look something like this "Unknown [FAKE: "Azureus 3.2.0.0"]". This means that, in this case, Azureus doesn't know what the client actually is, but it does know that it isn't Azureus 3.2.0.0.

Sometimes, you might see something like this: "XTorrent [FAKE: "Azureus 2.5.0.4" / "Transmission 0.7-svn"]". In this example, Azureus recognises that the client is actually XTorrent, and it indicates that XTorrent has misidentified itself as Azureus 2.5.0.4 (in the peer ID) and as Transmission (via the extended message protocol).

If a client is marked as fake, it does not necessarily mean that the peer is using a malicious client or a "hacked" version of the application - it just means that the client is misidentifying itself. Also - it doesn't mean that Azureus will be able to determine all cases where a client is deliberately misidentifying itself.

Mismatch clients[edit]

In some cases, Azureus may get conflicting identification information when trying to identify a client. For example, if you see something like this: "Unknown [mismatch: "BitTorrent 6.0.0" / "µTorrent 1.7.0"]", then it means that Azureus has identified the client as "BitTorrent 6.0.0" from the peer ID, yet the name "µTorrent 1.7.0" was given via the extended message protocol.

When this happens, it may mean that the client is purposefully or unintentionally misidentifying itself, or it may mean that Azureus is not decoding the peer ID correctly.

Bad peer ID clients[edit]

In a limited number of cases, Azureus may indicate that a client has a bad peer ID, for example: "BitSpirit (bad peer ID)". In this case, it means that Azureus has partly / fully determined what the client actually is, but does not indicate itself clearly in the peer ID, and may actually be misidentified by other clients. In the case of BitSpirit / BitComet, it sometimes reuses a peer ID from another client, but changes the last few characters.

"?" and "*" clients[edit]

Sometimes, Azureus will have a question mark next to a client's name, such as BitSpirit?. This means that Azureus is suggesting that it is what the client could be, but isn't sure. Another example is the BitThief client, which spoofs itself as the mainline client - you may see the text Mainline 4.4.0 (BitThief?) appear in those circumstances - Azureus is telling you that the client is probably "Mainline 4.4.0", but there is a chance it could be the BitThief client.

In the cases where Azureus feels quite sure that it knows what the client is, then it will put an asterisk next to the name. One example would be libTorrent (Rakshasa) 0.11.2 / rTorrent* - this is where the client identifies itself as using the libTorrent library, but Azureus is indicating that it is likely to be the "rTorrent" client, since that is the main client which uses that library.

Helping us to identify clients[edit]

If you find situations where a client is not being successfully identified, and you know what the client actually is, then feel free to contact us in our forums. One thing which is especially of use to us is the peer ID of the client. To supply us with the peer ID in a format that we can use:

  1. Go to the peers view of a running torrent
  2. Right click and do "Column Setup"
  3. Enable the "Peer ID" column which says "Peer ID in byte form"
  4. Right click on the text displayed for the peer you want to identify, and selected "Peer ID column -> Copy text to clipboard"
  5. Paste the peer ID in the forum for us.