15

Мой вопрос касается не как он движется через Интернет, а как он проходит через роутер на определенное устройство. Все устройства, подключенные к маршрутизатору в домашней сети, имеют одинаковый внешний IP-адрес. Скажем, устройство A загружает страницу, и пакеты отправляются из внешнего источника в маршрутизатор, поскольку пакеты знают внешний IP-адрес устройства A и могут получить доступ к маршрутизатору. Но как теперь добраться до устройства А? Как маршрутизатор узнает, что нужно отправить его на устройство A вместо устройства B?

Я думаю, что это касается NAT, но я просто ищу логическое объяснение того, что NAT делает для достижения этой цели.

2 ответа2

11

Когда вы инициируете соединение с внешним сайтом, маршрутизатор каждый раз использует другой номер порта источника ... затем он использует этот номер порта источника (куда возвращаются данные) в качестве ключа для поиска, на какой машине из вашей внутренней сети пришел запрос. Это называется преобразованием адресов в портах (в отличие от преобразования сетевых адресов, когда у вашего маршрутизатора есть несколько сетевых адресов).

1

Обычно все устройства из домашней сети имеют разные внутренние адреса (частный адрес, всегда 192.168.0.1 ~ 192.168.0.255).

Когда пакет отправляется из домашней сети (скажем, устройство A: 192.168.0.123), когда он проходит через маршрутизатор, маршрутизатор преобразует частный адрес во внешний адрес маршрутизатора (предположим, это 140.191.2.5), и маршрутизатор также записывает это отображение в нате.

Когда ответ возвращается, маршрутизатор сопоставляет NAT и находит исходный источник устройства A.

поэтому устройство A в конечном итоге получит пакет.

Это просто концепция, для более подробной информации, пожалуйста, обратитесь к вики: NAT.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .