Хотя IP-адреса привязаны к определенной сети, Ethernet-адреса - нет. Почему это?
2 ответа
Поскольку IP-адреса доступны из любого места в Интернете, а Ethernet-адреса находятся в одной сети.
IP использует специфичные для маршрутизации префиксы адресов, такие как 12.34.*.*
или 56.7.89.*
, направляются в конкретные сети, которые "владеют" этими адресами. Эти маршруты распространяются по всему Интернету с использованием BGP. Это работает, потому что все компьютеры в сети имеют адреса с одинаковым префиксом.
(IP-маршрутизация является иерархической - сеть может иметь собственные внутренние маршруты для более длинных префиксов. Я думаю, что некоторые другие протоколы, такие как IPX, также были маршрутизируемыми, но без какой-либо иерархии.)
Между тем, адреса Ethernet назначаются практически случайным образом во время производства и не имеют ничего общего друг с другом. Таким образом, коммутаторы Ethernet должны "изучать" каждый адрес, который они видят в сети.
Большинство сетей достаточно малы, чтобы коммутаторы Ethernet могли отслеживать все компьютеры в сети, но для того же всего Интернет-соединения требовалось бы гораздо больше памяти и ресурсов процессора в коммутаторах, чем для IP-маршрутизации. (Существует чуть более 500 тысяч маршрутов IPv4, и все "базовые" маршрутизаторы должны знать их все - для многих маршрутизаторов достаточно небольшой части. Если бы у вас был маршрут для каждого адреса Ethernet, я думаю, это было бы не менее 8000 тысяч ...)
Таким образом, адреса Ethernet используются только в той же сети, в которой находится компьютер. (Остальной Интернет не заботится о них.)
Если физический адрес был "для каждой сети", то каждому устройству потребовалась бы конфигурация для подключения к каждой сети, что сделало бы автоматическую настройку невозможной (по крайней мере, DHCP может отправить конфигурацию на физический адрес, зная, что только одно устройство примет ее; если у вас не настроен физический адрес, вы можете транслировать только новые конфигурации, что может привести к дублированию)