NAT при отправке запроса "наружу" выделяет какой-то внешний порт и
запоминает соответствие внешний порт - внутренний порт/IP (он же
порт источника). При поступлении ответа на внешний порт пакет
транслируется NAT'ом на соответствующий внутренний порт/IP. Внешний
порт держится открытым какие-то время. Но не меньше 15-30 сек. Если
устройство хотя бы раз в 15 сек шлёт какой-то пакет присутствия, то
всегда извне можно достучаться до этого устройства по внешнему IP и
внешнему порту причём совершенно асинхронно.