Протокол 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> дополнительная часть в этом формате сообщения.

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

Спасибо.


person sinan    schedule 21.11.2014    source источник


Ответы (1)


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

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

Указано как «битовое поле» в BEP3. т.е. это часть основного протокола BitTorrent, и его следует ожидать даже без расширений.

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

person the8472    schedule 24.11.2014