На этот вопрос уже есть ответ здесь:
У меня дома три компьютера подключены к роутеру. Я уверен, что мой маршрутизатор имеет только один адрес. Когда пакет поступает с компьютера 1, IP-адрес источника преобразуется в IP-адрес маршрутизатора.
Допустим, оба компьютера 1 и 2 имеют доступ к одному и тому же пункту назначения, на этот раз запись в NAT будет иметь один и тот же адрес назначения. Итак, как пакет пересылается сюда?
Когда пакет прибывает из пункта назначения, как пакеты различаются между компьютером 1 и 2? У меня есть маршрутизатор Belkin, он генерирует много адресов источника. Например, динамический NAT, каждый источник IP преобразуется в другой IP-адрес? Как это генерирует пул адресов.
networking
router
nat
dexterous_stranger
источник
источник
Ответы:
Маршрутизатор не только переводит адрес источника, но также переводит порт источника. Когда две машины в сети делают похожие запросы, например, посещая superuser.com по адресу 198.252.206.16:80, маршрутизатор переводит исходные порты в уникальные. Когда ответы поступают, маршрутизатор может различать оба на основе своих портов назначения и обращается к таблице соединений, чтобы увидеть, какой из них должен быть перенаправлен на какой компьютер. В примере двух пользователей, просматривающих Super User, таблица соединений может выглядеть примерно так:
источник
Домашние маршрутизаторы выполняют NAPT, сетевой адрес и преобразование портов. Это означает, что порт источника также изменяется, а не только адрес источника. Обычно каждому соединению присваивается уникальный номер внешнего порта, как маршрутизатор распознает соединение. Это также означает, что вы можете иметь только 65535 одновременных подключений независимо от того, сколько устройств находится за маршрутизатором.
источник