Используя клиент Deluge BitTorrent и находясь за двумя NAT (домашний маршрутизатор + маршрутизатор ISP), я отключил UPnP и NAT-PMP и позволил ему запустить один завершенный торрент, наблюдая за поведением. К моему удивлению, клиент начинает загружать торрент нескольким пирам (через несколько секунд).

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

Я, конечно, могу представить себе успешную связь, используя обычную технику обхода NAT, такую как пробивание UDP-дырок, но это все еще требует активного сотрудничества со стороны моего клиента (который не должен знать, что удаленному узлу нужен файл, поэтому он не может взаимодействовать). Итак, как это возможно?

1 ответ1

0

Вы должны были бы проверить исходный код клиента Bittorrent, чтобы знать наверняка, но, поскольку узел обнаруживает IP-адреса роя через исходящее HTTP-соединение с трекером, он может затем запрашивать узлы через исходящие соединения, если им нужны части файл.

Я полагаю, что загрузка файла не в интересах моего клиента.

Если вы заполняете файл целиком, вы, по сути, говорите, что хотите, чтобы этот файл распространялся по сети (например, в ситуации издателя), поэтому разработчик не должен притворяться, что это происходит любыми необходимыми средствами. Кроме того, многие трекеры настаивают на том, чтобы вы поддерживали хорошее соотношение семян и пиявки, поэтому на самом деле это часто то, что нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .