Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Перфорация (или иногда сквозной ) представляет собой метод в компьютерных сетях для установления прямого соединения между двумя сторонами , в которых один или оба находятся за брандмауэрами или за маршрутизаторами , что использование трансляции сетевых адресов (NAT). Чтобы пробить дыру, каждый клиент подключается к неограниченному стороннему серверу, который временно хранит внешний и внутренний адрес и порт.информация для каждого клиента. Затем сервер передает информацию каждого клиента другому, и, используя эту информацию, каждый клиент пытается установить прямое соединение; в результате соединений, использующих допустимые номера портов, ограничительные брандмауэры или маршрутизаторы принимают и пересылают входящие пакеты на каждой стороне.

Пробивка отверстий не требует знания топологии сети. ICMP перфорация , UDP перфорация и TCP перфорирования соответственно использовать сообщение Internet Control , Datagram пользователя и Transmission Control Protocols . Используя гнусную пробивку отверстий TCP, можно отправлять сжатые пакеты SYN по общему пути ACK.

Обзор [ править ]

Сетевые устройства с общедоступными или глобально доступными IP-адресами могут легко создавать соединения между собой. Клиенты с частными адресами также могут легко подключаться к общедоступным серверам, если клиент за маршрутизатором или брандмауэром инициирует соединение. Однако для установления прямого соединения между двумя клиентами, которые оба находятся за разными межсетевыми экранами или маршрутизаторами, использующими трансляцию сетевых адресов (NAT), требуется пробивка отверстий (или какая-либо другая форма обхода NAT) .

Оба клиента инициируют соединение с неограниченным сервером, который записывает информацию о конечных точках и сеансах, включая общедоступный IP-адрес и порт, а также частный IP-адрес и порт. Брандмауэры также обращают внимание на конечные точки, чтобы позволить ответам сервера проходить обратно. Затем сервер отправляет информацию о конечной точке и сеансе каждого клиента другому клиенту или партнеру. Каждый клиент пытается подключиться к своему одноранговому узлу через указанный IP-адрес и порт, которые брандмауэр однорангового узла открыт для сервера. Новая попытка подключения пробивает брешь в брандмауэре клиента, поскольку теперь конечная точка становится открытой для получения ответа от своего партнера. В зависимости от условий сети один или оба клиента могут получить запрос на подключение. Успешный обмен одноразовым идентификатором аутентификациимежду обоими клиентами указывает на завершение процедуры пробивки отверстий. [1]

Примеры [ править ]

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

  • Программное обеспечение для телефонии Skype использует перфорацию, чтобы пользователи могли общаться с одним или несколькими пользователями с помощью звука. [2]
  • В динамичных многопользовательских онлайн-играх может использоваться техника пробивания отверстий или пользователям необходимо создать постоянное отверстие в брандмауэре , чтобы уменьшить задержку в сети.
  • Приложения VPN, такие как Hamachi или ZeroTier, используют пробивку отверстий, чтобы пользователи могли напрямую подключаться к подписанным устройствам за межсетевыми экранами.
  • Программное обеспечение для децентрализованного однорангового обмена файлами полагается на перфорацию при распространении файлов.

Требования [ править ]

Надежная пробивка отверстий требует согласованной трансляции конечных точек и для нескольких уровней NAT - трансляции шпильки.

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

Трансляция с помощью шпильки создает петлевое соединение между двумя собственными частными конечными точками, когда распознает, что конечной точкой назначения является она сама. Эта функция необходима для перфорации только при использовании в многоуровневом NAT. [1]

См. Также [ править ]

Ссылки [ править ]

  1. ^ а б Форд, Брайан; Шрисуреш, Пида; Кегель, Дэн (2005), Одноранговая связь через преобразователи сетевых адресов
  2. Перейти ↑ Schmidt, Jürgen (2006), The hole trick