Теперь, когда у нас есть IP-адрес, зачем нам MAC-адрес? В чем разница между ними? Я наконец понял это после углубленного анализа!
Теперь, когда у нас есть IP-адрес, зачем нам MAC-адрес? В чем разница между ними? Я наконец понял это после углубленного анализа!

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

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

MAC-адреснаходится вканальный уровень(OSIВторой слой модели)использовал,Это фиксированный и плоский адрес.,Могут быть реализованы адресация и передача данных внутри локальной сети.

поэтому,в сетевом общении,Очень важно использовать два разных типа адресов: IP-адрес и MAC-адрес.

Определение и формат IP-адреса и MAC-адреса

IP-адрес

IPInternet Protocol)даИнтернет-протоколаббревиатура,Это протокол, определяющий, как сетевые устройства взаимодействуют в Интернете. IP-протокол, определение логического адреса,Прямо сейчасIP-адрес,Используется для уникальной идентификации сетевого устройства в Интернете.

В настоящее время существуют две версии протокола IP.,соответственнодаIPv4иIPv6

IPv4Internet Protocol version 4)да В настоящее время наиболее распространениспользовалIPВерсия протокола,он использует32 битдвоичное число, обозначающееIP-адрес,Обычно отображается в десятичной форме с точками.,Например, 192.168.1.1.

одинIPv4Адрес состоит из двух частей:Номер сетииномер хоста

  • Номер сети указывает сеть, к которой принадлежит устройство.,
  • номер хост представляет номер устройства в сети.

Сетевые номера разной длины могут быть разделены на разные уровни сетей, например, класс A, класс B, класс C и т. д. Чтобы удобно представлять номера сетей различной длины, в IPv4 введена концепция маски подсети, которая представляет собой 32-битное двоичное число, в котором бит, соответствующий номеру сети, равен 1, а бит, соответствующий номеру хоста, равен 0. Например, 255.255.255.0 — это маска подсети, указывающая, что первые 24 цифры — это номер сети, а последние 8 цифр — номер хоста.

IPv6Internet Protocol version 6)дачтобы решитьIPv4решить проблему истощенияидизайнизновое поколениеIPВерсия протокола,он использует128 битдвоичное число, обозначающееIP-адрес,Обычно отображается в дробной шестнадцатеричной форме.,Например, 2001:db8::1.

одинIPv6Адрес состоит из двух частей:префиксиидентификатор интерфейса

  • префикс указывает сеть или подсеть, к которой принадлежит устройство,
  • идентификатор Интерфейс представляет номер устройства в сети или подсети.

IPv6 не имеет номера сети или номера хоста фиксированной длины. Вместо этого он использует длину префикса (длину префикса), чтобы указать, сколько бит занимает префикс. Например, 2001:db8::1/64 означает, что первые 64 бита — это префикс, а последние 64 бита — идентификатор интерфейса.

MAC-адрес

MACMedia Access Control)даконтроль доступа к медиааббревиатура,этодаусловиеканальный уровень Протокол доступа к физическим средам (таким как кабели, оптоволокно и т. д.) для передачи данных. Определение протокола MAC физический адрес,Прямо сейчасMAC-адрес,Используется для уникальной идентификации сетевой карты или другого сетевого устройства в локальной сети. Существует много типов протоколов MAC.,Одним из наиболее распространенных является протокол Ethernet.

Использование протокола Ethernet48 битдвоичное число, обозначающееMAC-адрес,Обычно отображается в дробной шестнадцатеричной форме.,Например, 00-16-EA-AE-3C-40. MAC-адрес Ethernet состоит из двух частей: OUI и NICI.

  • OUI(Organizationally Unique Identifier) ​​— уникальный идентификатор организации, занимающий первые 24 бита и представляющий собой номер производителя сетевой карты или другого сетевого устройства.
  • NICI(Network Interface Card Identifier) ​​— идентификатор сетевой карты, занимающий последние 24 бита и представляющий собой серийный номер, присвоенный сетевой карте или другому сетевому устройству производителем.

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

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

IP-адрес

IPПротокол работает всетевой уровень(OSIТретий слой модели),Он отвечает за инкапсуляцию данных в пакеты.,И выполнять маршрутизацию и переадресацию на основе целевого IP-адреса. Когда один хост хочет отправить данные на другой хост,Ему необходимо знать IP-адрес целевого хоста -адрес.,и записывает его в заголовок пакета. Далее согласно таблице маршрутизации (routing таблице), выберите соответствующий следующий переход (следующий hop), то есть следующий маршрутизатор или другое сетевое устройство, которое пересылает пакет данных и отправляет его.

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

MAC-адрес

MACПротокол работает вканальный уровень(OSIВторой слой модели),Он отвечает за инкапсуляцию данных в кадры (frame),И адресуется и передается согласно целевому MAC-адресу. Когда один хост хочет отправить данные на другой хост,Ему необходимо знать MAC целевого хоста -адрес.,и записывает его в заголовок кадра. Затем в соответствии с характеристиками физической среды (например, кабели, оптические волокна и т. д.),Отправьте рамку.

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

Итак, как же один хост получает MAC-адрес другого хоста?

Для этого необходимо использоватьARPAddress Resolution Protocol)протокол,Это протокол получения MAC-адреса на основе IP-адреса. Принцип работы и процесс протокола ARP заключаются в следующем:

  • Когда хост хочет отправить данные другому хосту, он сначала проверяет свою собственную таблицу кэша ARP (ARP cache),Проверьте, существует ли соответствующая связь между IP-адресом и MAC-адресом целевого хоста. если есть,Затем напрямую используйте MAC-адрес, чтобы инкапсулировать кадр и отправить его.
  • Если нет, вам необходимо инициировать запрос ARP (ARP request),Трансляция специального кадра в локальную сеть,Содержит свой IP-адрес и MAC-адрес.,И IP-адрес целевого хоста. MAC-адрес назначения кадра — широковещательный адрес FF-FF-FF-FF-FF-FF.,Указывает, что все устройства должны получить кадр.
  • Все устройства в локальной сети получат кадр запроса ARP.,И судите сами, исходя из целевого IP-адреса. если не я,затем отбросьте рамку,И добавить IP-адрес и MAC-адрес отправителя в собственную таблицу кэша ARP. если это я,Затем ответьте ответом ARP (ответ ARP).,Одноадресная передача специального кадра отправителю,Содержит свой IP-адрес и MAC-адрес.,и IP-адрес отправителя. MAC-адрес назначения кадра — MAC-адрес отправителя.
  • После получения отправителем кадра ответа ARP,Просто знайте MAC-адрес целевого хоста,И добавьте его в собственную таблицу кэша ARP. Этот MAC-адрес затем можно использовать для инкапсуляции кадра и его отправки.

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

Предположим следующую топологию:

в:

  • Хост A: IP — 10.0.0.1, MAC — 00-16-EA-AE-3C-40.
  • Хост B: IP — 10.0.0.2, MAC — 00-16-EA-AE-3C-41.
  • Хост C: IP — 10.0.0.3, MAC — 00-16-EA-AE-3C-42.
  • Маршрутизатор R1: IP-адрес интерфейса Fa0/0 — 10.0.0.254, MAC — 00-16-EA-AE-3C-43.
  • Маршрутизатор R2: IP-адрес интерфейса Fa0/0 — 10.1.0.254, MAC — 00-16-EA-AE-3C-44.
  • Сервер S: IP — 10.1.0.1, MAC — 00-16-EA-AE-3C-45.

Теперь предположим, что хост A хочет отправить пакет данных на сервер S. Полный процесс выглядит следующим образом:

1) Хост A обнаруживает, что целевой IP-адрес не находится в том же сегменте сети, что и он сам, и маршрутизатор должен перенаправить его.

2)Проверьте таблицу маршрутизации Получить IP-адрес и исходящий интерфейс R1 (с которого отправляется сетевая карта),Проверьте таблицу ARPНет соответствующей записи

3) Инициировать запрос ARP. IP-адрес назначения — R1, MAC-адрес назначения — широковещательный MAC (FF:FF:FF:FF:FF:FF), а IP-адрес источника и MAC-адрес источника — это IP и MAC хоста A. сетевая карта.

4) R1 получает запрос ARP, добавляет IP и MAC хоста A в свою собственную таблицу кэша ARP и отвечает на запрос ARP хоста A своим собственным IP и MAC.

5) Хост A получает ответ ARP, добавляет IP-адрес и MAC-адрес R1 в свою собственную таблицу кэша ARP, использует свой собственный IP-адрес и MAC в качестве источника, IP-адрес сервера S и MAC-адрес R1 в качестве пункта назначения, инкапсулирует кадр данных и пересылает его на R1 (в этот момент IP-адрес источника кадра данных — хост A, IP-адрес назначения — сервер S, MAC-адрес источника — хост A, а MAC-адрес назначения — R1)

6) R1 получает кадр данных, проверяет таблицу маршрутизации на основе IP-адреса назначения и обнаруживает, что R2 необходимо переслать. Он проверяет таблицу ARP, но соответствующей записи нет. Используйте свой собственный IP-адрес и MAC в качестве источника, IP-адрес назначения — R2, а MAC-адрес назначения широковещательно передается для отправки запроса ARP и отбрасывает кадр данных с хоста A.

7) R2 получает запрос ARP, добавляет IP и MAC маршрутизатора R1 в свою собственную таблицу кэша ARP и отвечает на запрос ARP хоста R2 своим собственным IP и MAC.

8) R1 получает ответ ARP и добавляет IP-адрес и MAC-адрес R2 в свою собственную таблицу кэша ARP.

9) Хост A обнаруживает тайм-аут и повторно отправляет кадр данных.

10) R1 получает кадр данных,Проверьте таблицу маршрутизации,Должен быть перенаправлен R2,Проверьте таблицу ARP,Получите MAC-адрес для R2. Измените исходный MAC-адрес кадра данных на себя.,Измените MAC-адрес назначения на R2.,И пересылаем кадр данных на R2 (в это время исходным IP-адресом кадра данных является хост A).,IP-адрес назначения – сервер S.,Исходный MAC-адрес — R1.,MAC назначения — R2)

11) R2 получает кадр данных, проверяет таблицу маршрутизации на основе IP-адреса назначения и обнаруживает, что целевой хост находится в том же сегменте сети, что и он сам. Он проверяет таблицу ARP, но соответствующей записи нет. Он использует свой собственный IP-адрес и MAC-адрес в качестве источника, IP-адрес назначения — это сервер S, а MAC-адрес назначения широковещательно передается для отправки запроса ARP и отклонения кадра данных от R1.

12) Сервер S получает запрос ARP, добавляет IP-адрес и MAC-адрес R2 в свою собственную таблицу кэша ARP и отвечает на запрос ARP хоста R2, используя свой собственный IP-адрес и MAC-адрес.

13) R2 получает ответ ARP и добавляет IP и MAC сервера S в свою собственную таблицу кэша ARP.

14) Хост A обнаруживает тайм-аут и повторно отправляет кадр данных.

15) R1 получает кадр данных,Проверьте таблицу маршрутизации,Должен быть перенаправлен R2,Проверьте таблицу ARP,Получите MAC-адрес для R2. Измените исходный MAC-адрес кадра данных на себя.,Измените MAC-адрес назначения на R2.,и переслать кадр данных на R2

16) R2 получает кадр данных,Проверьте таблицу маршрутизации,Должно быть перенаправлено сервером S,Проверьте таблицу ARP,Получите MAC-адрес сервера S. Измените исходный MAC-адрес кадра данных на себя.,Измените MAC-адрес назначения на сервер S.,И пересылаем кадр данных на сервер S (в это время исходным IP-адресом кадра данных является хост A).,IP-адрес назначения – сервер S.,Исходный MAC-адрес — R2.,

Разница между IP-адресом и MAC-адресом

Хотя IP-адрес и MAC-адрес используются для идентификации устройств в сети, их природа и роль сильно различаются. Вот основные различия между ними:

  1. определение:IP-адресда Используется для идентификации сетиизоборудование,MAC-адрес используется для идентификации сетевого адаптера (NIC).
  2. уникальность:IP-адресв сетидаиметьуникальностьиз,Но будут повторы по всему миру. А MAC-адрес уникален во всем мире.
  3. Метод распространения:IP-адрес Зависит отISPраспространять,А MAC-адрес назначается производителем сетевого адаптера (NIC).
  4. Сценарии использования:IP-адресдаиспользуется для реализацииInternetначальствоизпередача данных,MAC-адрес используется для реализации передачи данных внутри локальной сети.
  5. длина:IP-адресда32 битное двоичное число, а MAC-адрес равен 48 бит Двоичное число.

Кроме того, есть и другие отличия:

  1. IP-адрес можно изменить,И MAC-адрес изменить нельзя.
  2. IP-адрес иерархичен и сегментирован.,Его можно настроить в соответствии с потребностями сети. И MAC-адрес исправлен,Невозможно отрегулировать.
  3. IP-адресов может быть несколько, но MAC-адрес только один.
  4. IP-адрес может выделяться динамически,MAC-адрес обычно выделяется статически.

Подвести итог

IP-адрес и MAC-адрес — очень важные понятия в компьютерных сетях. Хотя у них разные роли и сферы применения.,нодаони之间存在着密切изассоциация。в сетевом общении,И IP-адрес, и MAC-адрес играют жизненно важную роль. поэтому,Изучение и понимание IP-адреса и MAC-адреса очень важно для понимания и решения проблем сетевой связи. в то же время,Понимание IP-адреса и MAC-адреса также помогает нам лучше защитить сетевую безопасность.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода