ARP-запрос

Как только узел узнает IP-адрес другого узла, узлу-отправителю может понадобиться МПС-адрес другого компьютера. Например, компьютер А должен знать Ethernet MAC-адрес, который соответствует IP-адресу 10.1.1.2, поэтому компьютер А начинает ARP-рассылку (ARP broadcast). ARP-рассылка отправляется на широковещательный Ethernet-адрес, поэтому её получает каждый компьютер локальной сети. Поскольку компьютер В находится в той же локальной сети, что и компьютер А, он получает ARP-рассылку. Поскольку IP-адрес компьютера В 10.1.1.2, а целью ARP-рассылки является поиск МАС-адреса, связанного с этим IP-адресом, компьютер В отвечает, отправляя свой МАС-адрес. Этот процесс показан на рис.3.

Рис. 3 Пример ARP-запроса

 

Теперь компьютер А знает IP-адрес получателя и Ethernet-адрес, который нужно использовать для отправки фреймов компьютеру В, и пакет, показанный на рис.1, можно успешно отправить.

Для определения МАС-адреса получателя узлы могут использовать, а могут и не использовать протокол ARP. Это зависит от логики двухэтапной маршрутизации, которую использует узел. Если узел-получатель находится в той е подсети, то узел-отправитель посылает ARP-запрос, пытаясь определить МАС-адрес получателя, как показано на рис.3. Однако если получатель и отправитель находятся в разных подсетях, то в результате логики маршрутизации отправляющего узла пакет нужно перенаправить на стандартный шлюз отправителя. Например, если компьютеры А и В расположены в разных подсетях (см.рис.1-3), логика маршрутизации компьютера А заставляет этот компьютер отправлять пакеты на стандартный шлюз (маршрутизатор). В таком случае компьютер А, использует ARP, будет определять МАС-адреса маршрутизатора вместо МАС-адреса компьютера В.

Кроме того, узлам приходится использовать ARP для определения МАС-адресов только однажды. Любое устройство, использующее протокол IP, должно сохранить или кэшировать информацию, которая была получена с помощью ARP.поместив эту информацию в свой ARP-кэш. Каждый раз, собираясь отправить пакет, инкапсулированный в Ethernet-фрейм, узел сначала проверяет свой ARP-кэш и использует найденный там МАС-адрес. Если в ARP-кэше корректная информация отсутствует, узел может использовать ARP для определения МАС-адреса по известному IP-адресу. Кроме того, узел получает ARP-информацию, получая ARP-запрос. Например, ARP-процесс, показанный на рис.3. приводит к тому что компьютер А и компьютер В узнают МАС-адреса друг друга.

Содержимое ARP-кэша можно посмотреть в большинстве операционных систем, используя в командной строке команду arp -a.