Здравствуйте, хочу задать вопрос знающим людям, суть вопроса такова:
У нас есть Интернет провайдер, который дал мне белый адрес, но также мы знаем,что подключенные компьютер, ноутбук и телефон, к моему роутеру имеют серые адреса, как работает адресация, если я хочу отправить какому либо компьютеру файл, через интернет, про NAT я знаю, вопрос в том, как именно роутер к которому приходит пакет, понимает какому из всех подключенных к нему устройств адресован пакет.
Этим занимается протокол ARP
сначала отправляется широковещательный запрос в сеть "кто имеет ip-адрес 1.2.3.4?"
устройство отвечает -"Я 1.2.3.4 и мой МАС=AA:BB:CC:DD:EE:FF"
далее спрашивающий уже формирует пакеты с данными, для получателя AA:BB:CC:DD:EE:FF
при этом роутер(свич) запоминает информацию и далее пакет автоматически переправляется на соответствующий разъем, основываясь на МАС-адресе.
Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.
Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись об n-м порте за сроком давности.