В обычных сетях, поскольку каждый хост имеет уникальный IP-адрес, распознаваемый станциями в сети, почему все еще необходим MAC-адрес?
Предположим, станция A хочет отправить на станцию B. Станции A известен IP-адрес станции B. Но станция A все равно будет отправлять ARP для запроса MAC-адреса B перед отправкой. А затем, получив MAC-адрес B, A отправит данные с MAC-адресом B в качестве адреса назначения.
Почему B не может просто принять пакет точно так же, как он отвечает на ARP, отправленный A? Тогда, таким образом, станции A не нужно будет отправлять ARP, чтобы запросить MAC-адрес, и это также устранит необходимость в MAC-адресе. Более того, IP-адреса уникальны среди сетевых станций, зачем нужен другой MAC-адрес для распознавания станций?
Потому что вам нужен уникальный идентификатор, встроенный в сетевую карту для идентификации станции, если у вас нет IP-адреса. Или как система должна получить действующий IP-адрес с помощью DHCP, если нет идентификации станции, которая хочет его получить?
И поскольку IP - это не единственный протокол, который вы можете отправлять через Ethernet, сама сеть Ethernet должна предоставлять уникальный идентификатор, позволяющий использовать разные протоколы.
Во-первых, могу ли я поддержать ответ Дэна; правильное исследование предмета намного лучше, чем задавать вопросы, каждый из которых проливает лишь один свет в темноту. Я бы рекомендовал Иллюстрированный TCP / IP Стивена, которая является сетевой библией; моя копия Vol. 1 очень сильно сломан в позвоночнике от чрезмерного использования. Но поскольку вы задали вопрос, и я напечатал половину ответа, когда подошел Дэн, позвольте мне нажать «Все равно опубликовать», не снимая шляпы со старыми администраторами.
Отчасти это историческое. MAC-адреса относятся к уровню 2, а IP-адреса относятся к уровню 3 (см., Например, эта страница в Википедии для более подробной информации о слоях).
Почему это разделение? Что ж, когда был изобретен Ethernet, IP был не единственной сетевой технологией, которую можно было использовать в сети Ethernet. Я сам в середине 80-х широко использовал DECnet, работающий через Ethernet, и у него не было IP-адресов. Более того, вполне возможно запускать IP через сетевые технологии, отличные от Ethernet, которые не имеют MAC-адресов; На ум приходят сети token-Ring, как и SLIP).
Если бы Ethernet и IP были соединены вместе, как вы предлагаете, ни то, ни другое не было бы возможным. Да, оглядываясь назад, становится ясно, что IP был большой победой в межсетевом взаимодействии, но в 1981 году это было не так ясно, и тогда разделение двух уровней было определенно правильным решением.
xENOn, это вопрос, который я задавал себе много раз в прошлом. На самом деле, это произвольно, потому что, как любезно упомянул MadHatter, существуют типы IP-сетей, которые хорошо работают без физического адреса. То есть теоретически нет необходимости в дополнительном типе адреса. Однако MAC-адрес удобен, когда IP-адреса распределяются автоматически, например с помощью DHCP, потому что DHCP-серверу необходимо однозначно знать, какой хост обнаружил какой IP-адрес или что ни одному хосту не были предоставлены дополнительные незапрошенные IP-адреса. Без MAC-адреса вам нужно было бы вручную установить IP-адреса для каждого хоста, то есть не очень практично, когда у вас большое количество хостов, и что-то вроде кошмара для ИТ-администраторов. Когда дело доходит до локальных каналов Ethernet, у вас нет особого выбора, поскольку подсистема Ethernet распознает только кадры Ethernet, то есть каждая схема интерфейса Ethernet отфильтровывает все кадры Ethernet, которые не имеют ни своего собственного, ни широковещательного / многоадресного MAC-адреса. как адрес назначения. Только те кадры, которые выдерживают эту внешнюю фильтрацию, фактически доставляют свои полезные данные IP на уровень IP. Надеюсь, это несколько помогло вам раскрыть тайну.