
Я не понимаю, зачем нужны MAC-адреса Ethernet. Разве нельзя просто подключить все компьютеры к единой сети и использовать IP-адреса для связи?
Например, в Ethernet существует следующий механизм:
- Компьютер с IP
192.168.1.1
(X.1
) хочет отправить пакет на192.168.1.2
(X.2
) X.1
использует ARP для получения MAC-адресаX.2
- Для этого
X.1
необходимо отправить пакет всем компьютерам в сети; ответит только один X.1
получает MAC и отправляет пакет
Не проще ли было бы сделать всего один шаг:
X.1
отправляет пакет всем компьютерам в сети; только один из нихX.2
его обработает, остальные его проигнорируют
Дополнительным вопросом будет: зачем нужны IP-адреса, если все устройства имеют уникальные MAC-адреса?
решение1
Theразличные сетевые уровнипредназначены для того, чтобы их можно было заменить другими технологиями.
Два уровня, о которых вы здесь говорите, — это уровни 2 и 3. Уровень 2 в этом сценарии — это Ethernet, из которого возникают MAC-адреса, а уровень 3 — это IP.
Ethernet работает только на локальном уровне, между сетевыми устройствами, подключенными к широковещательной сети «канал передачи данных», тогда как IP является маршрутизируемым протоколом и поэтому может быть нацелен на устройства в удаленных сетях.
Требования каждого из них различны. Ethernet определяет семейство технологий, которые позволяют отправлять и получать пакеты между сетевыми устройствами, тогда как IP определяет протокол, который позволяет пакетам данных проходить через несколько сетей.
Ни один из них не зависит от другого, что и придает сетям гибкость. Например, вы можете выбрать подключение к интернет-сервису с помощью IP через Ethernet, но в своей внутренней сети вы можете выбрать IP через... бумагу. Где кто-то записывает содержимое каждого пакета и физически переносит его на другую машину и печатает. Очевидно, что это не будет особенно быстро, но это все равно будет IP, при условии, что человек, носящий с собой бумажки, будет соблюдать правила маршрутизации IP.
В реальном мире существуют различные протоколы передачи данных, два из которых вы уже используете (хотя их схемы адресации одинаковы): 802.3 - Ethernet и 802.11 - Wi-Fi.
IP не имеет значения, какой уровень лежит в основе.
Аналогично, IP может быть заменен на другие протоколы сетевого уровня (при условии, что это происходит для всех участников). Например:банкомат.
Хотя ничто напрямую не препятствует созданию протокола, охватывающего как уровень 2, так и уровень 3, он будет менее гибким, а потому менее привлекательным и вряд ли будет использоваться.
решение2
Где будет приниматься решение о том, обрабатывать или игнорировать пакет? Ни один ответ не является действительно удовлетворительным:
1) В коммутаторе? Ну, это означало бы, что коммутаторы должны понимать каждый протокол, который определяет, какие компьютеры заинтересованы в каких пакетах. Это не только увеличило бы стоимость коммутаторов и снизило бы их скорость, но и значительно усложнило бы внесение изменений в протокол IP.
2) В оборудовании интерфейса Ethernet? Ну, это сделало бы сеть намного медленнее, поскольку каждый пакет данных должен был бы идти на каждую машину. Такие технологии, как WiFi и мостовые сети с более медленными мостами были бы невозможны. Взаимодействие Ethernet, работающего на разных скоростях, было бы невозможно. Такие технологии, как IPv6 или многоадресная IP-рассылка, потребовали бы изменений в оборудовании для развертывания на всех конечных станциях Ethernet.
3) В программном обеспечении? Ну, это сделало бы компьютеры намного медленнее, поскольку им пришлось бы иметь дело с гораздо большим количеством прерываний сетевого интерфейса. Все упомянутые выше проблемы с мостами, VPN и Wifi тоже были бы проблемами.
Все это сделало бы Ethernet непригодным для использования без IP и означало бы, что для внесения изменений в IP потребовалось бы внесение изменений в Ethernet. Фу.
Разделение интересов — это хорошо.
решение3
IP-адрес и MAC-адреса работают на разных уровняхнабор интернет-протоколовMAC-адреса используются для идентификации машин в одной и той же широковещательной сети на уровне 2, тогда как IP-адреса используются на уровне 3 для идентификации машин в разных сетях.
Даже если у вашего компьютера есть IP-адрес, ему все равно нужен MAC-адрес, чтобы найти другие машины в той же сети, поскольку каждый уровень использует нижележащие уровни. На странице, упомянутой ранее, вы можете найти несколько хороших диаграмм, подробно объясняющих набор протоколов.
решение4
Проблема перегрузки возникает в сетях Ethernet по мере увеличения их размера. Это, в свою очередь, может задушить сеть и вызвать задержку. Это один из факторов, который привел к появлению концепции подсетей. Но с подсетями нам нужна дополнительная сущность, называемая маршрутизатором, чтобы пакеты могли перемещаться от машины в одной подсети к машине в другой подсети.
Расстояние, охватываемое кабелем Ethernet, является еще одной серьезной проблемой, поскольку оно может ограничить успешность передачи, если оно выходит за определенные пределы. Это привело к появлению новых сущностей в виде концентратора/повторителя.
Обратите внимание, что все механизмы связи не используют MAC-адрес для связи. PPP и HDLC не используют MAC-адрес для идентификации.
Также обратите внимание, что некоторые сети не используют Ethernet. Для сетей Token Ring требуется другой уровень канала передачи данных.
Если вы отправите пакет из сети A на устройство в сети B, обращаясь через MAC-адрес устройства в сети B, он будет отброшен в самой сети A. Обратите внимание, что даже если между сетями A и B есть маршрутизатор, маршрутизатор отбросит пакет, поскольку маршрутизатор работает, принимая пакеты, адресованные на его MAC-адрес, но для другого IP-адреса.
Из вышеприведенных сценариев совершенно ясно, что Интернет не является плоской сетью из-за различных локальных/частных сетей. Существуют также различные сетевые сущности между источником и местом назначения.
Поскольку Интернет не является плоской сетью, MAC-адрес не используется для всех типов связи, а некоторым сетям требуется другой уровень канала передачи данных, отличный от Ethernet, нам нужен IP-адрес для маршрутизации его к нужному узлу независимо от местоположения узла, и это достигается с помощью сетевого уровня.
Также см. аналогичное обсуждение вhttps://stackoverflow.com/questions/26290069/arp-vs-ip-why-do-we-need-both