Если вы живете в обычной семье, скорее всего, у вас есть смартфон, ноутбук, смарт-телевизор и, возможно, игровая консоль, подключенные к Интернету одновременно. Все эти устройства имеют один общедоступный IP-адрес, предоставленный вашим интернет-провайдером. Итак, когда вы загружаете видео на свой телефон, как маршрутизатор узнает, что видео нужно отправлять на ваш телефон, а не на смарт-телевизор?
Волшебством этого является процесс, называемый трансляцией сетевых адресов (NAT).
Частные и публичные IP-адреса
Ваш маршрутизатор создает частную локальную сеть внутри вашего дома. Он назначает частный IP-адрес (обычно начинающийся с 192.168... или 10.0...) каждому устройству, подключенному к Wi-Fi. Однако эти частные адреса не маршрутизируются в общедоступном Интернете.
Роль NAT
Когда вы нажимаете ссылку на видео на своем телефоне, ваш телефон отправляет запрос на маршрутизатор. Маршрутизатор просматривает запрос и выполняет несколько действий:
- Он записывает частный IP-адрес вашего телефона в таблицу перевода.
- Он заменяет частный IP-адрес вашего телефона общедоступным IP-адресом маршрутизатора.
- Он присваивает запросу уникальный «номер порта» и отправляет его в Интернет.
Для видеосервера запрос выглядит так, как будто он пришел напрямую от маршрутизатора. Сервер отправляет видеоданные обратно на общедоступный IP-адрес маршрутизатора, помеченный этим конкретным номером порта.
Доставка пакета
Когда видеоданные поступают к вам домой, маршрутизатор проверяет номер порта входящих данных, просматривает свою таблицу трансляции и говорит: «А, порт 55432 соответствует запросу, сделанному смартфоном на частном IP-адресе 192.168.1.5». Затем он пересылает данные на ваш телефон.
Весь этот процесс трансляции адресов и проверки портов происходит за миллисекунды для тысяч пакетов каждую секунду, гарантируя, что все в доме получат правильные данные без помех.
