Windows 95/98/NT/2000 FAQ - Что такое ARP?

Что такое ARP?

ARP расшифровывается как Address Resolution Protocol (протокол разрешения адресов) и затрагивался в предыдущем вопросе в связи с трансляцией (разрешением) IP адресов в реальные физические адреса сетевых карт.

Все сетевые карты имеют уникальный 48-битный адрес, записываемый как шесть пар шестнадцатеричных цифр, т.е. 00-A0-24-7A-01-48. Этот адрес аппаратно привязан к данной сетевой карте. Его можно увидеть, набрав

ipconfig /all
.
Ethernet adapter Elnk31:

Description . . . . . . . . : ELNK3 Ethernet Adapter.
Physical Address. . . . . . : 00-A0-24-7A-01-48
DHCP Enabled. . . . . . . . : No
IP Address. . . . . . . . . : 200.200.200.5
Subnet Mask . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . : 200.200.200.1
Primary WINS Server . . . . : 200.200.50.23
Secondary WINS Server . . . : 200.200.40.190

Как обсуждалось в вопросе по поводу подсетей, если приемник пакета принадлежит той же локальной сети, что и отправитель, отправитель должен разрешить IP адрес получателя или IP адрес маршрутизатора в физический адрес устройства. Когда стартует TCP/IP компонент NT компьютера, он передает в сеть ARP сообщение со своей парой адресов: IP и аппаратным. Стандартная последовательность событий при посылке хосту в пределах локальной сети следующая:

  1. ARP проверяет локальный кэш ARP на предмет наличия записи для IP адреса приемника. Если запись найдена, аппаратный адрес приемника добавляется к заголовку фрэйма и фрэйм отправляется.
  2. Если запись не найдена, в локальную сеть отправляется широковещательный запрос ARP (Вы помните, что принадлежность приемника локальной сети уже определена посредством вычисления Network ID из адреса IP и маски подсети). Запрос ARP содержащий IP адрес, аппаратный адрес отправителя и запрашиваемый IP адрес, направляется по адресу 255.255.255.255 (т.е. всем).
  3. Когда хост-приемник принимает запрос, он высылает ARP ответ со своими IP и аппаратным адресами.
  4. Когда передатчик принимает ARP ответ, он модифицирует собственный кэш ARP, после чего формирует фрэйм и отправляет его.

Если запрос предназначен приемнику за пределами локальной сети, процесс выглядит также, за исключением того, что отправитель оперирует с IP адресом маршрутизатора.

Для просмотра кэша ARP, выполните:
arp -a

Будет выведен список пар IP и аппаратных адресов. Направьте пинг хосту в Вашей локальной сети, а потом посмотрите кэш ARP еще раз и увидите запись для этого хоста. Попробуйте также направить пинг хосту за пределами локальной сети и опять проверьте кэш ARP: запись для router будет добавлена. Обратите внимание на слово "dynamic" (динамический) рядом с этими записями, указывающее на то, что они добавляются по мере необходимости, следовательно, будут утеряны при перезагрузке. Фактически - даже быстрее! Если запись не используется снова в течение 2 минут, она удаляется из кэша. Если используется в течение 2 минут - проживет еще 10 минут. И так далее.

Вы можете добавлять статические записи для некоторых хостов (для экономии времени при ARP запросах). Формат следующий:
arp -s <IP address> <hardware address>, т.е.
arp -s 200.200.200.5 00-A0-24-7A-01-48