WikiDer > Пробивка отверстий (сеть)
Пробивка отверстий (или иногда пробивать) - техника в компьютерная сеть для установления прямой связи между двумя сторонами, в которых одна или обе находятся позади брандмауэры или позади маршрутизаторы это использование преобразование сетевых адресов (NAT). Чтобы пробить дыру, каждый клиент подключается к неограниченному стороннему серверу, на котором временно хранятся внешние и внутренние адрес и порт информация для каждого клиента. Затем сервер передает информацию каждого клиента другому, и, используя эту информацию, каждый клиент пытается установить прямое соединение; в результате соединений, использующих допустимые номера портов, ограничительные брандмауэры или маршрутизаторы принимают и пересылают входящие пакеты на каждой стороне.
Пробивка отверстий не требует знания топологии сети. Пробивка отверстий ICMP, Пробивка отверстий UDP и Пробивка отверстий TCP соответственно используйте Сообщение управления Интернетом, Датаграмма пользователя и Протоколы управления передачей. Используя гнусную пробивку отверстий TCP, можно отправлять сжатые пакеты SYN по общему пути ACK.
Обзор
Сетевые устройства с общедоступными или глобально доступными IP-адреса могут легко создавать связи между собой. Клиенты с частными адресами также могут легко подключаться к общедоступным серверам, если клиент за маршрутизатором или брандмауэром инициирует соединение. Однако пробивка отверстий (или другая форма Обход NAT) требуется для установления прямого соединения между двумя клиентами, которые находятся за разными межсетевыми экранами или маршрутизаторами, которые используют трансляция сетевых адресов (NAT).
Оба клиента инициируют соединение с неограниченным сервером, который записывает информацию о конечных точках и сеансах, включая общедоступный IP-адрес и порт, а также частный IP-адрес и порт. Брандмауэры также обращают внимание на конечные точки, чтобы позволить ответам от сервера пройти обратно. Затем сервер отправляет информацию о конечной точке и сеансе каждого клиента другому клиенту или партнеру. Каждый клиент пытается подключиться к своему одноранговому узлу через указанный IP-адрес и порт, которые брандмауэр однорангового узла открыт для сервера. Новая попытка подключения пробивает брешь в брандмауэре клиента, поскольку теперь конечная точка становится открытой для получения ответа от своего партнера. В зависимости от условий сети один или оба клиента могут получить запрос на подключение. Успешный обмен одноразовый идентификатор аутентификации между обоими клиентами указывает на завершение процедуры пробивки отверстий.[1]
Примеры
VoIP продукты, игровые онлайн-приложения и P2P все сетевое программное обеспечение использует перфорацию.
- Программное обеспечение телефонии Skype использует перфорацию, чтобы пользователи могли общаться с одним или несколькими пользователями на слух.[2]
- В динамичных многопользовательских онлайн-играх может использоваться техника дырокола или пользователям необходимо создать постоянный отверстие в брандмауэре для уменьшения задержки в сети.
- VPN такие приложения, как Хамачи или же ZeroTier используйте пробивку отверстий, чтобы пользователи могли напрямую подключаться к подписанным устройствам за межсетевыми экранами.
- Децентрализованный одноранговый обмен файлами программное обеспечение полагается на перфорацию при распространении файлов.
Требования
Для надежной перфорации требуется согласованная трансляция конечных точек, а для нескольких уровней NAT - трансляция шпильки.
Когда исходящее соединение от частной конечной точки проходит через межсетевой экран, оно получает общедоступную конечную точку (общедоступный IP-адрес и номер порта), и межсетевой экран транслирует трафик между ними. Пока соединение не будет закрыто, клиент и сервер обмениваются данными через общедоступную конечную точку, а межсетевой экран направляет трафик соответствующим образом. Согласованная трансляция конечной точки повторно использует одну и ту же общедоступную конечную точку для данной частной конечной точки вместо выделения новой общедоступной конечной точки для каждого нового соединения.
Трансляция с помощью шпильки создает петлевое соединение между двумя собственными частными конечными точками, когда распознает, что конечной точкой назначения является она сама. Эта функция необходима для пробивки отверстий только при использовании в многоуровневом NAT.[1]
Смотрите также
Рекомендации
- ^ а б Форд, Брайан; Шрисуреш, Пида; Кегель, Дэн (2005), Одноранговая связь через трансляторы сетевых адресов
- ^ Шмидт, Юрген (2006), Уловка с дырой