UDP пакет, который должен пройти сквозь NAT теряется

Пытаюсь реализовать алгоритм, пробивающий NAT, делаю это следующим образом: Хост А с порта Х отправляет хосту Б UDP пакет на порт Y. Этот пакет должен отсеяться NAT'ом хоста Б, а маршрутизатор хоста А должен добавить в свою таблицу запись об этом пакете, благодаря которой пакет данных хоста Б, отправленный на порт Х, с порта Y должен достичь хоста А. Всё тестировал на своем собственном роутере, отправлял сам себе пакеты данных на внешний ip роутера (внешний ip моего роутера отличается от моего ip в интернете).

Суть проблемы: Пакет данных, отправленный с порта Y просто не доходит.

Однако, если я перед отправкой первого пакета (тот, что идёт с порта Х) открою с помощью UPnP порт Y, а после отправки сразу же его закрою, то пакет данных с порта Y благополучно доходит до порта Х, хотя порт X всё так же закрыт. Почему такое происходит? NAT ведь не может отследить дошел ли пакет до получателя.


Ответы (0 шт):