2014-11-21 2 views
1

Я реализую клиент BitTorrent, и у меня возникли проблемы с обработкой входящих сообщений о присоединении.Протокол BitTorrent: Почему я получаю дополнительные данные с рукопожатиями?

Даже если я установил все зарезервированные байты в 0 (чтобы указать, что я не поддерживаю никаких расширений), я получаю много данных, прикрепленных к сообщениям установления связи. Например:

[2014-11-21 13:41:30 EET : Rho.PeerComms : WARNING] Extra message: [0,0,0,52,5,255,255,255,255,255,255,255,255,247,255,251,247,238,191,239,253,253,255,247,191,223,239] 
[2014-11-21 13:41:33 EET : Rho.PeerComms : WARNING] Extra message: [0,0,0,52,5,255,255,255,127,255,255,254,255,253,255,255,255,255,255,255,253] 
[2014-11-21 13:41:37 EET : Rho.PeerComms : WARNING] Extra message: [0,0,0,52,5,255,127,239,255,255,253,255,255,255,255,251,255,255,223,251,95,127,255,255,255,255,127,255,183,255,253,255,251,239,253,252,239,223,247,255,255,255] 
[2014-11-21 13:41:37 EET : Rho.PeerComms : WARNING] Extra message: [0,0,0,52,5,254,255,255,247,255,255,255,255,255,255,235,255,255,63,127,255,239,127,255,255,239,255,239,255,223,254,255,255,255,255,255,255,251,251,255,255,127,255,249,255,239,255,191,191,255,255,239,191,255,247,252,0,0,0,5,4,0,0,1,121,0,0,0,5,4,0,0,0,105,0,0,0,5,4,0,0,0,207,0,0,0,5,4,0,0,0,104,0,0,0,5,4,0,0,0,85,0,0,0,5,4,0,0,1,32,0,0,0,5,4,0,0,1,53,0,0,0,5,4,0,0,1,67,0,0,0,5,4,0,0,0,131,0,0,0,5,4,0,0,0,136,0,0,0,5,4,0,0,1,140,0,0,0,5,4,0,0,1,89,0,0,0,5,4,0,0,1,54,0,0,0,5,4,0,0,1,81,0,0,0,5,4,0,0,0,83,0,0,0,5,4,0,0,1,5,0,0,0,5,4,0,0,0,112,0,0,0,5,4,0,0,1,13,0,0,0,5,4,0,0,0,7,0,0,0,5,4,0,0,0,194,0,0,0,5,4,0,0,0,28,0,0,0,5,4,0,0,0,179,0,0,0,5,4,0,0,0,163,0,0,0,5,4,0,0,1,115] 
[2014-11-21 13:41:40 EET : Rho.PeerComms : WARNING] Extra message: [0,0,0,52,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252] 

Это данные после сообщений подтверждения. Например: <pstrlen><pstr><reserved><info_hash><peer_id><extra> дополнительная часть в этом формате сообщений.

Любые идеи, что это такое, как их использовать и почему я их получаю?

Спасибо.

ответ

1

0,0,0,52 4 байта Длина сообщения

,5 идентификатор сообщения

указано как "битовое поле" в BEP3. То есть это часть основного протокола bittorrent, и его следует ожидать даже без расширений.

Выход кажется неточным, хотя эти массивы имеют переменную длину, несмотря на то, что указанный размер является одинаковым для каждой строки. Таким образом, возможно, что парсер байтового потока неправильно обрабатывает сообщения по длине.

Смежные вопросы