Jump to content

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

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

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

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

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

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

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

Схема последовательности сообщений UDP Hole Punching
Схема последовательности сообщений с узлами A и B с использованием сервера S для установления связи.

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

  1. Каждый из A и B начинает диалог UDP с S; Устройства NAT NA и NB создают состояния трансляции UDP и назначают временные номера внешних портов ePort и ePort B. A
  2. S проверяет пакеты UDP, чтобы определить исходный порт, используемый N A и N B (внешние порты NAT ePort A и ePort B ).
  3. S информирует B о значениях eAddr A :ePort A значениях eAddr B :ePort B. и информирует A о
  4. A отправляет пакет на eAddr B :ePort B , а B отправляет пакет на eAddr A :ePort A (не обязательно одновременно и в каком-либо определенном порядке).
    • Когда эти пакеты покидают частную сеть, каждое устройство NAT добавляет запись в свою таблицу трансляции:
      • N A проверяет пакет A и обнаруживает, что запись уже существует (iAddr A , iPort A , eAddr A , ePort A ), но пункт назначения другой (S). N A создаст новую запись с тем же переводом для трафика, полученного из A ( iAddr A ) в B (eAddr B ).
      • N B проверяет пакет B и обнаруживает, что запись уже существует (iAddr B , iPort B , eAddr B , ePort B ), но пункт назначения другой (S). N B создаст новую запись с тем же переводом для трафика, полученного из B (iAddr B ) в A (eAddr A ).
    • В зависимости от состояния таблицы трансляции каждого NAT по прибытии пакета удаленного устройства:
      • Если новая запись уже была добавлена ​​в таблицу трансляции NA до прибытия пакета B, то NA пропускает пакет B, но в противном случае отбрасывает его.
      • Если новая запись уже была добавлена ​​в таблицу трансляции N B до прибытия пакета A, то N B пропускает пакет A, но в противном случае отбрасывает его.
  5. Как только оба NAT добавят эти кортежи, в NAT «пробиваются дыры», позволяя обоим хостам напрямую взаимодействовать.
  • Если оба хоста имеют NAT с ограниченным конусом или симметричный NAT , внешние порты NAT будут отличаться от портов, используемых с S. На некоторых маршрутизаторах внешние порты выбираются последовательно, что позволяет установить диалог путем угадывания соседних портов.

См. также

[ редактировать ]
  1. ^ Форд, Брайан; Кегель, Дэн; Срисуреш, Пида (01 марта 2008 г.). «Пробивка отверстий UDP, состояние одноранговой (P2P) связи через трансляторы сетевых адресов (NAT)» . ietf.org . Проверено 22 июня 2016 г.
  2. ^ «Простая безопасность в CPE шлюза IPv6» . ietf.org. 01.01.2011 . Проверено 22 июня 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 38869af6fa756214805d84528f44de08__1701593100
URL1:https://arc.ask3.ru/arc/aa/38/08/38869af6fa756214805d84528f44de08.html
Заголовок, (Title) документа по адресу, URL1:
UDP hole punching - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)