Как BitTorrents соединяются друг с другом?

Я только что загружал новый дистрибутив Linux с помощью uTorrent и начал задаваться вопросом, как uTorrent (и другие битторренты) отправляют файлы друг другу через маршрутизаторы NAT? Очевидно, они используют трекеры, чтобы представиться, но как они передают информацию друг другу? Есть ли технический документ по этому поводу? Я не смог найти :/
Спасибо.


person Ben    schedule 10.06.2010    source источник


Ответы (2)


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

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

person caesay    schedule 06.07.2010
comment
По большей части соглашусь, дело в том, что на некоторых роутерах есть upnp, которые разрешают foward порты, также можно использовать пробивку отверстий Nat и т.д. Но для общих целей вы правы. - person Ben; 07.07.2010

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

person jer    schedule 10.06.2010
comment
да, но как клиент может установить соединение с другим за NAT? Это отлично работает для сети, потому что каждый веб-сервер имеет только общедоступный IP-адрес. - person Ben; 11.06.2010
comment
Существуют различные технологии, такие как Universal Plug & Play, которые помогают облегчить такое поведение. - person jer; 11.06.2010
comment
DHT предназначен для дополнения или замены обнаружения одноранговых узлов на основе трекеров. Это не решение для обхода NAT, хотя NAT также может на него повлиять. - person Alex Jasmin; 14.06.2010
comment
Я не говорил, что они были, хотя, читая то, что я написал, я легко понимаю, как это было сделано. Приношу свои извинения за некраткость. - person jer; 14.06.2010