Предположим, у нас есть роутер. Внешний IP у роутера 132.15.16.17, и он создают локальную подсеть за NAT с диапазоном 192.168.1.0/24.
В этой подсети два устройства: комп 198.168.1.2 и планшет 198.168.1.3. Комп связывается по TCP-IP с внешним IP 80.70.60.50.
При этом с компа отправляется пакет, где отправителем указан 198.168.1.2, а получателем 80.70.60.50. Роутер (NAT), естественно, при отправке пакета во внешнюю сеть меняет отправителя на 132.15.16.17.
Потом 80.70.60.50 шлет ответный пакет, где отправителем указан 80.70.60.50, а получателем 132.15.16.17. Роутер, получив этот пакет, меняет получателя на 198.168.1.2, благодаря чему комп и получает ответ.
Итак, собственно вопрос: откуда роутер (NAT) знает, что получателя в пакете нужно сменить именно с 132.15.16.17 на 198.168.1.2, а не на 198.168.1.3, например?
UPD: изначально я писал про пинги, тогда не знал, что это не то, что обычно в TCP/IP.