Каково точное использование MAC-адреса?

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

Я не думаю, что он сидит там без причины. Итак, мой вопрос: где именно MAC-адрес входит в игру во время пакетной передачи?

TL; DR> MAC-адреса являются компонентом низкого уровня сети Ethernet (и некоторыми другими аналогичными стандартами, такими как WiFi). Они позволяют устройству общаться с машиной на локальной физической сети (ЛВС) и не могут быть маршрутизированы через Интернет, потому что физическое оборудование может быть теоретически подключено в любой точке мира.

В отличие от этого IP-адреса охватывают весь Интернет, а маршрутизаторы используют их для определения того, куда отправлять данные, даже если для достижения цели требуется несколько перелетов, – но они не помогают взаимодействовать с физическим оборудованием в вашей локальной сети.

Если бы мы когда-либо находили лучший стандарт, чем Ethernet, он мог бы не использовать MAC-адреса, но IP-трафик из Интернета все равно мог бы протекать через него, даже если другие люди в Интернете никогда не слышали об этом.

Если бы мы когда-либо находили лучший стандарт, чем IP (например, IPv6, если все адреса IPv4 закончились), большинство аппаратных средств Ethernet могло переносить новый тип трафика без изменений, а простое обновление прошивки и прошивки исправило бы большинство остальных.

MAC-адреса необходимы для локальной сети (или Wi-Fi). Они позволяют сетевому устройству привлекать внимание одного напрямую подключенного устройства, хотя физическое соединение является общим. Это может быть важно, когда тысячи устройств соединены вместе в рамках одной организации. Они не выполняют никаких функций в более широком Интернете.

Чтобы действительно понять ответ на этот вопрос, вам нужно понять модель OSI (иногда называемую 7-слойной) .

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

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

Вместо этого проблема сетевого взаимодействия была разделена на слои, и каждый уровень знал, как говорить с соответствующим слоем на удаленной машине, и как взаимодействовать со слоем ниже (а иногда и выше) на его локальной машине. Он ничего не знал о каких-либо других уровнях на месте – так что вашему веб-браузеру не нужно заботиться о том, работает ли он на машине, использующей кольцо токенов, сеть Ethernet или Wi-Fi, и определенно не нужно знать, какое оборудование Удаленная машина использует.

Чтобы сделать эту работу, 7-слойная модель использует систему скорее как вложенные конверты; Приложение создает свои данные и переносит их в конверт для операционной системы. ОС обертывает это в другой конверт и передает его сетевому драйверу. Драйвер сети обертывает это в еще один конверт и помещает его в физический кабель. И так далее.

Нижний слой, уровень 1 , является физическим уровнем. Это слой проводов и транзисторов и радиоволн, и на этом слое связь в основном представляет собой поток одних и нот. Данные идут повсюду, что физически связано. Вы подключаете сетевой порт своего компьютера к коммутатору с помощью кабеля CAT-5.

Уровень 2 – это уровень канала данных. Это обеспечивает некоторую структуру тем и качеству, некоторые возможности обнаружения ошибок и коррекции, а также некоторые указания о том, какое физически подключенное устройство (физические соединения здесь могут быть на самом деле выше Wi-Fi) должно обратить внимание на сообщение. Это слой, в который входят MAC-адреса, и мы вернемся к нему позже. Но MAC-адреса – это не единственная возможность на этом уровне. Например, сети Token Ring нуждаются в другой реализации линии передачи данных.

Уровень 3 – это сетевой уровень. Это уровень, на котором работает IP (хотя он не является единственным протоколом сетевого уровня), и именно это позволяет компьютерам отправлять сообщение, которое может попасть на любую машину в любом месте «сети». Не должно быть прямой связи между рассматриваемыми машинами.

Слои 4-7 являются протоколами более высокого уровня. Они становятся все дальше от аппаратного обеспечения и ближе к приложению. TCP, например, находится поверх IP и предоставляет механизмы, которые автоматически отправляют сообщения, когда они пропадают.

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

Предположим, у меня есть приложение, которое хочет отправить некоторые данные на компьютер с IP-адресом 8.8.8.8

Слой 3 завершает данные в конверте, который содержит, помимо прочего, IP-адрес 8.8.8.8, а затем передает его на уровень 2.

Уровень 2 смотрит на этот IP-адрес и решает, к какой машине, с которой он напрямую подключен, способен справиться с этим сообщением. Он будет иметь таблицу поиска выбора непосредственно подключенных IP-адресов вместе с соответствующим MAC-адресом сетевой карты на этом компьютере. Эта таблица поиска построена с использованием протокола ARP, который позволяет сетевой карте задавать вопросы другим напрямую подключенным устройствам. Ethernet резервирует специальный MAC-адрес, FF: FF: FF: FF: FF: FF, который позволяет устройству разговаривать со всеми физически подключенными устройствами.

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

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

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

Этот процесс удаления внешнего конверта и обертывания содержимого в новом конверте, адресованном следующему шагу в цепочке, будет продолжаться до тех пор, пока сообщение не достигнет машины назначения.

Затем конверты будут продолжать сорваться, когда сообщение вернется к слоям до тех пор, пока оно не достигнет своего предполагаемого получателя, и это будет приложение, которое, надеюсь, будет знать, что делать с сообщением, но не будет знать, как Сообщение получено и не все шаги, необходимые для получения ответа на исходную машину.

Но все работает, почти как волшебство!

Обратите внимание, что сетевые коммутаторы могут использовать MAC-адреса для оптимизации потока сетевого трафика. В то время как концентратор ethernet просто перенаправляет весь входящий трафик на все его порты, напротив, коммутатор может перенаправлять трафик только на один порт, к которому подключен MAC-адрес назначения пакета. Это увеличивает эффективную пропускную способность сети; Путем ориентации на определенные порты, коммутатор избегает перенаправления трафика на ненужные сегменты сети. Коммутатор будет использовать ARP или пакетное обнюхивание, чтобы определить, какие устройства подключены к этому порту. Переключатели полностью игнорируют содержимое пакетов уровня 2.

Для чего используются MAC-адреса?

MAC-адреса – это основы низкого уровня, которые делают вашу сеть на основе сети Ethernet.

Сетевые карты имеют уникальный MAC-адрес. Пакеты, которые отправляются в ethernet, всегда поступают с MAC-адреса и отправляются на MAC-адрес. Если сетевой адаптер принимает пакет, он сравнивает MAC-адрес назначения пакета с собственным MAC-адресом адаптера. Если адреса совпадают, пакет обрабатывается, в противном случае он отбрасывается.

Существуют специальные MAC-адреса, например ff: ff: ff: ff: ff: ff, который является широковещательным адресом и адресовывает каждый сетевой адаптер в сети.

Как IP-адреса и MAC-адреса работают вместе?

IP – это протокол, который используется на уровне над ethernet. Другим протоколом, например, будет IPX.

Когда ваш компьютер хочет отправить пакет на некоторый IP-адрес xxxx, тогда первая проверка будет, если адрес назначения находится в той же сети IP, что и сам компьютер. Если xxxx находится в одной сети, IP-адрес назначения может быть достигнут напрямую, в противном случае пакет должен быть отправлен на настроенный маршрутизатор.

До сих пор ситуация ухудшилась, потому что теперь у нас есть два IP-адреса: один – это целевой адрес исходного IP-пакета, другой – IP-адрес устройства, которому мы должны отправить пакет (следующий хоп, либо конечный Адресата или маршрутизатора).

Поскольку ethernet использует MAC-адреса, отправителю необходимо получить MAC-адрес следующего перехода. Для этого используется специальный протокол ARP (протокол разрешения адресов). После того как отправитель получил MAC-адрес следующего перескока, он записывает целевой MAC-адрес в пакет и отправляет пакет.

Как работает ARP?

ARP сам по себе является протоколом выше ethernet, например IP или IPX. Когда устройство хочет узнать MAC-адрес для заданного IP-адреса, он отправляет пакет на широковещательный MAC-адрес с запросом «Кто имеет IP-адрес yyyy?» Все устройства получают этот пакет, но только тот, у которого есть IP-адрес yyyy, ответит пакетом «Это я». Запрашивающее устройство получает ответ и теперь знает, что MAC-адрес источника является правильным MAC-адресом для использования. Конечно, результат будет кэшироваться, поэтому устройству не нужно каждый раз разрешать MAC-адрес.

маршрутизация

Я почти забыл упомянуть: нет маршрутизации на основе MAC-адресов. Низкоуровневые Ethernet-адреса и MAC-адреса могут использоваться только для каждого устройства в одной сети (проводной или беспроводной). Если у вас есть две сети с маршрутизатором между вами, вы не можете иметь устройство в сети. A отправьте пакет на MAC-адрес устройства в сети B. Ни одно устройство в сети A не имеет MAC-адрес устройства в сети B, поэтому Пакет на этот MAC-адрес будет отброшен всеми устройствами в сети A (также маршрутизатором).

Маршрутизация выполняется на уровне IP. Просто видно, что маршрутизатор просто выполняет то, что я описал выше, в разделе «Как работают IP-адреса и MAC-адреса?». Маршрутизатор получит пакеты для своего собственного MAC-адреса, но для другого IP-адреса. Затем он проверяет, может ли он напрямую достичь целевого IP-адреса. Если это так, он отправляет пакет цели. В противном случае сам маршрутизатор также настроен на восходящий маршрутизатор и отправит пакет этому маршрутизатору.

Конечно, вы можете настроить несколько маршрутизаторов. На вашем домашнем маршрутизаторе будет настроен только один маршрутизатор upstream, но в магистрали Интернета большие маршрутизаторы имеют большие таблицы маршрутизации, чтобы они знали наилучшие способы для всех пакетов.

Другие варианты использования для MAC-адресов

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

  2. Беспроводные точки доступа часто используют MAC-адреса для контроля доступа. Они разрешают доступ только к известным устройствам (MAC-адрес уникален и идентифицирует устройства) с правильной кодовой фразой.

  3. DHCP-серверы используют MAC-адрес для идентификации устройств и предоставления некоторым устройствам фиксированных IP-адресов.

MAC-адрес (адрес управления доступом к среде передачи данных) в общем случае является идентификатором устройств в сети. Таким образом, каждая сетевая карта (контроллер сетевого интерфейса, найденная в маршрутизаторе, ПК, сетевом принтере, сервере и т. Д.) Имеет MAC-адреса. Некоторые серверы имеют более одной сетевой карты, встроенной и, следовательно, имеют несколько MAC-адресов. MAC-адрес составляет 6 байтов (6 октетов). Слева – это самый старший байт и правый младший байт. Как вы можете видеть на рисунке ниже, первые 3 байта являются Организационно уникальным идентификатором . Это указывает производителя, который сделал это устройство.

Вот список организационно уникального идентификатора : Standards.ieee.org

Вот альтернатива вышеперечисленному: MAC-Vendor-Lookup

Несколько примеров известных известных производителей:

  • 00-05-5D (D-Link Systems Inc.)
  • 00-09-5B (Netgear Inc.)
  • 00-E0-4C (Realtek Semiconductor Corp.)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (Samsung Electronics)

Последние 3 байта (3 октета) произвольно назначаются изготовителем.

Поскольку pjc50 правильно указал MAC-адрес в сети Ethernet, коммутаторы решают, какой пакет отправить туда. Существует также широковещательный-MAC-адрес. Ff: ff: ff: ff: ff: ff используется для широковещательного-MAC-адреса. Обратите внимание, что MAC-адрес можно изменить, поэтому будьте осторожны, используя его как определенный идентификатор устройства! MAC-адрес также используется с протоколом ARP (протокол разрешения адресов). Итак, как это работает, ПК A отправляет ARP-запрос на ПК B со своим IP-адресом, MAC-адресом, IP-адресом получателя и указанным выше широковещательным адресом (ff: ff: ff: ff: ff : и далее). После этого ПК B проверяет, был ли пакет отправлен ему или нет. Если да, то ПК B отправляет свой собственный MAC-адрес, IP-адрес, MAC-адрес получателя и IP-адрес получателя. Другие устройства отбрасывают пакет.

Оба ПК A и B обычно сохраняют успешное соединение в так называемом ARP-кэше. Способ сохранения соединения с компьютером отличается от устройства к устройству. Если вы не знаете IP-адрес, вы можете получить IP-адрес с протоколом разрешения обратного адреса (RARP). С RARP устройство связывается с центральным клиентом и запрашивает его для IP-адреса. Но этот метод вряд ли используется в наши дни.

Следующие технологии используют формат идентификатора MAC-48:

  • Ethernet
  • Беспроводные сети 802.11
  • блютуз
  • IEEE 802.5 Token Ring
  • Большинство других сетей IEEE 802
  • FDDI
  • ATM (только виртуальные виртуальные соединения, входящие в NSAP-адрес) Fibre Channel и Serial Attached SCSI (как часть всемирного имени)

Они используются для пакетной передачи: в сети Ethernet есть несколько устройств, а MAC-адрес указывает, какое устройство должно получить пакет. Коммутаторы Ethernet будут использовать его для выбора порта для отправки входящего пакета.

Забудьте об иерархии в этом случае, это не очень важная проблема.

MAC-адрес – это адреса для уровня 2 (уровень связи) в моделях ISO / OSI или TCP / IP. IP-адреса от уровня 3 (сетевой уровень) в тех же моделях.

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

Пакеты – это данные уровня 3, обычно IP-пакеты. Они перемещаются по одной или нескольким доменам конфликтов. IP-адреса – это адреса этого домена.

Коммутаторы – это устройства уровня 2 и прямые кадры с использованием таблиц MAC-адресов. Маршрутизаторы – это устройства уровня 3, и они пересылают пакеты, используя таблицы IP-адресов.

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

Если у вас есть несколько компьютеров, подключенных к коммутатору, и вам не понадобится трафик с другими сетями / Интернетом через маршрутизатор, вам действительно не нужно будет запускать IP-адрес. Конечно, приложение должно было бы реализовать или предоставить свой собственный протокол выше уровня 2, так как почти все операционные системы и приложения предполагают, что вы всегда хотите использовать TCP / IP.

Всегда помните, что «Интернет» в IP означает «межсетевое взаимодействие », что означает, что он действительно заинтересован в том, чтобы трафик между сетями был больше, чем в сети, хотя, очевидно, он может быть и используется для этого.

MAC-адрес используется для физического переноса. Адаптер ethernet ничего не знает об IP. Таким образом, адаптер ethernet использует MAC-адрес для адресации получателя пакета данных.

Если адаптер Ethernet знает что-либо об IP, мы должны обновить все наши прошивки, чтобы перейти на новый протокол (например, IPv4 на IPV6).

Также MAC-адрес содержит некоторую информацию о нем производителя.

Он используется, когда протокол ARP (протокол разрешения адресов) для IPv4 или протокол NDP (протокол обнаружения соседних абонентов) для IPv6 преобразует IP-адреса в MAC-адреса, чтобы определить, какой уникальный хост должны отправлять кадры.

Чтобы выполнить другие ответы, я бы добавил, что MAC-адрес еще более критичен для маршрутизаторов, чем для коммутаторов. Что более важно, так это то, что коммутаторы действительно не нужны для существования сети IP. Я смотрю на 20 лет назад (до RJ-45). Локальные IP-сети работали отлично без коммутаторов. Немаршрутизированные сетевые сети просто соединяли устройства по одному и тому же кабелю (например, посмотрите на технологию ethernet-технологии X base-T).

С другой стороны, IP-сети были изобретены для поддержки маршрутизации и используются схемы MAC и IP-адресации.

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

Что касается заголовков сетевых пакетов, это означает, что пакет, отправленный на шлюз, будет иметь в качестве цели в заголовке уровня Ethernet MAC-адрес шлюза, а заголовок уровня IP останется неизменным.

Вы также должны заметить, что MAC-адреса обычно означают теперь MAC-48 (адрес физического устройства) или EUI-48 (адрес логического устройства) или даже 8-байтовые адреса EUI-64, используемые в больших сетях. Исторически MAC был изобретен технологией Xerox для Ethernet, а затем повторно использован для других технологий сетевого транспорта (802.11, Bluetooth, FibreChannel, BlueTooth), необходимых для идентификации устройства.

Как я уже сказал, вы можете использовать другой уровень-2 вместо ethernet, но большинство использует MAC-адрес в качестве сетевого идентификатора и схему соответствия MAC / IP, и вы все равно можете использовать ARP. Насколько я знаю, все стеки IP основываются на таблице соответствий между MAC-адресами и IP-адресами.

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

Вспомните дни предварительного переключения (концентраторы).

Если люди являются компьютерами, то MAC-адрес – это их имя.

Притворяться, что многие люди (компьютеры) находятся на одном телефонном звонке. В то же время все говорят.

Вы (один компьютер) слышите ВСЕ эту болтовню, но вы не знаете, что вам следует слушать, пока кто-то не скажет ваше имя (ваш MAC-адрес) в начале предложения (пакета).

"FRED, THERE IS ICE CREAM!"

Конечно, вы также слушаете предложения, отправленные на широковещательный адрес . Просто подумайте, что кто-то кричит,

"EVERYONE, THERE IS ICE CREAM!"

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

IP очень похож на основную аналогию, но он имеет больше функций и слоев поверх MAC-адресации. Слои 2 и 3 в модели OSI , соответственно.

MAC-адрес необходим, поскольку к «шине» (сети Ethernet) подключено несколько адресов. Отправитель должен иметь возможность идентифицировать получателя, а также идентифицировать себя с получателем.

Все аппаратные шины нуждаются в адресации, поскольку несколько отправителей и приемников используют одни и те же провода, а сообщения должны отправляться на конкретные приемники, а также идентифицировать отправителей-отправителей.

I2C, PCI, Ethernet, вы называете это.

У нас есть несколько адресов в межсетевых сетях (IP-адрес и аппаратный адрес), поскольку адрес аппаратного уровня является локальным только для конкретной физической сети. Поскольку датаграмма перемещается из сети в сеть, она имеет тенденцию сохранять свой адрес на сетевом уровне, но на протяжении всего времени она меняет аппаратные адреса. При переходе по некоторым сетям у него может отсутствовать аппаратный адрес вообще, а в некоторых других он может иметь аппаратный адрес, который не является MAC-адресом Ethernet. (Конечно, сетевые адреса могут быть переписаны шлюзом NAT, но аппаратные адреса удаляются и заменяются разными, каждый раз, когда пакет пересекает маршрутизатор.)

  • Как я могу получить MAC-адрес из HTTP-запроса?
  • Назначить IP-адреса certian mac-адресам в dd-wrt
  • Как определить MAC-адрес фактической физической сетевой карты - не виртуальные сетевые интерфейсы, созданные VPN (.NET C #),
  • Чтение MAC-адреса с сетевого адаптера в .NET.
  • Как найти MAC-адрес моего компьютера?
  • Как создать действительный случайный MAC-адрес с оболочкой bash
  • Откройте общедоступный IP-адрес сети без подключения
  • Как избежать воздействия моего MAC-адреса при использовании IPv6?
  • Получите MAC-адрес устройства Android без Wi-Fi
  • Программно получать MAC-адрес устройства Android
  • Как я могу запросить таблицу ARP на iPhone?
  • Давайте будем гением компьютера.