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

lang2

2 ответа2

2

Коммутатор не будет отправлять пакеты обратно их источнику, а маршрутизаторы обычно подключаются через коммутаторы. Поэтому было бы катастрофично, если бы машина просто предполагала, что что-то отправит пакеты обратно к ней. Они никогда не надеваются на провод.

В сети Ethernet каждый одноадресный пакет имеет аппаратный адрес Ethernet машины назначения, на которую пакет отправляется в этой сети. Нет никаких причин, по которым машина когда-либо отправляла бы пакет с собственным адресом в качестве пункта назначения, и результаты этого были бы непредсказуемыми - некоторые сети возвращали бы его, а некоторые - нет.

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

1

Если вы отключите сетевой кабель, вы увидите, что вы все равно можете открыть браузер и подключиться к локальному веб-серверу через локальный IP-адрес.

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