Mainline DHT неожиданное сообщение от других узлов - PullRequest
0 голосов
/ 17 сентября 2018

Это похоже на какой-то механизм предотвращения наводнений, но я не уверен.

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

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

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

1 Ответ

0 голосов
/ 25 сентября 2018

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

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

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

...