Почему битторенту нужно много портов
Почему битторренту нужно столько портов?.. Почему не один-2? Я знаю, что некоторые из них используются для открытия сверстников, но точно не знаю, как это происходит. Можете ли вы предоставить больше технической информации о том, как работает битторент (более подробно, чем описано в википедии)?
2 ответа
BitTorrent нужно много портов, потому что он делает много исходящих соединений. Типичные операционные системы (включая Windows, Linux и большинство других) допускают только одно исходящее соединение для каждого локального порта на IP-адрес. Все ваши входящие соединения будут использовать один и тот же локальный порт. Но каждое исходящее соединение будет назначаться случайным локальным портом операционной системой.
Ваши исходящие соединения будут иметь удаленный порт, который прослушивает другой клиент. Ваши входящие соединения будут иметь по существу случайные удаленные порты, поскольку они распределяются удаленной операционной системой эффективно случайным образом.
Как правило, TCP-соединение имеет только известный порт на принимающей стороне. BitTorrent не является исключением из обычного правила. Скорее всего, это кажется вам необычным только потому, что вы не привыкли иметь большое количество входящих подключений. Кроме того, некоторые люди специально меняют свой порт сервера BitTorrent, и вам необходимо подключаться к ним через любой порт, который они используют, независимо от того, является ли он общеизвестным обычным портом (6881) или нет.
Google говорит:
"Клиент BitTorrent обычно связывает порт TCP с номером 6881. Однако, если этот порт по какой-то причине занят, вместо этого клиент будет пытаться использовать последовательно более высокие порты (6882, 6883 и т. Д. До ограничения 6999). внешние клиенты BitTorrent, чтобы достичь этого, должны иметь возможность подключаться к нужному порту ".
Вот спецификация, если вам было интересно, http://wiki.theory.org/BitTorrentSpecification