Ваши заявления концептуально правильны, хотя детали не совсем правильные.
Протокол уровня 3, такой как IP, может маршрутизировать пакет из его источника в пункт назначения по всему Интернету, но протокол уровня 2, такой как ethernet, может маршрутизировать только пакеты для одного хопа. Когда устройство передает пакет в сети TCP/IP, он должен знать адрес ethernet (уровень 2) следующего перехода и IP (уровень 3) адреса конечного адресата пакета.
Давайте рассмотрим два случая, которые вы описываете, используя сценарий, в котором пользователь на устройстве A знает IP-адрес устройства B и хочет отправить ему пакет.
Устройства на одной и той же (неотключаемому) подсети
- Пользователь на устройстве выдает команду
ping 10.1.1.23
.
- Устройство A транслирует запрос ARP (уровень 2), спрашивая, какое устройство в своей сети может маршрутизировать пакет на IP-адрес 10.1.1.23.
- Устройство B распознает IP-адрес как свой собственный и отвечает на запрос, возвращая пакет с его IP-адресами и адресами Ethernet в качестве источника, а адреса IP-адреса и Ethernet-адреса устройства A в качестве адресата.
- Теперь устройство A имеет все необходимое для связи с устройством B. Каждый пакет, который он передает на устройство B, будет иметь правильные адреса ethernet и IP-адреса в качестве адресата.
Устройство на том же (включено) подсети
- Пользователь на устройстве выдает команду
ping 10.1.1.23
.
- Устройство A транслирует запрос ARP (уровень 2), спрашивая, какое устройство в своей сети может маршрутизировать пакет на IP-адрес 10.1.1.23.
- Коммутатор принимает пакет на одном из своих портов и повторно передает тот же пакет на том, какой порт подключен к устройству B. Это единственное существенное различие между коммутируемыми и неперепутанными подсетями.
- Устройство B распознает IP-адрес как свой собственный и отвечает на запрос, возвращая пакет с его IP-адресами и адресами ethernet в качестве источника, а IP-адрес и Ethernet-адреса устройства A в качестве адресата.
- Теперь устройство A имеет все необходимое для связи с устройством B. Каждый пакет, который он передает на устройство B, будет иметь правильные адреса ethernet и IP-адреса в качестве адресата.
Устройства в разных подсетях
- Пользователь на устройстве выдает команду
ping 8.8.8.8
.
- Устройство A транслирует запрос ARP (уровень 2), спрашивая, какое устройство в своей сети может маршрутизировать пакет на IP-адрес 8.8.8.8.
- Адрес 8.8.8.8 находится в другой сети, поэтому локальное устройство не распознает адрес как собственный. Однако маршрутизатор видит пакет, проверяет его таблицы маршрутизации и видит, что он знает, как пересылать пакеты в сеть 8.8.8.x. Таким образом, маршрутизатор отвечает, возвращая пакет, у которого есть собственный Ethernet-адрес в качестве источника.
- Теперь устройство A может связываться с устройством B путем отправки пакетов, у которых есть IP-адрес назначения 8.8.8.8, но адрес сети маршрутизатора в качестве адресата.
- Маршрутизатор получает пакеты, потому что они предназначены для своего адреса ethernet (layer 2), но он отмечает, что их IP-адрес назначения (уровень 3) отличается от своего собственного, и поэтому он перенаправляет их на любой адрес, который хранится в его таблицу маршрутизации.
На самом деле, для связи в одном и том же сегменте сети требуется _nothing_ за пределами двух хостов. Переключатель уровня 2 может обеспечивать фильтрацию, но не требуется для подключения. –
Согласен. Просто кроссовый кабель или прямой кабель и одна из двух карт NIC, способных MDIX-Auto. –