В этом разделе мы рассмотрим то,
как при посылке IP-пакета
определяется Ethernet-адрес
назначения. Для отображения
IP-адресов в Ethernet адреса
используется протокол ARP (Address Resolution
Protocol - адресный протокол).
Отображение выполняется только для
отправляемых IP-пакетов, так как
только в момент отправки создаются
заголовки IP и Ethernet. Преобразование адресов
выполняется путем поиска в таблице.
Эта таблица, называемая ARP-таблицей,
хранится в памяти и содержит строки
для каждого узла сети. В двух
столбцах содержатся IP- и
Ethernet-адреса. Если требуется
преобразовать IP-адрес в Ethernet-адрес,
то ищется запись с соответствующим
IP-адресом. Ниже приведен пример
упрощенной ARP-таблицы. Табл.1. Пример
ARP-таблицы 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-адрес, то
происходит следующее: Каждый сетевой адаптер принимает
широковещательные передачи. Все
драйверы Ethernet проверяют поле типа в
принятом Ethernet-кадре и передают
ARP-пакеты модулю ARP. ARP-запрос можно
интерпретировать так: "Если ваш
IP-адрес совпадает с указанным, то
сообщите мне ваш Ethernet-адрес".
Пакет ARP-запроса выглядит примерно
так: Каждый модуль ARP
проверяет поле искомого IP-адреса в
полученном ARP-пакете и, если адрес
совпадает с его собственным
IP-адресом, то посылает ответ прямо
по Ethernet-адресу отправителя запроса.
ARP-ответ можно интерпретировать
так: "Да, это мой IP-адрес, ему
соответствует такой-то
Ethernet-адрес". Пакет с ARP-ответом
выглядит примерно так: Табл.3. Пример ARP-ответа
Этот ответ получает машина,
сделавшая ARP-запрос. Драйвер этой
машины проверяет поле типа в
Ethernet-кадре и передает ARP-пакет
модулю ARP. Модуль ARP анализирует
ARP-пакет и добавляет запись в свою
ARP-таблицу. Обновленная таблица выглядит
следующим образом: Табл.4. ARP-таблица
после обработки ответа Новая запись в ARP-таблице
появляется автоматически, спустя
несколько миллисекунд после того,
как она потребовалась. Как вы
помните, ранее на шаге 2 исходящий
IP-пакет был поставлен в очередь.
Теперь с использованием
обновленной ARP-таблицы выполняется
преобразование IPадреса в
Ethernet-адрес, после чего Ethernet-кадр
передается по сети. Полностью
порядок преобразования адресов
выглядит так: Короче говоря, если с помощью
ARP-таблицы не удается сразу
осуществить преобразование
адресов, то IP-пакет ставится в
очередь, а необходимая для
преобразования информация
получается с помощью запросов и
ответов протокола ARP, после чего
IP-пакет передается по назначению. Если в сети нет машины с искомым
IP-адресом, то ARP-ответа не будет и не
будет записи в ARP-таблице. Протокол
IP будет уничтожать IP-пакеты,
направляемые по этому адресу.
Протоколы верхнего уровня не могут
отличить случай повреждения сети
Ethernet от случая отсутствия машины с
искомым IP-адресом. Некоторые реализации IP и ARP не
ставят в очередь IP-пакеты на то
время, пока они ждут ARP-ответов.
Вместо этого IP-пакет просто
уничтожается, а его восстановление
возлагается на модуль TCP или
прикладной процесс, работающий
через UDP. Такое восстановление
выполняется с помощью таймаутов и
повторных передач. Повторная
передача сообщения проходит
успешно, так как первая попытка уже
вызвала заполнение ARP-таблицы. Следует отметить, что каждая
машина имеет отдельную ARP-таблицу
для каждого своего сетевого
интерфейса. [Назад] [Содержание] [Вперед]
Протокол ARP
ARP-таблица для
преобразования адресов
IP-адрес
Ethernet-адрес
223.1.2.1
223.1.2.3
223.1.2.4 08:00:39:00:2F:C3
08:00:5A:21:A7:22
08:00:10:99:AC:54
Принято все байты 4-байтного
IP-адреса записывать десятичными
числами, разделенными точками. При
записи 6-байтного Ethernet-адреса
каждый байт указывается в 16-ричной
системе и отделяется двоеточием.
Порядок преобразования
адресов
Запросы и ответы протокола
ARP
IP-адрес отправителя
Ethernet-адрес отправителя 223.1.2.1
08:00:39:00:2F:C3
Искомый IP-адрес
Искомый Ethernet-адрес 223.1.2.2
<пусто>
IP-адрес отправителя
Ethernet-адрес отправителя 223.1.2.2
08:00:28:00:38:A9
Искомый IP-адрес
Искомый Ethernet-адрес 223.1.2.1
08:00:39:00:2F:C3
IP-адрес
Ethernet-адрес
223.1.2.1
223.1.2.2
223.1.2.3
223.1.2.3 08:00:39:00:2F:C3
08:00:28:00:38:A9
08:00:5A:21:A7:22
08:00:10:99:AC:54
Продолжение
преобразования адресов