ARP (RFC 826, 1982) — протокол L2/L3 IPv4-стека, преобразующий IP-адрес соседа в MAC-адрес для отправки Ethernet-фрейма. Работает только внутри одного broadcast-сегмента.
Как: хост A хочет отправить пакет на 192.168.1.10. Кэш ARP пуст → шлёт broadcast-фрейм на `ff:ff:ff:ff:ff:ff`: "Who has 192.168.1.10? Tell 192.168.1.5". Хост с этим IP отвечает unicast: "192.168.1.10 is at aa:bb:cc:dd:ee:ff". A кэширует пару в ARP-таблицу на N минут (Linux: 60 сек по умолчанию), шлёт настоящий пакет.
Команды: (1) `ip neigh` (Linux, современно) — таблица ARP. (2) `arp -a` (BSD/macOS, старое) — то же. (3) `ip neigh flush all` — сбросить кэш при подозрении на MITM. (4) `arping 192.168.1.10` — ARP-ping, работает даже если ICMP заблокирован.
Атаки: ARP spoofing — злой хост шлёт unsolicited-reply "я router", получатели кладут его MAC в кэш → трафик идёт через атакующего (MITM). Защита: static ARP на критичных ссылках, Dynamic ARP Inspection (DAI) на managed switches, IPv6 (SLAAC + NDP + RA-Guard).