Пробивка отверстий UDP

редактировать

Пробивка отверстий UDP - это широко используемый метод, используемый в приложениях трансляции сетевых адресов (NAT) для поддержки Протокол пользовательских дейтаграмм (UDP) потоки пакетов, проходящие через NAT. Методы обхода NAT обычно требуются для сетевых приложений клиент-клиент в Интернете с участием хостов, подключенных в частных сетях, особенно в одноранговых сетях. -peer, Direct Client-to-Client (DCC) и Развертывания по протоколу передачи голоса по Интернет-протоколу (VoIP).

Пробивка отверстий UDP устанавливает связь между двумя хосты обмениваются данными через один или несколько трансляторов сетевых адресов. Обычно сторонние узлы в сети общественного транспорта используются для установления состояний порта UDP, которые могут использоваться для прямого обмена данными между взаимодействующими узлами. После того, как состояние порта было успешно установлено и узлы обмениваются данными, состояние порта может поддерживаться либо обычным коммуникационным трафиком, либо при его длительном отсутствии пакетами keep-alive, обычно состоящими из пустых пакетов UDP или пакеты с минимальным ненавязчивым содержимым.

Содержание
  • 1 Обзор
  • 2 Поток
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки
Обзор

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

Хосты с сетевым подключением внутри частной сети, подключенные через NAT к Интернету, обычно используют Утилиты обхода сеанса для NAT (STUN) или Установление интерактивного подключения ( ICE) для определения публичного адреса NAT, который требуется его узлам связи. В этом процессе другой хост в общедоступной сети используется для установления сопоставления портов и другого состояния порта UDP, которое считается допустимым для прямой связи между хостами приложений. Поскольку состояние UDP обычно истекает через короткие промежутки времени в диапазоне от десятков секунд до нескольких минут, а порт UDP закрывается в процессе, пробивка отверстий UDP использует передачу периодических пакетов подтверждения активности, каждый из которых продлевает срок службы. счетчики времени в конечном автомате UDP NAT.

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

При более сложном подходе оба хоста начнут отправлять друг другу сообщения, используя несколько попыток. На Restricted Cone NAT первый пакет от другого хоста будет заблокирован. После этого устройство NAT имеет запись об отправке пакета на другую машину и пропускает любые пакеты, приходящие с этого IP-адреса и номера порта. Этот метод широко используется в программном обеспечении одноранговой сети и телефонии по протоколу передачи голоса по Интернет-протоколу. Его также можно использовать для помощи в создании виртуальных частных сетей, работающих через UDP. Тот же метод иногда применяется к соединениям Протокол управления передачей (TCP), но с меньшим успехом, поскольку потоки соединений TCP управляются ОС хоста, а не приложением, а порядковые номера выбираются случайным образом; таким образом, любое устройство NAT, которое выполняет проверку порядкового номера, не будет считать пакеты связанными с существующим соединением и отбрасывать их.

Поток

Пусть A и B - два хоста, каждый в своей частной сети; N A и N B - два устройства NAT с глобально доступными IP-адресами EIP A и EIP B соответственно; S - это общедоступный сервер с хорошо известным глобально доступным IP-адресом.

  1. A и B каждый начинают диалог UDP с S; устройства NAT N A и N B создают состояния трансляции UDP и назначают временные номера внешних портов EP A и EP B
  2. S проверяют пакеты UDP, чтобы получить исходный порт, используемый N A и N B (внешние порты NAT EP A и EP B)
  3. S проходят EIP A : EP A в B и EIP B : EP B в A
  4. A отправляет пакет в EIP B : EP B.
  5. NAпроверяет пакет A и создает следующий кортеж в его таблице преобразования: (Source-IP-A, EP A, EIP B, EP B)
  6. B отправляет пакет EIP A : EP A
  7. NBпроверяет пакет B и создает следующий кортеж в его таблице преобразования: (Source-IP-B, EP B, EIP A, EP A)
  8. В зависимости от состояния таблицы трансляции N A, когда приходит первый пакет B (то есть, является ли кортеж (Source-IP-A, EP A, EIP B, EP B) был создан к моменту прибытия первого пакета B), первый пакет B отброшен (нет записи в таблице трансляции) или сдано (запись в таблице перевода ha s).
  9. В зависимости от состояния таблицы трансляции N B, когда приходит первый пакет A (т. е. был ли кортеж (Source-IP-B, EP B, EIP A, EP A) к моменту прибытия первого пакета A), Первый пакет A отбрасывается (нет записи в таблице трансляции) или передается (запись в таблице трансляции сделана).
  10. В худшем случае второй пакет от A достигает B; в худшем случае второй пакет от B достигает A. Отверстия в NAT "пробиты", и оба хоста могут связываться напрямую.
  • Если оба хоста имеют Restricted cone NATs или Symmetric NATs, внешние порты NAT будут отличаться от портов, используемых с S. На некоторых маршрутизаторах внешние порты выбираются последовательно, что позволяет установить диалог путем определения ближайших портов.
См. также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-20 05:43:00
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте