romanshuvalov
@romanshuvalov
Инди-разработчик игр

Торрент-клиент успешно работает без announcer-а и за NAT'ом. Как?

Мне дали торрент-файл, не содержащий никакой метаинформации (список трекеров/announce URL отсутствует). Я нахожусь за NAT'ом. При этом я успешно нахожу раздающих, загружаю и сам раздаю данные. До этого момента я был уверен, что трекер обязателен + надо пробрасывать порты для входящих соединений. В связи с этим

1) Как раздающие находят друг друга без трекера? (На ум ничего не приходит.)
2) Как происходит раздача за NAT'ом без проброшенных портов? (На ум приходит UDP Hole Punching, но для этого опять нужен внешний сервер, которого нет.)
  • Вопрос задан
  • 3511 просмотров
Решения вопроса 1
Jump
@Jump
Системный администратор со стажем.
Как раздающие находят друг друга без трекера? (На ум ничего не приходит.)
DHT, ну и вот тут можно прочитать
Если на пальцах - клиент распределенной сети хранит информацию о торрентах и пирах, и обменивается ей с другими клиентами. Происходит что-то вроде поиска по базе данных, причем сама база данных размазана по тысячам клиентов, каждый из которых хранит только кусок БД.

Как происходит раздача за NAT'ом без проброшенных портов?
Очень просто.
Вы из-за NAT открываете соединение к пиру, и он у вас по этому же соединению начинает качать.
Разумеется раздача будет идти далеко не всем, чтобы можно было раздавать из за NAT'а нужно выполнить два условия -
1)Вы сами инициируете соединение (поскольку к вам подключится нельзя)
2)Тот пир к которому вы инициируете соединение должен сидеть не за NAT'ом, ну или у него должны быть проброшены порты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы