Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru
Любое устройство, подключенное к локальной сети (Ethernet, FDDI и т.д.), имеет уникальный физический сетевой адрес, заданный аппаратным образом. 6-байтовый Ethernet-адрес выбирает изготовитель сетевого интерфейсного оборудования из выделенного для него по лицензии адресного пространства. Если у машины меняется сетевой адаптер, то меняется и ее Ethernet-адрес.
4-байтовый IP-адрес задает менеджер сети с учетом положения машины в сети Интернет. Если машина перемещается в другую часть сети Интернет, то ее IP-адрес должен быть изменен. Преобразование IP-адресов в сетевые выполняется с помощью arp-таблицы. Каждая машина сети имеет отдельную ARP-таблицу для каждого своего сетевого адаптера. Не трудно видеть, что существует проблема отображения физического адреса (6 байт для Ethernet) в пространство сетевых IP-адресов (4 байта) и наоборот.
Протокол ARP (address resolution protocol, RFC-826) решает именно эту проблему - преобразует ARP- в Ethernet-адреса.
Рассмотрим процедуру преобразования адресов при отправлении сообщения. Пусть прикладная программа одной ЭВМ отправляет сообщение другой. Прикладной программе IP-адрес места назначения обычно известен. Для определения Ethernet-адреса просматривается ARP-таблица. Если для требуемого IP-адреса в ней присутствует Ethernet-адрес, то формируется и посылается соответствующий пакет. Если же с помощью ARP-таблицы не удается преобразовать адрес, то выполняется следующее:
1. Всем машинам в сети посылается пакет с ARP-запросом (с широковещательным Ethernet-адресом места назначения).
2. Исходящий IP-пакет ставится в очередь.
Каждая машина, принявшая ARP-запрос, в своем ARP-модуле сравнивает собственный IP-адрес с IP-адресом в запросе. Если IP-адрес совпал, то прямо по Ethernet-адресу отправителя запроса посылается ответ, содержащий как IP-адрес ответившей машины, так и ее Ethernet-адрес. После получения ответа на свой ARP-запрос машина имеет требуемую информацию о соответствии IP и Ethernet-адресов, формирует соответствующий элемент ARP-таблицы и отправляет IP-пакет, ранее поставленный в очередь.
Если же в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и не будет записи в ARP-таблицу. Протокол IP будет уничтожать IP-пакеты, предназначенные для отправки по этому адресу. Протоколы верхнего уровня не могут отличить случай повреждения в среде ethernet от случая отсутствия машины с искомым IP-адресом. Во многих реализациях в случае, если IP-адрес не принадлежит локальной сети, внешний порт сети (gateway) или маршрутизатор откликается, выдавая свой физический адрес (режим прокси-ARP). Функционально, ARP делится на две части. Одна - определяет физический адрес при посылке пакета, другая отвечает на запросы других машин. ARP-таблицы имеют динамический характер, каждая запись в ней "живет" определенное время после чего удаляется. Менеджер сети может осуществить запись в ARP-таблицу, которая там будет храниться "вечно". ARP-пакеты вкладываются непосредственно в ethernet-кадры. Формат arp-пакета показан на рис. 4.4.6.1.
Код типа оборудования | Описание |
1 | Ethernet (10 Мбит/с) |
2 | Экспериментальный Ethernet (3 Мбит/с) |
3 | Радиолюбительская связь через X.25 |
4 | Proteon ProNET маркерная кольцевая сеть (Token Ring) |
5 | Chaos |
6 | Сети IEEE 802 |
7 | ARCNET |
Код типа протокола | Описание | |
Десятичное значение | Hex | |
512 | 0200 | XEROX PUP |
513 | 0201 | PUP трансляция адреса |
1536 | 0600 | XEROX NS IDP |
2048 | 0800 | DOD Internet протокол (IP) |
2049 | 0801 | X.75 Internet |
2050 | 0802 | NBS Internet |
2051 | 0803 | ECMA Internet |
2052 | 0804 | Chaosnet |
2053 | 0805 | X.25 уровень 3 |
2054 | 0806 | Протокол трансляции адреса (ARP) |
2055 | 0807 | XNS совместимость |
2560 | 0A00 | Xerox IEEE-802.3 PUP |
4096 | 1000 | Bercley Trailer |
21000 | 5208 | BBN Simnet |
24577 | 6001 | DEC MOP Dump/Load |
24578 | 6002 | DEC MOP удаленный терминал |
24579 | 6003 | DEC DECnet фаза IV |
24580 | 6004 | DEC LAT |
24582 | 6005 | DEC |
24583 | 6006 | DEC |
32773 | 8005 | HP Probe |
32784 | 8010 | Excelan |
32821 | 8035 | Реверсивный протокол ARP (RARP) |
32824 | 8038 | DEC LANbridge |
32923 | 8098 | Appletalk |
33100 | 814C | SNMP |
ifindex | Физический порт (интерфейс), соответствующий данному адресу; |
Физический адрес | MAC-адрес, например Ethernet-адрес; |
IP-адрес | IP-адрес, соответствующий физическому адресу; |
тип адресного соответствия | это поле может принимать 4 значения: 1 - вариант не стандартный и не подходит ни к одному из описанных ниже типов; 2 - данная запись уже не соответствует действительности; 3 - постоянная привязка; 4 - динамическая привязка; |