Назад | Перейти на главную страницу

Bittorrent-порты, зачем они мне?

Я рассматриваю возможность распределения файлов между филиалами, использующими Bittorrent. Я понимаю, что клиенту Bittorrent нужны порты в диапазоне 6881–6999, которые будут перенаправлены в Интернет, чтобы ускорить передачу.

Я не понимаю: как это ускоряет работу? Я мог понять, помешает ли отсутствие надлежащих средств связи между клиентами разговаривать друг с другом. Но куда бы я ни посмотрел, я просто вижу совет «Просто пересылайте порты, и передача ускорится».

Извините, если это кажется не по теме, но мне кажется, что это связано с сетью.

Типичный пример протокола P2P - Bittorrent. В этом протоколе коммуникациями часто управляет трекер. Это означает, что для передачи данных необходимо как минимум три узла:

+-----+               +---------+      +------+      
|     |  1.1.1.1:500  |         |      |      |      
| You |<------------->| Tracker |<---->| Peer |
|     |               |         |      |      |      
+-----+               +---------+      +------+      

Соединение для вас начинается с сообщения трекеру вашего IP-адреса и порта, к которому вы можете подключиться. Затем трекер сохраняет это в таблице состояний:

+--------------+------------+
| Nodes        | Completion |
| 1.1.1.1:500  | 0%         |
| 2.2.2.2:1000 | 100%       |
+--------------+------------|

Peer установил, что он подключен к порту 1000. Мы вернемся к этому.

Адреса 1.1.1.1 и 2.2.2.2 представляют внешний адреса устройств NAT. Эти устройства широко распространены в современном Интернете, поскольку почти у каждого пользователя установлен маршрутизатор, обеспечивающий доступ к нескольким компьютерам, мобильным телефонам, игровым консолям и т. Д.

Это означает, что за этими адресами стоит несколько адресов, по одному для каждого из этих устройств.

Однако: поскольку один адрес может быть подключен только к порту в диапазоне 1-65535, как ваш маршрутизатор узнает, следует ли подключать запрос порта 500 к вашему компьютеру с запущенным торрент-клиентом? Вы даете ему указание, предоставляя ему правило, называемое переадресацией порта, чтобы сказать «любые соединения, которые вы получаете на порт 500, я хочу, чтобы они были перенаправлены мне» - где me ваш внутренний адрес (один из 10.x.x.x, 192.168.x.x или 172.16.x.x).

Поскольку вы только что присоединились к «рою», объявив трекер, трекер отправит вам приведенную выше таблицу состояний. Вы знаете, что только что присоединились и имеете 0% завершения, но это Peer имеет 100% завершение, что означает, что вы знаете, что если вы подключитесь к нему, вы сможете начать получать данные.

Если Peer не «перенаправил» свой порт (1000, как он сообщил трекеру при объявлении), однако вы не сможете подключиться и начать получать данные. Очевидно, это нежелательно, так как теперь вы не можете завершить торрент, потому что никто не может поделиться им.

Если Peer не объявил с тех пор, как вы подключились, он еще не знает, что вы существуете. Однако, если вы правильно настроили переадресацию портов, когда он объявит и получит новую таблицу состояний с вами в ней, он может инициировать соединение с вами. Это будет работать, поскольку ваш порт перенаправлен.

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

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

В этом вопросе масса плохих данных. Bittorrent работает по схеме «зуб за зуб», при которой клиенты, которые загружают, получают предпочтение при загрузке. Для загрузки данных другие клиенты должны иметь возможность подключаться к вам, чего не может произойти, если вы подключены к NAT или отключены от брандмауэра. Таким образом, вы открываете порты, чтобы позволить другим клиентам подключаться, вы загружаете некоторые данные и получаете более приоритетные загрузки.

Там есть кое-что для обхода NAT, если другой клиент не защищен брандмауэром / NAT, но по крайней мере одна сторона должна иметь открытые порты.

Если это вся ваша частная сеть, вы можете обмануть клиента, чтобы он не выполнял эту предпочтительную отправку, но это, вероятно, намного больше, чем просто открытие портов.

Вот тривиальная справка об этом поведении.

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

Я могу ошибаться, но порты, которые нужны торрентам, используются больше для обмена, чем для загрузки.

Это необходимо для подключения, чтобы другие клиенты BitTorrent могли «видеть» вашу машину. Если они вас видят, то могут отправлять или получать данные от вас.

Я бы не стал беспокоиться об этом, если вы просто передаете личные файлы. Клиенты увидят друг друга как-нибудь. Фактически вам следует отключить другие DHT или обнаружение.

Я считаю, что это позволяет трекерам и клиентам опрашивать сервер Bittorrent (вашу машину) более точно и быстрее, потому что он не полагается на трансляцию NAT, чтобы добраться туда, куда ему нужно.

Когда вы загружаете через BitTorrent, вы можете передавать данные через прокси-сервер или создавая прямые соединения с другими пользователями. Потому что пользователи подключаются к ваша машина, им нужно, чтобы порты были открыты. В противном случае он будет использовать NAT для разрешения подключений к вашему компьютеру, что работает медленнее и поддерживается не всеми клиентами. Следовательно, чем меньше клиентов, тем медленнее скачиваются.

Чтобы BitTorrent мог загружать фрагменты, ему сначала необходимо подключиться к клиенту, у которого есть нужные фрагменты. Есть два способа установить это соединение

  • Подключитесь к клиенту и попросите куски
  • Загрузите фрагмент клиенту, и пока это соединение открыто, запросите фрагменты взамен

Чтобы первый из них работал, необходимо настроить брандмауэр, чтобы разрешить входящие соединения на портах, которые прослушивает Bittorrent. Это ничем не отличается от настройки веб-сервера или FTP-сервера.

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