5

Я понимаю причину, по которой публичные IP-адреса необходимы для того, чтобы, если бы у нас был только MAC для перемещения данных между одним хостом и другим, весь Интернет был бы единой плоской сетью. Но зачем нужны частные IP-адреса? Почему маршрутизаторы не могут просто подключиться к локальным клиентам, используя их MAC-адрес?

8 ответов8

7

Ответ заключается в том, что ваши программные приложения и операционная система предназначены для связи по протоколу TCP/IP, а не напрямую с MAC-адресацией Ethernet.

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

Сетевой стек операционной системы определяет локальный или удаленный IP-адрес:

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

Примечание: вполне возможно, что IP-пакеты будут доставлены в другом протоколе передачи данных, отличном от Ethernet (угадайте, что ваш модем удаленного доступа или DSL не подключен к вашему провайдеру через кабель Ethernet). И приложения не должны заботиться, пока IP-адрес назначения доступен. Также полностью возможно обернуть данные других сетевых протоколов (которые не являются IP-пакетами) в кадр Ethernet для передачи.

2

В конечном итоге все пакеты доставляются на MAC-адрес. Когда IP-пакет прибывает на ваш маршрутизатор и таблица NAT показывает, что он предназначен для вашего частного адреса 192.168.1.10, маршрутизатор выполнит поиск MAC-адреса 192.168.1.10 и отправит пакет на него. MAC-адрес.

Однако MAC-адрес является адресом уровня 2, и по определению разрешает связь только между элементами в локальной сети. Таким образом, вопрос «почему частные адреса, а не MAC-адреса» предполагает, что все непубличные сети являются простыми одноуровневыми сетями.

Частных корпоративных сетей, состоящих из одной локальной сети, почти нет, а во многих домашних средах есть несколько сетей. Для маршрутизации между этими сетями вам необходим протокол уровня 3, такой как IP.

Поэтому другой способ сформулировать ваш вопрос будет следующим: «Почему производители маршрутизаторов и разработчики ОС не создают локальную сеть только для уровня 2 в тех особых случаях, когда уровень 3 не является абсолютно необходимым?». И ответ на этот вопрос заключается в том, что не стоит создавать нишевое решение для сценария, в котором существующее общее решение уже работает идеально. Там не было бы никакой пользы вообще.

1

Если бы MAC использовался для маршрутизации, ваша таблица маршрутизации содержала бы маршруты к каждому узлу в сети, потому что MAC-адреса различны для каждого производителя.

IP подобен стандартной платформе для общения сетевых устройств разных производителей. А с использованием IP вы можете суммировать маршрут ко многим устройствам в сети, экономя пропускную способность и ресурсы. Модель OSI позволяет лучше понять, как работают сети.

Я считаю, что без этого стандарта сама сеть не будет развиваться так, как сегодня.

0

Для IoT использование IP-адресов обычно является большей проблемой, чем помощью. Во-первых, в сегменте доступно только 253 IP-адреса. Это было нормально, когда в типичном доме было 2 или 3 компьютера. Но теперь у него может быть 50 или 60 устройств, и к тому времени вы включите телефоны, планшеты, ноутбуки, потоковые медиа-боксы и т.д.

Когда IoT набирает обороты, и здесь я имею в виду реальные приложения, такие как сигнализация, климат-контроль и т.д., А не говорящие холодильники, вы можете легко получить несколько сотен. Это будет означать сегментные мосты и совершенно новый уровень сложности для домашней ЛВС.

Кроме того, если устройства IoT могут обмениваться данными по MAC-адресу и никогда не иметь IP-адреса, они, как было отмечено, невидимы для внешнего мира, а "I" в IP означает "Интер". Это означает, что им не нужен уровень безопасности, аутентификация, ARP/RARP и т.д. Значительно упрощает и делает устройства IoT более доступными. Вполне вероятно, что некоторые части инфраструктуры IoT, такие как, например, панель сигнализации домашней системы безопасности, должны будут получить IP-адрес, чтобы она могла взаимодействовать с внешним миром. Но только этот компонент будет обременен IP, безопасностью, DHCP и т.д.

Таким образом, возможно, ответ заключается в том, чтобы иметь устройства IoT "уровня 0" и "уровня 1" с уровнем 0, поддерживающим только обмен MAC-адресами, а уровень 1 является полноценным IP-устройством?

Мы также должны перейти от 48-битного MAC-адреса к 64-битному MAC-адресу и, возможно, расширить его до 12 ~ 18 байт. Нижние 8 байтов будут 64-битным MAC-адресом, а верхние байты будут десятичной системой функций и возможностей устройства. Это позволило бы самоорганизующимся сетям, так что расширение, скажем, системы сигнализации или добавление видеодисплея было бы прозрачным (можно сказать Plug'nPlay из-за связанной травмы) для пользователя.

Самым большим препятствием для этого является то, что коммутаторы используют MAC-адреса, но очень волнуются, если у устройства нет IP-адреса. Но у сетевых поставщиков это возможность продать нам совершенно новое поколение коммутаторов, поддерживающих устройства уровня 0 :-).

0

Одна из причин в том, что MAC-адреса на самом деле не являются "маршрутизируемыми". IP есть, поэтому проще хранить IP-адреса для внутренних и внешних адресов. Кроме того, вы не получаете доступ к другим компьютерам только по MAC-адресу, вы используете IP. Затем маршрутизатор решает, предназначен ли он для внутреннего или внешнего

0

Также обратите внимание, что MAC-адреса не используются во всех типах сетевых сред.

Например, протоколы, используемые в двухточечных соединениях, таких как T1 (PPP, HDLC), не используются.

0

Сетевое общение делится на несколько уровней. На рисунке здесь показана модель OSI. Каждый слой имеет свою цель. Снизу диаграммы

я. Физический уровень: этот уровень является реальной средой, которая соединяет устройства, это может быть кабель CAT5, оптоволокно и т.д.

ii) Уровень канала передачи данных: этот уровень заботится о физической адресации и коммутации пакетов, контрольной сумме и т. д.

iii) Сетевой уровень: этот уровень заботится о логической адресации и маршрутизации пакетов.

и так далее

Это помогает разделить различные функции сетевого стека. так что слои не зависят от других слоев.

Теперь перейдем к вашему вопросу.

MAC-адрес находится на канальном уровне, функция которого заключается в физической адресации. Функция сетевых уровней заключается в предоставлении логического адреса узлу связи, поэтому при обмене данными между двумя устройствами они должны быть адресованы своим сетевым адресом. Кроме того, они могут даже не иметь один и тот же канальный уровень, т. Е. Поэтому один из узлов может даже не иметь MAC-адрес.

0

Маршрутизаторы разрешают ip to mac на каждом шаге, потому что нам нужен mac адрес независимо от того, что отправлять пакеты. Но если мы начнем отправлять данные, используя mac-адрес получателя, нам придется искать всю сеть. IP-адреса логически находят машины в сети. Представьте себе сценарий, в котором мы находимся в подсети «B» и хотим общаться с машиной в подсети «A». При логической адресации группы машин в подсети «A» и «B» имеют IP-адреса в последовательностях. Это может быть не так с mac-адресами, машины в «A» или «B» могут иметь различные mac-адреса без связи между ними. Таким образом, Ip помогает нам решить, каким путем идти от хоста к пункту назначения, и сообщает нам, где находится пункт назначения.

Надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .