MAC-адреса и Ethernet
Разбираемся, как устройства находят друг друга внутри одной локальной сети по MAC-адресам.
MAC-адрес — это физический 48-битный идентификатор сетевой карты, зашитый производителем. Он адресует устройство в пределах одного сегмента сети.
Зачем нужен ещё один адрес, если есть IP
Логичный вопрос: у нас уже есть IP-адреса, зачем MAC? Ответ — они работают на разных уровнях и решают разные задачи. IP отвечает за глобальную доставку «из конца в конец» через весь интернет, а MAC — за доставку на один следующий шаг внутри локальной сети.
Аналогия: IP — это полный почтовый адрес получателя в другом городе (он не меняется по пути). MAC — это «передай вон тому курьеру в соседней комнате»: на каждом этапе пересылки локальный адрес меняется, а конечный (IP) остаётся прежним.
| MAC-адрес | IP-адрес | |
| Уровень | канальный (2) | сетевой (3) |
| Область | один сегмент сети | весь интернет |
| Назначается | производителем «железа» | сетью / провайдером |
| Формат | 00:1A:2B:3C:4D:5E | 192.168.1.10 |
| Меняется в пути | да, на каждом хопе | нет (обычно) |
Формат MAC-адреса
MAC записывают шестью парами шестнадцатеричных цифр: 00:1A:2B:3C:4D:5E. Первые три байта (00:1A:2B) — код производителя (OUI), последние три — серийный номер устройства. Адрес FF:FF:FF:FF:FF:FF — широковещательный (broadcast): «всем в этой сети».
Ethernet и кадры
На канальном уровне данные передаются кадрами (frames). Упрощённо кадр Ethernet содержит:
[ MAC получателя | MAC отправителя | тип | данные (payload) | контрольная сумма ]
Коммутатор (switch) читает MAC получателя и пересылает кадр только в нужный порт, а не всем подряд. Он ведёт таблицу «MAC — порт», обучаясь по проходящему трафику.
ARP: как узнать MAC по IP
Возникает проблема: программа знает IP получателя, но для отправки кадра в локальной сети нужен MAC. Эту задачу решает протокол ARP (Address Resolution Protocol). Хост кричит в сеть широковещательно: «У кого IP 192.168.1.5? Сообщите свой MAC». Владелец отвечает, и пара «IP → MAC» кэшируется в ARP-таблице. Посмотреть её можно командой:
arp -a
Зачем это веб-разработчику
Напрямую с MAC вы почти не работаете. Но понимание уровня помогает: например, почему два устройства «видят» друг друга только в одной подсети, что такое «широковещательный домен», почему MAC-адрес используют для фильтрации в роутере. А вопрос «чем MAC отличается от IP» — классика собеседований.
Итог
- MAC — физический адрес «железа» для доставки внутри одного сегмента сети.
- IP — логический адрес для глобальной доставки через интернет.
- В пути MAC меняется на каждом хопе, IP остаётся прежним.
- ARP сопоставляет IP-адресу его MAC внутри локальной сети.