Учитывая NAT, когда несколько компьютеров используют один IP-адрес, как NAT может узнать, куда отправлять входящие данные. Он переводит идентификаторы SYN-ACK?
Когда устройство подключается к серверу на другой стороне маршрутизатора, оно использует исходный порт из своего временного диапазона портов. Обычно это порт между 49152 и 65535, который назначается случайным образом. Маршрутизатор NAT записывает этот номер порта, а также IP-адрес назначения в таблицу преобразования NAT. Когда данные начинают возвращаться с сервера, он ищет их в этой таблице.
Учитывая NAT, когда несколько компьютеров используют один IP-адрес, как NAT может узнать, куда отправлять входящие данные.
Не будучи запрограммированным на Альгеймера как на модель. В основном у него есть память - о том, какие внутренние порты / IP-адреса соответствуют внешнему целевому порту / IP, чтобы он мог выполнять перевод. Для TCP это просто, для UDP внутренняя программа лучше регулярно отправляет пакеты извне (чтобы NAT обновлял таблицу маршрутизации).
Он переводит идентификаторы SYN-ACK?
Нет, правильный NAT не соответствует протоколу TCP. ЭТО для того, чтобы убедиться, что TCP не работает.
Шутка в сторону - ЕСТЕСТВЕННО он должен делать переводы, когда это необходимо, иначе это нарушит реализацию. NAT должен быть прозрачным, поэтому он должен выполнять все необходимые преобразования.