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

5.1.1 Формат протокола arp

В отличие от большинства протоколов, данные в пакетах ARP не имеют фиксированного формата заголовка. Вместо этого его сообщения были разработаны так, чтобы их можно было использовать для различных сетевых технологий. Поэтому, первые поля заголовка содержат счетчики, которые указывают длину следующих полей. Фактически, ARP можно использовать с произвольными физическими адресами и произвольными протокольными адресами. Пример на рисунке 18 показывает 28-октетный формат сообщения ARP, используемый для оборудования Ethernet (у которого физические адреса являются 48-битовыми или 6-октетными) при разрешении протокольных адресов IP (имеющих длину 4 октета).

Рисунок 18- Пример формата сообщения ARP/RARP для разрешения адресов IP-Ethernet

Длины полей зависят от длин аппаратных и протокольных адресов, которые имеют значение соответственно 6 октетов для адреса Ethernetа и 4 октета для IP-адреса.

Рисунок 18. показывает сообщение ARP по 4 байта в строке. К сожалению, в отличие от большинства остальных протоколов, поля переменной длины в пакетах ARP не выровнены на границу 32 бит, что приводит к трудности восприятия диаграммы. Например, аппаратный адрес отправителя, помеченный как отправитель АА, занимает 6 непрерывных октетов, что приводит к появлению его на двух строках диаграммы.

Поле тип оборудования определяет тип аппаратного интерфейса, для которого отправитель ищет ответ; оно содержит значение 1 для Ethernetа. Аналогичным образом, поле тип протокола указывает тип адреса протокола более высокого уровня, который использует отправитель. Поле операция указывает запрос ARP(1), ответ ARP(2), запрос RARP(3), или ответ RARP(4) RARP, другой протокол, использующий тот же самый формат сообщения. Поля HLEN и PLEN позволяют использовать ARP в любых сетях, так как они указывают длину аппаратного адреса и адреса протокола верхнего уровня. Отправитель передает свой аппаратный адрес и IP-адрес, если они известны ему, в полях отправитель АА и отправитель IP.

При посылке запроса отправитель также указывает IP-адреса назначения (ARP) или аппаратного адреса назначения (RARP), используя поля получатель АА и получатель IP. Отвечающая машина перед передачей ответа заполняет отсутствующие адреса, меняет местами пары отправителя и получателя и меняет код операции на ответ. Поэтому ответ содержит IP- и аппаратный адреса исходного отправителя, а также IP- и аппаратный адреса машины, которая разрешила эту связку.

5.1.2 Работа протокола arp

Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети – протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети или же протокол глобальной сети (Х.25, Frame Relay), как правило, не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу – нахождение IP-адреса по известному локальному адресу. Он называется реверсивным ARP (Reverse Address Resolution Protocol, RARP) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.

Необходимость в обращении к протоколу ARP возникает каждый раз, когда модуль IP передает пакет на уровень сетевых интерфейсов, например драйверу Ethernet. IP-адрес узла назначения известен модулю IP. Требуется на его основе найти МАС-адрес узла назначения.

Для осуществления коммуникации в сети Ethernet станция-источник должна знать IP- и МАС-адреса станции-получателя. После того как станция-отправитель определила IP-адрес станции-получателя, Internet-протокол источника использует таблицу ARP для нахождения соответствующего МАС-адреса получателя.

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

Рисунок19– Источник сверяется со своей ARP-таблицей после того, как определит IP-адрес пункта назначения

Таблица 2 - Пример ARP-таблицы

IP-адрес

МАС-адрес

Тип записи

197.15.22.33

008048ЕВ7Е60

Динамический

197.15.22.44

08005А21А722

Динамический

197.15.22.4

008048ЕВ7567

Статический

Работа протокола ARP (рисунок 20) начинается с просмотра ARP-таблицы. Каждая строка таблицы устанавливает соответствие между IP-адресом и МАС-адресом. Для каждой сети, подключенной к сетевому адаптеру компьютера или к порту маршрутизатора, строится отдельная ARP-таблица.

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

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

Рисунок 20 - Данные принимаются получателем, после того как установлено соответствие между МАС - и IP- адресами и инкапсулированы данные

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

Все узлы локальной сети получают ARP-запрос и сравнивают указанный IP-адрес с собственным. В случае совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес, а затем отправляет его уже направленно, так как в ARP-запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета.

Если Internet-протокол находит в своей таблице IP-адрес получателя, соответствующий его МАС-адресу, то он связывает их и использует для инкапсуляции данных, после чего пакет пересылается через сетевую среду и получается станцией-адресатом.

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

Рисунок 21 - Отправитель не может обнаружить МАС-адрес получателя в своей ARP-таблице

В примере, показанном на рисунке 21, отправитель не может обнаружить МАС-адрес получателя в своей ARP-таблице.

ARP-запросы структурированы определенным способом. Поскольку протокол ARP функционирует на нижних уровнях эталонной модели OSI, сообщение, в котором содержится ARP-запрос, должно быть инкапсулировано внутри кадра протокола аппаратных средств. Таким образом, кадр ARP-запроса состоит из двух частей: заголовка и ARP-сообщения. Кадр ARP-запроса показан на рисунке 22. Кроме того, заголовок кадра может быть затем разделен на МАС - и IP-заголовок. Заголовок кадра показан на рисунке 23.

Рисунок 22 - Кадр ARP-запроса состоит из заголовка и ARP-сообщения

Рисунок 23 - Заголовок кадра ARP-запроса

Поскольку пакет ARP-запроса посылается в режиме широковещания, его принимают все устройства в локальной сети и передают для анализа на сетевой уровень. Если IP-адрес устройства соответствует IP-адресу пункта назначения, содержащемуся в ARP-запросе, устройство откликается путем отправки источнику своего МАС-адреса. Этот процесс называется ARP-ответом. В примере, показанном на рисунке 21, источник 197.15.22.33 запрашивает МАС-адрес получателя, имеющего IP-адрес 197.15.22.126. Получатель 197.15.22.126 принимает ARP-запрос и откликается путем отправки ARP-ответа, содержащего его МАС-адрес. Структура ARP-ответа приведена на рисунке 24.

Рисунок 24- Структура ARP-ответа

Когда устройство, создавшее ARP-запрос, получает ответ, оно извлекает МАС-адрес из МАС-заголовка и обновляет свою ARP-таблицу. Теперь, когда устройство имеет всю нужную ему информацию, оно может добавить к данным МАС - и IP-адрес пункта назначения. Устройство использует эту новую структуру кадра для инкапсуляции данных перед отправкой их по сети. Новая структура кадра для инкапсуляции данных перед отправкой их по сети показана на рисунке 25.

Когда данные достигают адресата, производится сравнение на канальном уровне. Канальный уровень убирает МАС-заголовок и передает данные на следующий уровень эталонной модели OSI – сетевой. Сетевой уровень анализирует данные и обнаруживает, что его IP-адрес соответствует IP-адресу назначения, содержащемуся в IP-заголовке данных. Сетевой уровень убирает IP-заголовок и передает данные следующему более высокому уровню – транспортному (уровень 4). Этот процесс повторяется, пока остаток пакета не достигнет приложения, где данные будут прочитаны.

Рисунок 25 - Новая структура кадра для инкапсуляции данных перед отправкой их по сети.

Соседние файлы в папке Методичка по протоколам