Протокол ARP
ARP – Address Resolution Protocol – протокол разрешения адресов.
В современных сетях используется для сопоставления IP- и MAC-адресов в канальной среде Ethernet.
Особенности:
- Умеет работать с любым протоколом сетевого уровня и любым протоколом канального уровня;
- Протокол канального уровня должен поддерживать широковещательную рассылку.
Рассмотрим работу протокола ARP в одной канальной среде:
Введем следующие обозначения:
MACW = FF:FF:FF:FF:FF:FF
MACZ = 00:00:00:00:00:00
Пусть с компьютера H1 необходимо зайти на компьютер H2. Или в самом простом случае пропинговать H2. В этом случае мы обращаемся к машине H2 по IP (или по имени) или передаем IP-адрес команде ping в качестве параметра. Так как для формирования фрейма канального уровня необходим MAC2 (MAC1 – «свой» адрес, поэтому сетевой карте он известен), то его нужно как-то получить.
Вариант 1: В ARP-таблице H1 есть запись вида «MAC2 – IP2». Тогда кадр формируется и отправляется в сеть.
Вариант 2: В ARP-таблице H1 записи вида «MAC2 – IP2» нет. В этом случае H1 широковещательно отправляет в сеть пакет вида:
Используемые обозначения:
HTYPE – тип протокола канального уровня (для Ethernet значение 0001)
PTYPE – тип протокола сетевого уровня (для IP значение 0800)
HLEN – длина адреса канального уровня (для Ethernet 6 байт)
PLEN – длина адреса сетевого уровня (для IPv4 4 байта)
OPER – код операции.
После получения ответа хост 1 формирует новую запись в своей ARP-таблице.
ARP-таблица содержит динамические и статические (формируемые вручную) записи.
Замечание:
Сразу после включения ПК ОС посылает ARP-пакет с запросом адреса самой себя. Если в сети уже есть ПК с таким IP, то он ответит, и отправляющий компьютер поймет, что в сети есть дублирующие IP-адреса.