Назад | Перейти на главную страницу

NAT: если два хоста инициируют соединение с одним и тем же IP: PORT с одним и тем же исходным ПОРТом, как маршрутизатор обрабатывает это?

Я просто подумал, и мне в голову пришла эта идея.

Допустим, у меня есть хосты A и B в моей локальной сети. У меня есть маршрутизатор и хост C в Интернете. Я знаю, что при инициировании соединения исходный порт выбирается случайным образом, но что произойдет, если два хоста выберут одно и то же при инициировании одного и того же хоста: порт?

A:10123 -> C:80
B:10123 -> C:80

Как маршрутизатор узнает, какие пакеты принадлежат каждому?

Ура.

Тот факт, что хосты A и B выбрали порт 10123, не означает, что это порт, который использует маршрутизатор. Маршрутизатор подключается к хосту C через порт источника по своему выбору. Итак, связь выглядит примерно так:

                                  router
                          +--------------------+
A:(src:10123, dest:80) -> | A:10123 -> C:43775 | -> C:80
B:(src:10123, dest:80) -> | B:10123 -> C:43776 | -> C:80
                          +--------------------+

Я с Лаурентиу, маршрутизатор отправит пакет на основе IP-адреса из A или B. Ответный пакет будет выглядеть так:

Source IP: C
Source Port: 80
Destination IP: A (or B)
Destination Port 10123

Маршрутизатор направит пакет на правильный хост.

Если маршрутизатор настроен с PAT, маршрутизатор назначит IP NAT / PAT и новые случайные исходные порты для исходящих пакетов.

Маршрутизатор имеет таблицу маршрутизации с IP-адресом. Он запоминает конкретный IP-адрес, чтобы определить, какой хост сделал запрос, и направить этот ответный пакет на этот конкретный хост.