Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сети все вместе.doc
Скачиваний:
13
Добавлен:
01.05.2019
Размер:
1.61 Mб
Скачать

37. Назначение и принципы работы протокола arp. Формат arp-таблицы и arp-пакета

2. Протокол arp

По IP-адресу нужно найти МАС-адрес получателя, чтобы передать сетевой карте. Этим занимается протокол ARP. Протокол АRР работает различным образом в зависимости от того, какой протокол канального уровня работает в дан­ной сети — протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети или же протокол глобальной сети (Х.25, frame relay), как правило не поддерживающий широкове­щательный доступ. При старте бездисковых станций по адресу сетевого адаптера нужно найти IP-адрес сервера. Этим занимается реверсивный протокол ARP – RARP.

Протокол ARP поддерживает специальную ARP-таблицу, в которой указан IP-адрес, МАС-адрес и тип записи (динамический или статический). Статические записи создаются вручную с помощью утилиты arp и не имеют срока устаревания, они существуют до тех пор, пока компьютер или маршрутизатор не будут выключены. Динамические же записи создаются модулем протокола ARP, использующим широковещательные возможности локальных сетевых технологий. Динамические записи должны периодически обновляться. Если запись не обновлялась в течение определенного времени (порядка нескольких минут), то она исключается из таблицы. Таким образом, в ARP-таблице содержаться записи не обо всех узлах сети, а только о тех, которые активно участвуют в сетевых операциях. Поскольку такой способ хранения информации называют кэшированием, ARP-таблицы иногда называют ARP-кэш.

Для каждой сети, подключенной к сетевому адаптеру компьютера или к порту маршрутизатора, строится отдельная ARP-таблица.

В глобальных сетях администратору сети чаше всего приходится вручную формировать ARP-таблицы, в которых он задает, например, соответствие IР-адреса адресу узла сети Х.25, который имеет для протокола IР смысл локального адреса.

В последнее время наметилась тенденция автоматизации работы протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключен к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети. При таком централизованном подходе для всех узлов и маршрутизаторов вручную нужно задать только IР-адрес и локальный адрес выделенного маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости установления соответствия между IР-адресом и локальным адресом узел обращается к выделенному маршрутизатору с запросом и автоматически получает ответ без участия администратора. Работающий таким образом маршрутизатор называют ARP-сервером.

После того как модуль IР обратился к модулю ARP с запросом на разре­шение адреса, происходит поиск в ARP-таблице указанного в запросе IР-адреса. Если такой адрес в ARP-таблице отсутствует, то исходящий IР-пакет, для кото­рого нужно было определить локальный адрес, ставится в очередь. Далее протокол ARP формирует свой запрос (ARP-запрос), вкладывает его в кадр протокола ка­нального уровня и рассылает запрос широковещательно.

В

Тип сети

Тип протокола

Длина локального адреса

Длина сетевого адреса

Операция

Локальный адрес отправителя (МАС-адрес)

Сетевой адрес отправителя (IP-адрес)

Локальный (искомый) адрес получателя (МАС-адрес)

Сетевой адрес получателя (IP-адрес)

Рис. 9.1. Формат ARP-пакета

се узлы локальной сети получают ARP-запрос и сравнивают указанный там IР-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IР-адрес и свой локальный адрес, а затем отправляет его уже направ­ленно, так как в ARP-запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета. ARP-пакет вкладывается сразу в кадр протокола канального уровня. На рис. 9.1 приведен формат ARP-запроса (ARP-ответа).

В поле «Тип сети» для сетей Ethernet указывается значение 1.

Поле «Тип протокола» позволяет использовать протокол ARP не только для протокола IР, но и для других сетевых протоколов. Для IР значение этого поля равно 0800h.

В поле «Операция» для ARP-пакетов указывается значение 1, если это запрос, и 2, если это ответ.

Поле искомого локального адреса заполняется нулями.

Ответ присылает узел, опознавший свой IР-адрес. Если в сети нет машины с искомым IР-адресом, то ARP-ответа не будет. Протокол IР уничтожает пакеты, направленные по этому адресу. Протоколы верхнего уровня не могут отличить случай повреждения сети Ethernet от случая отсутствия машины с искомым IP-адресом.

Ответ получает машина, сделавшая ARP-запрос. Модуль ARP анализирует ARP-ответ и добавляет запись в свою ARP-таблицу. Новая запись в ARP-таблице появляется автоматически, спустя несколько миллисекунд после тога, как она потребовалась.

Некоторые реализации IP и ARP не ставят IP-пакеты в очередь на время ожидания ARP-ответов. Вместо этого IP-пакет просто уничтожается, а его восстановление возлагается на модуль ТСР или прикладной процесс, работающий через UDP. Токое восстановление выполняется с помощью тайм-аутов и повторных передач. Повторная передача сообщения проходит успешно. так как первая попытка уже вызвала заполнение ARP-таблицы.