Показать сообщение отдельно
Старый 26.10.2009, 20:15   #2
Кинозал.ТВ
Местный
Медаль пользователю. ЗОЛОТОМедаль автору. ЗОЛОТО Форумчанин
Аватар для Кинозал.ТВ
Регистрация: 10.01.2008
Сообщения: 889
Репутация: 137
Теория, как открыть порты.

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

1. Итак, что же такое IP-адрес?
Каждое устройство, которое подключено к какой-либо сети, имеет своё уникальное имя - идетификатор (IP-адрес) - это как жильцы одного дома имеют уникальные номера квартир, ведь в одном доме не бывает 2-х квартир с одинаковым номером.
Есть много видов сетей, но нам необходимо знать, что все сети можно разделить на 2 основных типа: локальные (небольшой географической протяжённости, в пределах одного здания, района, города) и глобальные (сети огромной географической протяжённости, в межконтинентальных и даже всемирных пределах).
Для удобства адресации была принят стандарт протокола IPv4, адрес типа ххх.ххх.ххх.ххх (например 192.168.178.100), где ххх-любое число от 0 до 255.
Этот тип адресации используется практически во всех локальных сетях и в глобальной сети Инетрнет. Причём, чтобы не путаться при подключении компьютера или целой локальной сети к сети Интернет, для локальных сетей были отведены диапозоны адресов, которые в сети Интернет использоваться не будут:
10.0.0.0 — 10.255.255.255
172.16.0.0 — 172.31.255.255
192.168.0.0 — 192.168.255.255

2. Что такое белый/серый IP адрес?
Для того, чтобы подключиться к сети Инетрнет, нужно подключиться к компьютеру, который уже подключён к Интернету и является частью самого Интернета (этот компьютер имеет реальный, так называемый БЕЛЫЙ IP-адрес в Интернете). При подключении к нему Ваш компьютер также получает реальный IP адрес в Интернете.
Но с развитием Интернета реальных адресов стало не хватать, да и стоимость каждого адреса была довольно высока. Поэтому была придумана технология (NAT), при которой компьютер или даже целая локальная сеть получала возможность пользоваться ресурсами Интернета, подключив к Интернету лишь один компьютер этой сети, который имел 2 IP-адреса: 1. IP-адрес Итернета, 2. IP-адрес локалыной сети и был как бы мостом между локальной сетью и Интернетом. С тех пор 1. IP-адрес стали называть Белым (реальный адрес сети Интернет), а 2. Серым (адрес компьютера в локальной сети, подключённой к Интернету через 1 общий компьютер).

3. Как опредилить какой у меня адрес Белый или Серый ?
Если IP-адрес Вашего компьютера входит в один из диапазонов:
10.0.0.0 — 10.255.255.255
172.16.0.0 — 172.31.255.255
192.168.0.0 — 192.168.255.255
то он не используется в Интернете и является Серым, все остальные адреса являются Белыми, вне зависимости от типа Вашего подключения к Интернету.

4. Что такое порт и зачем он нужен ?
Каждый компьютер, подключённый к сети, имеет 65535 портов (это как бы 65535 дверей для создания подключений между 2-мя компьютерами). Как я уже указал, порт нужен для создания подключения Вашего компьютеру к другому компьютеру в сети. Если Ваш порт закрыт, то к Вашему компьютеру подключиться через эту "дверь" невозможно.

5. Рассмотрим случаи закрытых/открытых портов при торрент-обмене.
Уясним некоторые понятия:
сид (сидер) - участник торрент-обмена, имеющий 100% копию раздаваемого фала(ов) - раздающий;
личер - участник торрент-обмена, имеющий любой % копии, но не имеющий 100% копии раздаваемого фала(ов) - качающий и раздающий имеющиеся части другим личерам;
пир-любой участник торрент-обмена (сид и личер).

Итак, возьмем для примера двух пиров на раздаче один - сид, другой - личер. Имеем с ними три возможных ситуации:

1. Оба участника (сид и личер) - активные, с открытыми портами. Личер скачивает торрент-файл, трекер при запросе анноунса передает ему список сидов на раздаче, в котором по нашему примеру будет всего 1 сид. Далее, клиент личера пытается сесть (соединиться) к нему на порт. Т.к. сид с открытым портом, у личера это получается, и он начинает тянуть файл.
2. Один пир - активный, другой - нет. Если личер - с закрытым портом, то он сядет на открытый порт сида по алгоритму, описанному мной выше. Если личер с открытым портом, а сид - с закрытым, то сначала отдача не пойдет, а пойдет она тогда, когда сид в очередном анноунсе (или через технологии DHT/PEX) получит этого личера в списке пиров, и попытается к нему сесть на порт. Т.к. у личера порт открыт, сиду это удается. Клиент сида начинает обмениваться служебной инфой с этим пиром, "узнает", что пир - личер, и начинает ему отдавать файл.
3. Оба пира с закрытыми портами. Тут уже ни в какой комбинации они друг друга не увидят, только если не появится третий пир с открытым портом, который будет являться своего рода посредником, и работать по алгоритму из пункта 2.

6. Какие есть варианты решения проблемы открытия порта для раздачи?
1. Купить у Вашего провайдера реальный (белый) IP-адрес Интернета (обычно это идёт отдельной услугой), если провайдер предоставляет такую услугу.
2. Если провайдер не предоставляет этой услуги (бывают и такие случаи), то попробовать договориться о так называемом порт-маппинге(перенаправлении 1-го порта с компьютера, раздающего Инетрнет в локальной сети, на порт с таким же номером Вашего компьютера).
3. Если же провайдер предоставляет динамический белый IP-адрес, меняя его каждые 3-4 часа, то постоянное открытие порта невозможно (т.к. Вам прийдётся открывать его при каждой смене адреса).