Как маршрутизатор знает, к какому устройству следует отправлять пакеты?

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

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

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

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

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

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

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

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

  • Как получить доступ к samba на гостевой Linux за VirtualBox NAT?
  • Как связать два маршрутизатора LAN с WAN
  • Настройка Iptables NATforwarding
  • Как сервер Http различает компьютеры за маршрутизатором
  • Совместное использование интернета через Ethernet и WiFi
  • Шпилька в Linux
  • Общие сведения о переадресации портов и NAT
  • Как взаимодействовать с устройствами, имеющими один и тот же IP-адрес
  • Как получить внешний IP-адрес (через NAT) из командной строки Windows?
  • Конфигурация сети VirtualBox
  • Подключение к гостевой системе VirtualBox (ubuntu) с хоста (osx) через NAT?
  • Давайте будем гением компьютера.