4.3. Пара ARP Request/Response (запрос — отклик)
Откуда же появляются записи об адресах в таблице ARP?
В процессе работы специальная программа (демон) заполняет таблицу по мере появления информации об адресах.
Если нужного адреса нет в таблице ARP, выполняются следующие операции:
- Передается запрос ARP с широковещательным адресом Ethernet.
- Исходящий пакет IP помещается в очередь.
Интерфейс Ethernet каждого из компьютеров получает широковещательный кадр Ethernet с запросом ARP. После этого каждый из интерфейсов Ethernet проверяет значение поля Type (тип) в полученном кадре и передает пакет ARP модулю ARP. Пакет запроса ARP говорит: «Если ваш IP-адрес соответствует IP-адресу получателя пакета, скажите мне свой Ethernet-адрес». Пакет запроса ARP выглядит следующим образом:
IP-адрес отправителя 223.1.2.1 |
Ethernet-адрес отправителя 08-00-39-00-2F-C3 |
IP-адрес получателя 223.1.2.2 |
Ethernet-адрес получателя <blank> |
Каждый модуль ARP проверяет локальные адреса IP и адрес получателя на предмет их совпадения. Если адреса совпадают, модуль шлет отклик на запрос, содержащий искомый адрес, по Ethernet-адресу отправителя запроса ARP. Пакет с откликом ARP говорит: «Да, искомый адрес IP принадлежит мне и я сообщаю свой адрес Ethernet». Пакет отклика ARP меняет значения адресов отправителя/получателя в соответствии с направлением передачи отклика:
IP-адрес отправителя 223.1.2.2 |
Ethernet-адрес отправителя 08-00-28-00-38-A9 |
IP-адрес получателя 223.1.2.1 |
Ethernet-адрес получателя 08-00-39-00-2F-C3 |
Отклик приходит обратно на компьютер, пославший запрос. Драйвер Ethernet просматривает поле Type в кадре Ethernet и передает пакет ARP модулю ARP. Модуль ARP проверяет пакет и добавляет адреса IP и Ethernet в таблицу ARP.
Пример обновленной таблицы показан ниже:
IP address | Ethernet address |
223.1.2.1 | 08-00-39-00-2F-C3 |
223.1.2.2 | 08-00-28-00-38-A9 |
223.1.2.3 | 08-00-5A-21-A7-22 |
223.1.2.4 | 08-00-10-99-AC-54 |