Протокол разрешения адресов – это средство для сетевого приложения или устройства для определения Ethernet-адреса другого устройства. Также известный под аббревиатурой ARP, он пытается сопоставить адрес интернет-протокола (IP) с аппаратным адресом. ARP используется в локальной сети каждым устройством при первом соединении с другим устройством в той же сети. Приложения и сетевые устройства взаимодействуют на высоком уровне с использованием пакетов на сетевом уровне стека протоколов. Эти пакеты адресованы IP-адресам.
Когда каждый пакет отправляется по локальной сети (LAN) с использованием уровня канала передачи данных, также должен быть известен Ethernet-адрес получателя. IP-адреса могут быть назначены динамически и со временем меняться, а Ethernet-адреса, как правило, остаются неизменными. Приложению или устройству необходим способ определения аппаратного адреса, связанного с данным IP-адресом.
Протокол разрешения адресов определяет стандартный метод для обнаружения этих адресов. ARP была задокументирована целевой группой Internet Engineering Task Force (IETF) в 1982 году в качестве запроса комментариев (RFC) 826. Когда система готова к отправке IP-пакета, она обращается к её кешу с разрешёнными адресами. Если IP-адрес назначения отсутствует в кеше, он передаёт сообщение по всей локальной сети с использованием ARP. Это сообщение запрашивает устройство с IP-адресом назначения для ответа на его аппаратный адрес Ethernet.
Этот пакет запроса протокола разрешения адресов включает в себя IP-адреса и аппаратные адреса реквестера, а также запрашиваемый IP-адрес. Каждое устройство в локальной сети прослушивает пакет запроса ARP, содержащий его IP-адрес. Если устройство находит пакет запроса, то соответствующее устройство составляет пакет ответа ARP, содержащий его аппаратный адрес Ethernet. Этот пакет ответа затем отправляется непосредственно запрашивающему, который сохраняет адреса в своем кэше ARP для последующего повторного использования. Ответчик также может хранить адреса в своём кеше, поскольку он, скорее всего, будет связываться с реквестером.
IP версии 4 (IPv4) и Ethernet-адреса являются наиболее распространенными типами адресов, разрешенных протоколом разрешения адресов. Но пакет запросов поддерживает и другие типы через поля Тип протокола и Длина адреса. IP-адреса версии 6 (IPv6) разрешены с помощью протокола обнаружения соседних соединений (NDP) вместо ARP.
Протокол разрешения обратного адреса (RARP) запрашивает IP-адрес для аппаратного адреса реквестера. Сервер RARP отвечает на один из этих запросов, выделяя новый IP-адрес и связывая его с аппаратным адресом реквестера. Обратный ARP считается устаревшим – его функциональность включена в протокол динамической конфигурации хоста (DHCP). Обратный протокол разрешения адресов запрашивает существующий IP-адрес, связанный с данным аппаратным адресом. В этом случае аппаратный адрес может быть адресом любого узла в той же локальной сети.