Для установки соединения используется уникальная связка "адрес-порт". Другими словами, с хостом, имеющим один IP-адрес, может быть установлено множество соединений. Однако каждое из этих соединений будет использовать различные порты. Как правило, механизм NAT используется в ситуации, когда несколько частных адресов отображаются на один действительный адрес.
Для пакетов, исходящих из NAT, частный адрес, указанный в заголовке пакета в поле отправителя, отображается в действительный адрес, выданный интернет-провайдером, а номер порта TCP/UDP отображается в другой номер порта TCP/UDP. Для пакетов, приходящих NAT, действительный адрес, указанный в заголовке пакета в поле получателя, отображается в оригинальный адрес интрасети (частный адрес), а номер порта TCP/UDP отображается обратно к оригинальному номеру порта TCP/UDP. При этом TCP- и UDP-порты выбираются динамически, чтобы отличить один компьютер внутри интрасети от другого. Механизм NAT поддерживает специальную таблицу, в которую заносятся сведения об отображениях. Благодаря этой таблице механизм поддерживает уже установленные соединения, .используя для передачи входящих пакетов ту же связку "адрес-порт", которая использовалась для установки соединения.
Для демонстрации принципов работы механизма NAT рассмотрим следующий пример. Допустим, имеется небольшая локальная сеть предприятия, в которой для адресации хостов используется идентификатор сети 192.168.0.0. Так же предприятию интернет-провайдером выделен некоторый адрес a.b.c.d. Механизм NAT отображает все частные адреса в сети 192.168.0.0 в IP-адрес a.b.c.d (рис. 14.10).
Рис. 14.10. Пример работы механизма NAT
Допустим, пользователь локальной сети предпринимает попытку соединиться с веб-сервером, имеющим действительный адрес e.f.g.h. В этом случае клиентский компьютер формирует IP-пакет со следующей информацией в заголовке: