Порядок преобразования адресов в ARP- таблице
Рассмотрим работу протокола ARP на примере передачи данных в ЛВС, содержащих станции A, B, C (см. рис. 4.2) соединенных каналом связи и использующим технологию Ethernet. В примере ARP- таблица станции А имеет вид, представленный в табл. 4.1 Рис.4.2 Схема фрагмента сети (пример)
Рассмотрим процедуру выполнения протокола ARP станцией А (см. рис.4.3) для ситуации, когда ей известен IP-адрес станции В, но не известен МАС-адрес станции В. Рис.4.3 Процедура выполнения протокола ARP станцией А 1. В ходе обычной работы сетевая программа, например такая как TELNET, отправляет прикладное сообщение, пользуясь транспортными услугами TCP. Модуль TCP посылает соответствующее транспортное сообщение через модуль IP. В результате составляется IP-пакет, который должен быть передан драйверу Ethernet станции А. IP-адрес (221.1.2.2) места назначения (станция В) известен прикладной программе, модулю TCP и модулю IP. Необходимо на его основе найти (МАС)Ethernet-адрес места назначения (станции В). 2. Для определения искомого Ethernet-адреса используется ARP-таблица. Она заполняется автоматически модулем ARP, по мере необходимости. Проверятся: «есть ли в ARP-таблице запись места назначения - (МАС)Ethernet-адрес соответствующий требуемому IP-адресу». Если есть, то переходим к п.9. Если нет, то переходим к п.3. 3. По сети передается широковещательный ARP-запрос в форме кадра Ethernet (см. рис. 3.1). В заголовке кадра: - в поле Адрес получателя заносится FF:FF:FF:FF:FF:FF- признак широковещательного запроса; - в поле Адрес отправителя заносится 08:00:39:00:2F:C3 - МАС-адрес станции А. В поле Данные кадра Ethernet записываются данные в формате сообщения ARP (см. рис. 4.2) и для рассматриваемого примера имеющие следующие значения (см. рис. 4.4)
Рис. 4.4 Формат ARP - запроса для рассматриваемого примера
4. Исходящий IP-пакет ставится в очередь. 5 Каждый сетевой адаптер принимает широковещательные передачи. Все драйверы Ethernet проверяют поле типа в принятом Ethernet-кадре и передают ARP-пакеты модулю ARP. ARP-запрос можно интерпретировать так: "Если ваш IP-адрес совпадает с указанным, то сообщите мне ваш Ethernet-адрес".
6. Каждый модуль ARP проверяет поле искомого IP-адреса получателя в полученном ARP-пакете и, если адрес совпадает с его собственным IP-адресом, то посылает ответ прямо по Ethernet-адресу отправителя запроса. В заголовке кадра: - в поле Адрес получателя заносится 08:00:39:00:2F:C3 - МАС-адрес станции А; - в поле Адрес отправителя заносится 08:00:28:00:38:А9 - МАС-адрес станции В. В поле Данные кадра Ethernet записываются данные в формате сообщения ARP (см. рис. 4.2) и для рассматриваемого примера имеющие следующие значения (см. рис. 4.5)
Рис. 4.5 Формат ARP - ответа для рассматриваемого примера
ARP-ответ можно интерпретировать так: "Да, это мой IP-адрес, ему соответствует такой-то Ethernet-адрес". Пакет с ARP-ответом выглядит примерно так: 7. Этот ответ получает станция А, сделавшая ARP-запрос. Драйвер этой станции проверяет поле типа в Ethernet-кадре и передает ARP-пакет модулю ARP. Модуль ARP анализирует ARP-пакет и добавляет запись в свою ARP-таблицу. Обновленная таблица выглядит следующим образом: Табл.4.4 ARP-таблица после обработки ответа
Новая запись в ARP-таблице появляется автоматически, спустя несколько миллисекунд после того, как она потребовалась. 8. Для поставленного на шаге 3 в очередь исходящего IP-пакета выполняется с использованием обновленной ARP-таблицы преобразование IP- адреса в Ethernet-адрес. 9. Сформированный Ethernet-кадр передается по сети. Если с помощью ARP-таблицы не удается сразу осуществить преобразование адресов, то IP-пакет ставится в очередь, а необходимая для преобразования информация получается с помощью запросов и ответов протокола ARP, после чего IP-пакет передается по назначению. Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и не будет записи в ARP-таблице. Протокол IP будет уничтожать IP-пакеты, направляемые по этому адресу. Протоколы верхнего уровня не могут отличить случай повреждения сети Ethernet от случая отсутствия машины с искомым IP-адресом. Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на то время, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожается, а его восстановление возлагается на модуль TCP или прикладной процесс, работающий через UDP. Такое восстановление выполняется с помощью таймаутов и повторных передач. Повторная передача сообщения проходит успешно, так как первая попытка уже вызвала заполнение ARP-таблицы.
Следует подчеркнуть, что каждая станция имеет собственную ARP-таблицу для каждого своего сетевого интерфейса.
|