Протокол 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-адреса.