Неожиданное сообщение Mainline DHT от других узлов

Похоже, это часть какого-то механизма предотвращения наводнений, но я не уверен.

Запрос отправлен:

d1:t2:021:y1:q1:q4:ping1:ad2:id20:ê¹L®<꽸.å»…°H$W5ee

Запрос в шестнадцатеричном формате:

64313A74323A3032313A79313A71313A71343A70696E67313A6164323A696432303AEAB9034C7FAE3C8DEABDB82EE5BB85B0482457356565

Полученное сообщение:

A\0\u0006Ÿ4\u001f’t\0\0\0\0\0\u0010\0\0j{\0\0

Полученное сообщение в шестнадцатеричном формате:

4100069F341F927400000000001000006A7B0000

Кто-нибудь может сказать мне, что это за сообщение? Заранее спасибо.


dht
person Azamat Shayakhmetov    schedule 17.09.2018    source источник
comment
Вы проверили с помощью wirehark, что эти строки соответствуют содержимому пакета UDP, который вы получаете? В противном случае может возникнуть проблема с неправильным использованием API сокетов.   -  person the8472    schedule 19.09.2018
comment
@ the8472, Да, я только что сделал это. Содержимое сообщения точно совпадает. Проблема не появляется постоянно, поэтому у меня были проблемы с ее воспроизведением.   -  person Azamat Shayakhmetov    schedule 23.09.2018


Ответы (1)


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

Но несколько служб могут работать на порту DHT, если протоколы могут быть устранены. Похоже, что это может быть uTP SYN, и удаленный узел просто догадывается, что ваш узел также говорит битторрент-по-uTP. Если вы не собираетесь поддерживать, вы можете просто отбросить этот пакет и считать фактический ответ DHT все еще ожидающим на тот момент.

Примечание: ваш запрос не является допустимым кодированием. BEP 3 указывает, что ключи словаря должны быть отсортированы.

person the8472    schedule 24.09.2018
comment
Большое спасибо за ваши усилия! Я очень ценю это. - person Azamat Shayakhmetov; 25.09.2018