Пробивка отверстий udp и NAT конуса с ограничением портов

Я хотел бы понять, как работает пробивка отверстий udp, когда два хоста, каждый из которых находится за NAT с ограниченным конусом портов, устанавливают соединение.

Как я понял, это происходит в несколько этапов и задействует три хоста.

Хост A и хост B находятся за конусом NAT с ограничением портов.

Хост C - это сервер, который может получать пакеты от хостов A и B.

  1. A отправляет пакет на C.
  2. C получает пакет от A и определяет внешний адрес A: пара портов
  3. B отправляет пакет в C.
  4. C получает пакет от B и определяет внешний адрес B: пара портов
  5. C отправляет внешний адрес: порт B на A
  6. C отправляет внешний адрес: порт A на B
  7. A отправляет пакет_1 на внешний адрес B
  8. B отправляет пакет_2 на внешний адрес A

. Вопросы следующие:

Как может A за ограниченным конусным NAT получить пакет от B, который также находится за ограниченным конусным NAT ?

Конусный NAT с ограничением портов не позволяет принимать пакеты, в которых пара исходный адрес: порт не совпадает с парой пакетов адрес назначения: порт, отправленных им. Почему другие пакеты, отправленные между A и B, поступают в A и B?

Это потому, что NAT конуса с ограниченным портом рассматривает пакет_2 как ответ от B?

Таким образом, пакет_1 будет потерян, но пакет_2 прибывает в B. Am Я прав?

Заранее благодарю.

5
задан Ralf 4 November 2011 в 05:46
поделиться