1

Извините, если это действительно глупый вопрос; мои сетевые знания довольно скудны.

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

Но теперь, как веб-серверу удается отправить запрос обратно на локальный компьютер? Разве запрос не пришел с IP-адреса в локальной подсети? Где он взял IP-адрес маршрутизатора локальной машины? И даже если у него есть IP-адрес этого маршрутизатора, как пакет направляется на локальный компьютер, как только он попадает на маршрутизатор?

3 ответа3

2

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

не стесняйтесь обновлять / исправлять это, если найдено неправильно, но это - то, как это работает. Надеюсь это поможет.

1

Ответ веб-сервера обрабатывается так же, как запрос клиента. Это просто датаграммы IP.

У веб-сервера есть шлюз по умолчанию, на который он отправляет свой ответ. Ответ "прыгает через Интернет и в конечном итоге получен" клиентом, который отправил запрос.

Веб-сервер "ничего не знает" о маршрутизаторе запрашивающего клиента.

Редактировать:

Ваш комментарий выдает предположение, которое я сделал.

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

В этом случае IP-адрес клиентского компьютера будет преобразован маршрутизатором NAT в общедоступный IP-адрес, назначенный "внешнему" интерфейсу маршрутизатора NAT. Маршрутизатор NAT отслеживает запрос так, что ответ направляется обратно клиенту, когда он получен из Интернета.

0

Ответ лежит в SPI - Stateful Packet Inspection. Вот как маршрутизатор отслеживает, куда отправить ответ в своей подсети. Я сам не знаю всех мелочей (мне никогда не нужно было знать), но если вы перейдете по ссылке, вы найдете столько, сколько вам, вероятно, нужно знать. Если нет, поиск по "Stateful Packet Inspection" заполнит все пробелы.

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