Только если исходным портом исходящей исходящей дейтаграммы был также порт N, и если NAT не решил использовать исходный порт.
То есть первая UDP-датаграмма с компьютера A выглядит так в вашей локальной сети:
Source IP: MachineAPrivate
Source Port: PortA <-- note this is typically different than the destination port
Destination IP: MachineBPublic
Destination Port: PortN
Затем, после того, как он переведен NAT в исходящем направлении, он выглядит следующим образом:
Source IP: NATPublic
Source Port: PortC <-- note this may or may not be the same as "PortA" above
Destination IP: MachineBPublic
Destination Port: PortN
Теперь, когда машина B отвечает, ответ обычно выглядит так:
Source IP: MachineBPublic
Source Port: PortN
Destination IP: NATPublic
Destination Port: PortC
Затем, после прохождения входящего процесса трансляции NAT:
Source IP: MachineBPublic
Source Port: PortN
Destination IP: MachineAPrivate
Destination Port: PortA
Итак, если машина A отправляет кадр с того же порта источника, что и порт назначения ("Порт N"), и если NAT способен сохранить этот порт источника (т. Е. Он настроен на сохранение портов источника, когда это возможно, и этого порта источника не используется), ТОГДА можно ожидать ответа на "Порт N", чтобы вернуться к Машине А.
Вот официальная ссылка на правильное поведение NAT UDP:
RFC 4787 / BCP 127: требования к трансляции сетевых адресов (NAT) для одноадресного UDP