Зачем использовать IP, если у нас уже есть MAC-адрес?

17

Я готовлюсь к экзаменам ICND1 и недавно начал изучать различные устройства Cisco. Я только что узнал, как генерируется пакет для передачи по сети или за ее пределами.

Например, когда пакет генерируется, он добавляет IP-адрес источника, IP-адрес назначения, Mac-адрес источника, Mac-адрес назначения и другие данные.

Поскольку коммутатор является устройством уровня 2 и использует MAC-адреса для взаимодействия с другими хостами в сети, то почему мы используем IP-адреса в наших локальных сетях?

Что если кому-то не нужно подключаться к какому-либо узлу или сети за пределами его собственной сети? Почему ему все еще нужен IP-адрес, разве недостаточно MAC-адреса?

Суфиян Гори
источник
Этот вопрос появляется время от времени. отличный ответ здесь: serverfault.com/questions/410626/…
выход
Вот еще одна ссылка на похожую тему, на которой есть еще несколько полезных сведений - superuser.com/questions/830857/…
Картик Балагуру,
я удивлен, как вы не нашли это: ip и mac объяснили
cbt nuggets

Ответы:

21

Поскольку коммутатор является устройством уровня 2 и использует MAC-адреса для взаимодействия с другими хостами в сети, то почему мы используем IP-адреса в наших локальных сетях?

Что ж, начнем с того, какой трафик вы отправляете.

Если вы используете протокол строгого уровня 2 в своей локальной сети без HTTP , SSL, NFS , CIFS , iSCSI , H.323 , SIP , DNS , ICMP , баз данных или веб-сокетов, тогда ваше предложение будет работать нормально. На самом деле, FCoE не полагается на уровень IP ... так что если это то, что вы хотите, вырубитесь :-)

Проблема в том, что вы просто нанесли ущерб 95% полезности большинства сетей, удалив эти IP-сервисы. Существуют сети для обмена информацией; все операционные системы на планете обмениваются информацией путем привязки сервисов и инкапсуляции внутри IP. Эта информация обычно также заключена в TCP.

  • Риторический вопрос : может ли группа решительных людей внедрить службы TCP и UDP непосредственно поверх Ethernet во всех основных операционных системах?
  • Педантичный ответ : Да, но это колоссальная трата времени и ресурсов для незначительной выгоды. Давайте начнем с основ ... нет DNS -службы имен для локальных Mac-адресов. Это означает, что если вы не создадите его, как вы будете разрешать URL-адреса без IP-адресов? Я сомневаюсь, что кто-то действительно хочет печатать http://00c0.9b4a.fb2c/просто так, чтобы они могли избежать 20 дополнительных байтов в каждом пакете. Это всего лишь пример требуемой работы.

Что если кому-то не нужно подключаться к какому-либо узлу или сети за пределами его собственной сети? Почему ему все еще нужен IP-адрес, разве недостаточно MAC-адреса?

Технически да. В реальном мире ... это довольно скучная сеть без IP.

Майк Пеннингтон
источник
8

(не это снова)

Слой 2 против Слоя 3

IP работает на уровне 3. Он передается через Ethernet (уровень 2), который использует MAC для идентификации узлов. Используйте другой уровень 2 (скажем, ATM), и у вас не будет MAC. (Или используйте другой уровень 3, скажем, IPX, и у вас не будет IP.)

Рики Бим
источник
1
По ощущениям круговой ответ. «Зачем использовать IP, если у нас уже есть MAC? Потому что вам нужен IP для использования IP». Конечно, первоначальный вопрос состоит в том, чтобы задать вопрос «Что для нас делает Слой 3, чего не может слой 2?» или что-то.
Смитерс
Нет, это все равно что спрашивать "зачем водить машину, когда у меня есть телевизор". Это совершенно разные вещи. Ethernet (L2) использует MAC. IP (L3) использует IP-адреса. IP может передаваться через Ethernet, но это только один из длинного списка L2, который можно использовать.
Рикки Бим
0

Без IP вы бы имели широковещательный трафик по всему миру для каждого неизвестного / устаревшего MAC-адреса в системе (неизвестный одноадресный).

Кроме того, IP помогает эффективно логически планировать сеть (например, с помощью суммирования IP-адресов), чтобы маршрутизаторы могли использовать меньше памяти для таблиц маршрутизации и пересылки информации.

Сергей
источник
-3

просто предположим, что у нас есть 2 подключенных устройства, и у каждого есть сетевая карта. Теперь, если на каждом устройстве был только один сервис (не совсем сервис, что-то вроде программного обеспечения osm, ...), вы правы, не нужно IP, но учтите, что на каждом устройстве есть много сервисов, и эти сервисы должны взаимодействовать. друг с другом без каких-либо конфликтов. поэтому в дополнение к MAC-адресу для идентификации устройства нам нужно что-то еще (мы называем это IP) для каждого сервиса.

Али
источник
1
Чтобы различать разные сервисы на одном устройстве, используются порты TCP или UDP.
Гербен