2010-06-10 3 views
4

Я только что загрузил новый дистрибутив Linux с помощью uTorrent и начал задаваться вопросом, как uTorrent (и другие битрейты) отправляют файлы друг другу через NAT-маршрутизаторы? Они, очевидно, используют трекеры для ознакомления, но как они передают информацию друг другу? Есть ли там документ? Не удалось найти:/
ThanksКак BitTorrents соединяются с eachother?

ответ

2

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

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

+3

По большей части я согласен, дело в том, что некоторые маршрутизаторы имеют upnp, которые позволяют портам foward, вы также можете использовать штамповку отверстий Nat и т. Д. Но для общих целей вы правы. – Ben

0

Торрент-клиенты работают на основе так называемых распределенных таблиц хеширования. Они начинаются с набора известных корней и разветвляются в поисках других связанных узлов (т. Е. Соседей). Установите соединения с ними и сохраните их до установленного предела. Поскольку клиент инициирует соединение, все удаленное устройство должно подать данные обратно, и вы получите его через NAT просто отлично. Это работает сетевой трафик.

+0

Да, но как клиент установит соединение с другим за NAT? Это отлично работает для сети, потому что каждый веб-сервер имеет только открытый IP-адрес – Ben

+0

Существуют различные технологии, такие как Universal Plug & Play, которые помогают облегчить это поведение. – jer

+1

DHT добавляет или заменяет обнаружение сверстников на основе трекера. Это * не * решение обхода NAT, хотя NAT также может повлиять на него. –