Войти

Показать полную графическую версию : Как работает торрент?


The_Immortal
04-10-2012, 19:30
Не могу понять каким образом Utorrent принимает входящие и исходящие соединения, когда порт, указанный в настройках программы, закрыт.

UPnP на роутере, как и в Utorrent отключен.


Есть мысли?

apozlevich
04-10-2012, 19:38
Вроде бы там есть опция выбора случайного порта при запуске.

The_Immortal
04-10-2012, 19:43
apozlevich, а она отключена:

ab57
05-10-2012, 12:03
Если порт закрыт, то utorrent входящие соединения не принимает. Он коннектится к серверу (трекеру) и от него получает список пиров для запрошенной раздачи. Затем, с использованием этого списка, подключается к клиентам с открытыми портами и скачивает кусочки раздач. Т.е на компе с закрытым портом обмен с другими участниками сети выполняется только по инициативе вашего клиента. Если же порт открыт, то ваш комп фактически работает и как клиент, и как сервер. Обмен происходит как по инициативе вашего клиента, так и по инициативе других клиентов участников пиринговой сети, раздающих качаемый вами файл. Если у вас порт закрыт, и закрыты порты у всех, кто раздает, скачивания не будет, даже если есть сиды.

The_Immortal
06-10-2012, 21:56
ab57,
А вот на практике почему-то совсем другое - см. скрин. Порт закрыт, UPnP отключено. Раздачи старые, т.е. я их не скачал только что.

Этому есть объяснение?

freese
06-10-2012, 23:35
торрент может использовать любой порт (даже 80 и независимо какой у вас настроен) это видно в статистике подключений

The_Immortal
07-10-2012, 01:12
freese,
это видно в статистике подключений »
А можно уточнить где именно эта статистика? :)

rover_61eg
07-10-2012, 10:19
Этому есть объяснение? »
А что показывает внизу в правом углу значёк "сети" и что показывает тест? Или в 1.8.2 такого нет?

ab57
07-10-2012, 10:48
А вот на практике почему-то совсем другое - см. скрин. Порт закрыт, UPnP отключено. Раздачи старые, т.е. я их не скачал только что. »
Это, неважно, когда вы скачали раздачу. Как только вы запускаете utorrent , он подключается к трекеру (его данные есть в торрент-файле) и сообщает ему свой адрес и хеш-суммы активных раздач , на что в ответ клиент получает адреса других клиентов, скачивающих или раздающих эти же файлы. Далее ваш клиент периодически информирует трекер о ходе процесса и получает обновлённый список адресов. Этот процесс называется объявлением (англ. announce).

Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера, который лишь хранит информацию, полученную от подключенных к обмену клиентов, список самих клиентов и другую статистическую информацию.
Соединения между клиентами выполняются по TCP . Т.е в каждом соединении участвует 1 TCP-сервер (клиент с открытым портом) и 1 TCP-клиент ( клиент с любым свободным на момент соединения портом). Если у вас закрыт порт, то ваши соединения возможны только с теми раздающими, у которых есть открытый порт.
Посмотреть, какие соединения имеются на данный момент можно в командной строке:
netstat -nb
Увидите, что установленные (Established) соединения программы utorrent созданы с другими клиентами, IP и номера их открытых портов. И не будет соединений на ваш закрытый порт.

А что показывает внизу в правом углу значёк "сети" и что показывает тест? Или в 1.8.2 такого нет? »
Есть такой значок даже в предыдущих версиях. Используется как индикатор входящих соединений. Если порт открыт, и участники торрент-сети подключаются к вам, то он зеленый. Тест позволяет выполнить соединение на указанный порт от сервера, на котором выполняется программа тестирования и тем самым проверить доступность порта.

rover_61eg
07-10-2012, 11:17
ab57, ну мне-то зачем рассказывать? Хотя может у топикстартера там зелёный кружёк, а он утверждает, что порт закрыт...

The_Immortal
07-10-2012, 15:39
rover_61eg,
А что показывает внизу в правом углу значёк "сети" и что показывает тест?»
Кружочек красный, порт закрыт.



ab57, похоже загвоздка в понимании у меня именно вот в этом моменте:

Соединения между клиентами выполняются по TCP . Т.е в каждом соединении участвует 1 TCP-сервер (клиент с открытым портом) и 1 TCP-клиент ( клиент с любым свободным на момент соединения портом). Если у вас закрыт порт, то ваши соединения возможны только с теми раздающими, у которых есть открытый порт. »
Так... А если у меня порт открыт, то мне по барабану на их закрытые порты? Дык мне, как раздающему, вообще по сути пофиг на порты тех, кто с меня собирается качать.

В общем, я вижу две схемы по раздаче:

1) Порт на моем компе на входящее подключение закрыт. Клиент (на моей стороне) получает список доступных пиров и открывает для них соединение (при этом на их стороне должен быть открыт порт на входящее подключение, т.к. я стучусь к ним из вне) - идет раздача.

2) Порт на моем компе на входящее подключение открыт. Клиент (на чьей-то стороне) находит среди доступных сидеров меня, "стучится" в мой порт (который открыт) и соединение открывается - идет раздача.

Я правильно понимаю?

freese
07-10-2012, 16:11
А можно уточнить где именно эта статистика? »
в любом фаерволе http://dl.dropbox.com/u/24754598/Oszone/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.png
прекрасно видно что клиент связывается не только по тому порту который назначен

The_Immortal
07-10-2012, 16:15
freese, прекрасно видно что клиент связывается не только по тому порту который назначен »
Разумеется. Потому что тут представлены соединения, инициализированные Вашей стороной.

freese
07-10-2012, 16:22
The_Immortal, и если вы закрываете один порт?...

The_Immortal
07-10-2012, 16:29
freese, и если вы закрываете один порт?... »
То ничего страшного не происходит :) Потому что мой клиент будет "обзванивать" доступных пиров и предлагать им скачать у меня файлег. Но только у этих пиров порт на входящее подключение должен быть открыт, иначе приглашение к закачке они не получат.

1) Порт на моем компе на входящее подключение закрыт. Клиент (на моей стороне) получает список доступных пиров и открывает для них соединение (при этом на их стороне должен быть открыт порт на входящее подключение, т.к. я стучусь к ним из вне) - идет раздача. »

Я вот так это понимаю.




© OSzone.net 2001-2012