Протокол преобразования адресов
Базовый протокол сетевого уровня - это Протокол преобразования адресов (ARP). ARP выполняет динамическое преобразование IP-адресов в уникальные физические адреса хостов локальных сетей.
В качестве примера работы ARP рассмотрим два узла - X и Y.
Если узел X хочет установить соединение с узлом Y, и при этом X и Y расположены в разных сетях (LAN), то X и Y взаимодействуют через мосты, маршрутизаторы или шлюзы, идентифицируя друг друга по
IP-адресам. Внутри LAN узлы обмениваются данными с помощью
низкоуровневых аппаратных адресов.
Если узлы подключены к одному и тому же
сегменту LAN, то они определяют физические адреса партнеров по
протоколу ARP. В этом случае узел X рассылает запрос
ARP об аппаратном адресе узла Y всем узлам сети. В запросе ARP указывает аппаратный и IP-адрес узла X и IP-адрес узла Y.
При получении запроса ARP узел Y помещает запись об узле X в свой кэш ARP (применяемый для быстрого преобразования
IP-адресов в аппаратные адреса), а затем отправляет узлу X ответ ARP, содержащий аппаратный и IP-адрес узла Y. Когда узел
X получает от узла Y ответ ARP, он помещает запись об узле
Y в свой кэш ARP.
После того как в кэш ARP узла X добавлена запись об узле Y, узел X сможет отправлять пакеты непосредственно узлу Y без обращения к ARP (после удаления записи об узле Y из кэша ARP узел X будет вынужден снова обратиться к ARP).
В отличие от большинства протоколов, в протоколе ARP не зафиксирован формат заголовков. Сообщения ARP поддерживаются в различных локальных сетях:
- Адаптеры Ethernet LAN (поддерживает протоколы Ethernet и 802.3)
- Адаптеры Token-Ring
- Адаптеры FDDI (Оптоволоконного интерфейса распределенных данных)
Протокол ARP неприменим для протоколов SLIP (Протокол подключения к Internet по последовательной линии) и SOCC (Протокол последовательной оптической линии), так как эти протоколы предназначены для работы с двухточечными соединениями.
Таблицы преобразования обслуживаются ядром OC, поэтому у пользователей и приложений нет доступа непосредственно к ARP. При отправке IP-пакета одному из драйверов интерфейса, драйвер запрашивает преобразование соответствующего адреса. Если в таблице нет соответствующего аппаратного адреса, ARP рассылает пакет с запросом драйвера интерфейса всем хостам локальной сети.
Полные записи хранятся в таблице ARP в течение 20 минут, неполные - в течение 3 минут. Для создания постоянной записи в таблице преобразования ARP вызовите команду arp с параметром pub parameter:
arp -s 802.3 host2 0:dd:0:a:8s:0 pubКогда хост, поддерживающий протокол ARP, получает пакет с запросом ARP, он сохраняет аппаратный адрес и IP-адрес запрашивающего хоста и при необходимости обновляет свою таблицу ARP. Если IP-адрес хоста-получателя не совпадает с адресом, указанным в запросе, то хост удаляет пакет с запросом. Если IP-адрес совпадает, хост отправляет запрашивающей системе пакет с ответом. Запрашивающая система сохраняет новую запись преобразования и передает все ожидающие IP-пакеты.