Протокол ARP также позволяет связываться двум узлам из различных сетей. В этом случае широковещательный ARP-запрос обеспечивает возможность выяснить адрес используемого отправителем шлюза по умолчанию, а не узла-получателя.
Если получатель находится в удаленной сети, то широковещательный ARP-запрос используется для поиска маршрутизатора, который может пересылать пакеты в эту сеть.
1. При соединении определяется, что IP-адрес узла-получателя принадлежит удаленной сети.
Узел-отправитель ищет в локальной таблице маршрутизации путь к узлу-получателю или его сети. Если путь не найден в таблице, узел-отправитель определяет IP-адрес шлюза по умолчанию. Затем он ищет в кэше протокола ARP соответствующий ему адрес сетевого адаптера.
2. Если этот адрес в кэше отсутствует, то широковещательный ARP-запрос используется для получения адреса шлюза, а не узла-получателя. Маршрутизатор (шлюз) в ответ на ARP-запрос узла-отправителя посылает адрес своего сетевого адаптера. Затем узел-отправитель адресует пакет на маршрутизатор для доставки его в сеть получателя и далее - узлу-получателю.
3. На маршрутизаторе выясняется, является ли IP-адрес получателя локальным или удаленным. Если он локальный, то маршрутизатор использует протокол ARP (кэш или широковещание) для получения его адреса сетевого адаптера. Если же - удаленный, маршрутизатор ищет в своей таблице маршрутизации необходимый шлюз, а затем использует протокол ARP (кэш или широковещание) для получения адреса его сетевого адаптера. Далее пакет отправляется непосредственно следующему получателю в этой цепочке.
4. Когда пакет достигнет получателя и будет обработан им, все исходящие пакеты таким же образом будут доставлены обратно. Например, при выполнении команды Ping в ответ на эхо-запрос узел-получатель пакета формирует эхо-ответ протокола ICMP (ICMP echo-reply). Поскольку узел-отправитель находится в удаленной сети, в локальной таблице маршрутизации ищется адрес шлюза к сети узла-отправителя. Если поиск завершается успехом, адрес сетевого адаптера шлюза выясняется с помощью ARP.
5. Если адреса сетевого адаптера указанного шлюза нет в кэше протокола, то для его определения используется широковещательный ARP-запрос. Как только адрес получен, эхо-ответ протокола ICMP посылается на маршрутизатор, который перенаправляет его на исходный узел-отправитель.
Кэш протокола ARP
Для уменьшения числа широковещательных пакетов ARP кэширует адреса для последующего использования. Применяются два типа записей в кэше ARP - динамические и статические. Первые добавляются и удаляются автоматически. Вторые находятся в кэше до перезагрузки компьютера.
В дополнение к этому в кэше протокола ARP всегда присутствует адрес для широковещания в локальной подсети (FFFFFFFFFFFF) в виде статической записи которая не отображается при просмотре кэша.
По умолчанию для кэша протокола ARP установлены тайм-ауты, равные 2 мин для невостребованных записей и 10 минутам для записей, к которым обращались. Если в реестр добавить параметр ARPCacheLife и задать тайм-аут в секундах, именно эта величина будет использоваться вместо упомянутых ранее.
Примечание В некоторых реализациях TCP/IP при повторном использовани записи ей присваивается новая отметка о времени поступления, которая добавляет дополнительные 10 минут ко времени ее жизни.