Протокол ARP
Протокол ARP
В этом разделе мы рассмотрим то,
как при посылке IP-пакета
определяется Ethernet-адрес
назначения. Для отображения
IP-адресов в Ethernet адреса
используется протокол ARP (Address Resolution
Protocol - адресный протокол).
Отображение выполняется только для
отправляемых IP-пакетов, так как
только в момент отправки создаются
заголовки IP и Ethernet.
Преобразование адресов
выполняется путем поиска в таблице.
Эта таблица, называемая ARP-таблицей,
хранится в памяти и содержит строки
для каждого узла сети. В двух
столбцах содержатся IP- и
Ethernet-адреса. Если требуется
преобразовать IP-адрес в Ethernet-адрес,
то ищется запись с соответствующим
IP-адресом. Ниже приведен пример
упрощенной ARP-таблицы.
Табл.1. Пример
ARP-таблицы
Принято все байты 4-байтного
IP-адреса записывать десятичными
числами, разделенными точками. При
записи 6-байтного Ethernet-адреса
каждый байт указывается в 16-ричной
системе и отделяется двоеточием.
ARP-таблица необходима потому, что
IP-адреса и Ethernet-адреса выбираются
независимо, и нет какого-либо
алгоритма для преобразования
одного в другой. IP-адрес выбирает
менеджер сети с учетом положения
машины в сети internet. Если машину
перемещают в другую часть сети
internet, то ее IP-адрес должен быть
изменен. Ethernet-адрес выбирает
производитель сетевого
интерфейсного оборудования из
выделенного для него по лицензии
адресного пространства. Когда у
машины заменяется плата сетевого
адаптера, то меняется и ее
Ethernet-адрес.
В ходе обычной работы сетевая
программа, такая как TELNET,
отправляет прикладное сообщение,
пользуясь транспортными услугами
TCP. Модуль TCP посылает
соответствующее транспортное
сообщение через модуль IP. В
результате составляется IP-пакет,
который должен быть передан
драйверу Ethernet. IP-адрес места
назначения известен прикладной
программе, модулю TCP и модулю IP.
Необходимо на его основе найти
Ethernet-адрес места назначения. Для
определения искомого Ethernet-адреса
используется ARP-таблица.
Как же заполняется ARP-таблица? Она
заполняется автоматически модулем
ARP, по мере необходимости. Когда с
помощью существующей ARP-таблицы не
удается преобразовать IP-адрес, то
происходит следующее:
- По сети передается
широковещательный ARP-запрос.
- Исходящий IP-пакет ставится в
очередь.
Каждый сетевой адаптер принимает
широковещательные передачи. Все
драйверы Ethernet проверяют поле типа в
принятом Ethernet-кадре и передают
ARP-пакеты модулю ARP. ARP-запрос можно
интерпретировать так: "Если ваш
IP-адрес совпадает с указанным, то
сообщите мне ваш Ethernet-адрес".
Пакет ARP-запроса выглядит примерно
так:
Табл.2. Пример
ARP-запроса
Каждый модуль ARP
проверяет поле искомого IP-адреса в
полученном ARP-пакете и, если адрес
совпадает с его собственным
IP-адресом, то посылает ответ прямо
по Ethernet-адресу отправителя запроса.
ARP-ответ можно интерпретировать
так: "Да, это мой IP-адрес, ему
соответствует такой-то
Ethernet-адрес". Пакет с ARP-ответом
выглядит примерно так:
IP-адрес отправителя
Ethernet-адрес отправителя |
223.1.2.2
08:00:28:00:38:A9 |
Искомый IP-адрес
Искомый Ethernet-адрес |
223.1.2.1
08:00:39:00:2F:C3 |
Табл.3. Пример ARP-ответа
Этот ответ получает машина,
сделавшая ARP-запрос. Драйвер этой
машины проверяет поле типа в
Ethernet-кадре и передает ARP-пакет
модулю ARP. Модуль ARP анализирует
ARP-пакет и добавляет запись в свою
ARP-таблицу.
Обновленная таблица выглядит
следующим образом:
Табл.4. ARP-таблица
после обработки ответа
Новая запись в ARP-таблице
появляется автоматически, спустя
несколько миллисекунд после того,
как она потребовалась. Как вы
помните, ранее на шаге 2 исходящий
IP-пакет был поставлен в очередь.
Теперь с использованием
обновленной ARP-таблицы выполняется
преобразование IPадреса в
Ethernet-адрес, после чего Ethernet-кадр
передается по сети. Полностью
порядок преобразования адресов
выглядит так:
- По сети передается
широковещательный ARP-запрос.
- Исходящий IP-пакет ставится в
очередь.
- Возвращается ARP-ответ,
содержащий информацию о
соответствии IP- и Ethernet-адресов.
Эта информация заносится в
ARP-таблицу.
- Для преобразования IP-адреса в
Ethernet-адрес у IP-пакета, постав
ленного в очередь,
используется ARP-таблица.
- Ethernet-кадр передается по сети
Ethernet.
Короче говоря, если с помощью
ARP-таблицы не удается сразу
осуществить преобразование
адресов, то IP-пакет ставится в
очередь, а необходимая для
преобразования информация
получается с помощью запросов и
ответов протокола ARP, после чего
IP-пакет передается по назначению.
Если в сети нет машины с искомым
IP-адресом, то ARP-ответа не будет и не
будет записи в ARP-таблице. Протокол
IP будет уничтожать IP-пакеты,
направляемые по этому адресу.
Протоколы верхнего уровня не могут
отличить случай повреждения сети
Ethernet от случая отсутствия машины с
искомым IP-адресом.
Некоторые реализации IP и ARP не
ставят в очередь IP-пакеты на то
время, пока они ждут ARP-ответов.
Вместо этого IP-пакет просто
уничтожается, а его восстановление
возлагается на модуль TCP или
прикладной процесс, работающий
через UDP. Такое восстановление
выполняется с помощью таймаутов и
повторных передач. Повторная
передача сообщения проходит
успешно, так как первая попытка уже
вызвала заполнение ARP-таблицы.
Следует отметить, что каждая
машина имеет отдельную ARP-таблицу
для каждого своего сетевого
интерфейса.
[Назад] [Содержание] [Вперед]
|