ARP

ARP
ARP
Название:

Address Resolution Protocol

Уровень (по модели OSI):

канальный

Семейство:

TCP/IP

Создан в:

1982 г.

Порт/ID:

0x0806/Ethernet

Назначение протокола:

Преобразование сетевых адресов в канальные

Спецификация:

RFC 826

Основные реализации (клиенты):

реализации стека TCP/IP в Microsoft Windows, Linux и BSD

Основные реализации (серверы):

реализации стека TCP/IP в Windows, Linux и BSD

ARP (англ. Address Resolution Protocol — протокол определения адреса) — протокол канального уровня, предназначенный для определения MAC-адреса по известному IP-адресу. Наибольшее распространение этот протокол получил благодаря повсеместности сетей IP, построенных поверх Ethernet, поскольку практически в 100 % случаев при таком сочетании используется ARP.

Содержание

Описание

Описание протокола было опубликовано в ноябре 1982 года в RFC 826. ARP был спроектирован для случая передачи IP-пакетов через сегмент Ethernet. При этом общий принцип, предложенный для ARP, может, и был использован и для сетей других типов.

Существуют следующие типы сообщений ARP: запрос ARP (ARP request) и ответ ARP (ARP reply). Система-отправитель при помощи запроса ARP запрашивает физический адрес системы-получателя. Ответ (физический адрес узла-получателя) приходит в виде ответа ARP.

Перед тем как передать пакет сетевого уровня через сегмент Ethernet, сетевой стек проверяет кэш ARP, чтобы выяснить, не зарегистрирована ли в нём уже нужная информация об узле-получателе. Если такой записи в кэше ARP нет, то выполняется широковещательный запрос ARP. Этот запрос для устройств в сети имеет следующий смысл: «Кто-нибудь знает физический адрес устройства, обладающего следующим IP-адресом?» Когда получатель с этим IP-адресом примет этот пакет, то должен будет ответить: «Да, это мой IP-адрес. Мой физический адрес следующий: …» После этого отправитель обновит свой кэш ARP и будет способен передать информацию получателю. Ниже приведён пример запроса и ответа ARP. <см. внизу страницы>

Записи в кэше ARP могут быть статическими и динамическими. Пример, данный выше, описывает динамическую запись кэша. Можно также создавать статические записи в таблице ARP. Это можно сделать при помощи команды:

arp -s <IP-адрес> <MAC-адрес>

Записи в таблице ARP, созданные динамически, остаются в кэше в течение 2-х минут[источник не указан 39 дней]. Если в течение этих двух минут произошла повторная передача данных по этому адресу, то время хранения записи в кэше продлевается ещё на 2 минуты. Эта процедура может повторяться до тех пор, пока запись в кэше просуществует до 10 минут. После этого запись будет удалена из кэша, и будет отправлен повторный запрос ARP.[источник не указан 931 день]

Вариации ARP-протокола

ARP изначально был разработан не только для IP протокола, но в настоящее время в основном используется для сопоставления IP- и MAC-адресов.

ARP также можно использовать для разрешения MAC-адресов для различных адресов протоколов 3-го уровня (Layer 3 protocols addresses). ARP был адаптирован также для разрешения других видов адресов 2-го уровня (Layer 2 addresses); например, ATMARP используется для разрешения ATM NSAP адресов в Classical IP over ATM протоколе.

Inverse ARP

Inverse Address Resolution Protocol, Inverse ARP или InARP — протокол для получения адресов сетевого уровня (например IP адресов) других рабочих станций по их адресам канального уровня (например, DLCI в Frame Relay сетях). В основном используется во Frame Relay и ATM сетях.

Сравнение ARP и InARP

ARP переводит адреса сетевого уровня в адреса канального уровня, в то же время InARP можно рассматривать как его инверсию. InARP реализовано как расширение ARP. Форматы пакетов этих протоколов одни и те же, различаются лишь коды операций и заполняемые поля.

Reverse ARP (RARP), как и InARP, переводит адреса канального уровня в адреса сетевого уровня. Но RARP используется для получения логических адресов самих станций отправителей, в то время как в InARP-протоколе отправитель знает свои адреса и запрашивает логический адрес другой станции. От RARP отказались в пользу BOOTP, который был в свою очередь заменён DHCP.

Принцип работы

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

Преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая ARP-таблицей, хранится в памяти и содержит строки для каждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса. Если требуется преобразовать IP-адрес в Ethernet-адрес, то ищется запись с соответствующим IP-адресом. Ниже приведен пример упрощенной ARP-таблицы.

           |      IP-адрес           Ethernet-адрес    |
           ---------------------------------------------
           |     223.1.2.1          08:00:39:00:2F:C3  |
           |     223.1.2.3          08:00:5A:21:A7:22  |
           |     223.1.2.4          08:00:10:99:AC:54  |
           ---------------------------------------------

Структура пакета

Ниже проиллюстрирована структура пакета, используемого в запросах и ответах ARP. В сетях Ethernet в этих пакетах используется EtherType 0x0806, и рассылаются широковещательно MAC-адрес — FF:FF:FF:FF:FF:FF. Отметим, что в структуре пакета, показанной ниже в качестве SHA, SPA, THA, & TPA условно используются 32-битные слова — реальная длина определяется физическим устройством и протоколом.

+ Bits 0 — 7 8 — 15 16 — 31
0 Destination MAC (0-15) Destination MAC (16-31)
32 Destination MAC (32-47) Source MAC (0-15)
64 Source MAC (16-31) Source MAC (32-47)
96 Hardware type (HTYPE) Protocol type (PTYPE)
128 Hardware length (HLEN) Protocol length (PLEN) Operation (OPER)
160 Sender hardware address (SHA)
 ? Sender protocol address (SPA)
 ? Target hardware address (THA)
 ? Target protocol address (TPA)
Hardware type (HTYPE) 
Каждый канальный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 0x0001.
Protocol type (PTYPE) 
Код сетевого протокола. Например, для IPv4 будет записано 0x0800.
Hardware length (HLEN) 
Длина физического адреса в байтах. Адреса Ethernet имеют длину 6 байт.
Protocol length (PLEN) 
Длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта.
Operation 
Код операции отправителя: 1 в случае запроса и 2 в случае ответа.
Sender hardware address (SHA) 
Физический адрес отправителя.
Sender protocol address (SPA) 
Логический адрес отправителя.
Target hardware address (THA) 
Физический адрес получателя. Поле пусто при запросе.
Target protocol address (TPA) 
Логический адрес получателя.

Пример запроса

ARP-request

Если хост с IPv4 адресом 10.10.10.123 и MAC адресом 00:09:58:D8:11:22 хочет послать пакет другому хосту с адресом 10.10.10.140, но не знает его MAC адрес, то он должен послать ARP запрос для разрешения адреса.

Пакет, изображённый ниже, изображает широковещательный запрос. Если хост с IP 10.10.10.140 присутствует в сети и доступен, то он получает этот запрос ARP и возвращает ответ.

+ Bits 0 — 7 8 — 15 16 — 31
0 Hardware type = 0x0001 Protocol type = 0x0800
32 Hardware length = 6 Protocol length = 4 Operation = 1
64 SHA (first 32 bits) = 0x000958D8
96 SHA (last 16 bits) = 0x1122 SPA (first 16 bits) = 0x0A0A
128 SPA (last 16 bits) = 0x0A7B THA (first 16 bits) = 0x0000
160 THA (last 32 bits) = 0x00000000
192 TPA = 0x0A0A0A8C

Пример ответа

В ситуации, описанной выше, если узел с адресом 10.10.10.140 имеет MAC адрес 00:09:58:D8:33:AA, то он отправит в ответ пакет, проиллюстрированный ниже. Заметим, что блоки адресов отправителя и получателя теперь поменяли значения (отправитель ответа теперь получатель запроса; получатель ответа — отправитель запроса). Кроме того, в ответе есть MAC-адрес узла 10.10.10.140 в поле физического адреса отправителя (SHA).

Любой узел в той же сети, что и отправитель с получателем, тоже получит запрос (так как он широковещательный) и таким образом добавит в свой кэш информацию об отправителе. Ответ ARP направлен только источнику запроса ARP, поэтому ответ ARP не доступен другим узлам в сети.

+ Bits 0 — 7 8 — 15 16 — 31
0 Hardware type = 0x0001 Protocol type = 0x0800
32 Hardware length = 6 Protocol length = 4 Operation = 2
64 SHA (first 32 bits) = 0x000958D8
96 SHA (last 16 bits) = 0x33AA SPA (first 16 bits) = 0x0A0A
128 SPA (last 16 bits) = 0x0A8C THA (first 16 bits) = 0x0009
160 THA (last 32 bits) = 0x58D81122
192 TPA = 0x0A0A0A7B
  • Замечание: Длина полей SHA, SPA, THA, TPA зависит от параметров Hardware length и Protocol length соответственно
  • Замечание: Для передачи пакета на канальном уровне OSI добавляется MAC отправителя и получателя.

ARP кэш

Эффективность функционирования ARP во многом зависит от ARP кэша (ARP cache), который присутствует на каждом хосте.

В кэше содержатся IP адреса и соответствующие им аппаратные адреса.

Стандартное время жизни каждой записи в кэше составляет 2 минуты с момента создания записи[источник не указан 39 дней].

ARP Обнаружение Конфликтов Адресов (Address Conflict Detection)

Протокол ARP используется для обнаружения конфликтов IP-адресов в локальной сети. RFC 5227 определяет формат запроса 'ARP Probe' с полем SPA состоящим из всех нулей (ip-адрес 0.0.0.0). Перед использованием IP-адреса хост может проверить что данный IP-адрес не используется другим хостом сегмента локальной сети.

ARP Оповещение

ARP оповещение (ARP Announcement) — это пакет (обычно ARP запрос [1]) содержащий корректную SHA и SPA хоста-отправителя, с TPA равной SPA. Это не разрешающий запрос, а запрос на обновление ARP-кеша других хостов, получающих пакет.

Большинство операционных систем посылают такой пакет при включении хоста в сеть, это позволяет предотвратить ряд проблем. Например при смене сетевой карты (когда необходимо обновить связь между IP и MAC адресами), такой запрос исправит записи в ARP-кеше других хостов в сети.

ARP оповещения также используются для 'защиты' IP адресов в RFC 3927 (Zeroconf) протоколе.

ARP запросы могут решать и другие задачи. Так при загрузке сетевого обеспечения ЭВМ такой запрос может выяснить, а не присвоен ли идентичный IP-адрес какому-то еще объекту в сети.

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

Самообращенный запрос позволяет ЭВМ решить две проблемы. Во-первых, определить, нет ли в сети объекта, имеющего тот же IР-адрес. Если на такой запрос придет отклик, то ЭВМ выдаст на консоль сообщение Dublicate IP address sent from Ethernet address <...>. Во-вторых, в случае смены сетевой карты производится корректировка записи в АRP-таблицах ЭВМ, которые содержали старый МАС-адрес инициатора. Машина, получающая ARP-запрос c адресом, который содержится в ее таблице, должна обновить эту запись.

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

Примечания

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "ARP" в других словарях:

  • Arp — bezeichnet: Arp (Texas), Stadt in Texas ARP ist der Name von: ARP Datacon GmbH, eine Tochterfirma der Bechtle AG ARP Instruments, ein ehemaliges bis 1981 Synthesizer herstellendes Unternehmen in den Vereinigten Staaten von Amerika Arp ist der… …   Deutsch Wikipedia

  • ARP (H.) — Poète, peintre et sculpteur, Hans Arp fut successivement dadaïste, surréaliste, abstrait. Mais la diversité n’est pas la dissipation, ni l’adhésion la servitude: par le caractère naturel et spontané de sa veine créatrice, Arp s’est gardé de… …   Encyclopédie Universelle

  • ARP — ist der Name folgender Orte in den Vereinigten Staaten: Arp (Georgia) Arp (Tennessee) Arp (Texas) ARP ist der Name von: ARP GmbH, eine Tochterfirma der Bechtle AG ARP Instruments, ein ehemaliges bis 1981 Synthesizer herstellendes Unternehmen in… …   Deutsch Wikipedia

  • Arp — may refer to:* Arp number, a numbering system for galaxies * Arp, Texas * Arpeggio, a broken chord in which notes are played or sung in succession rather than simultaneously * Arpeggiator, a feature found on sound synthesizers and virtual musical …   Wikipedia

  • Arp — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. {{{image}}}   Sigles d une seule lettre   Sigles de deux lettres > Sigles de trois lettres …   Wikipédia en Français

  • Arp 87 — is a pair of interacting galaxies NGC 3808A and NGC 3808B. It is situated about 300 million light years from Earth in the Leo constellation.ee also*Atlas of Peculiar Galaxies by Halton ArpExternal links*… …   Wikipedia

  • Arp — Arp, TX U.S. city in Texas Population (2000): 901 Housing Units (2000): 405 Land area (2000): 2.451294 sq. miles (6.348822 sq. km) Water area (2000): 0.000000 sq. miles (0.000000 sq. km) Total area (2000): 2.451294 sq. miles (6.348822 sq. km)… …   StarDict's U.S. Gazetteer Places

  • Arp, TX — U.S. city in Texas Population (2000): 901 Housing Units (2000): 405 Land area (2000): 2.451294 sq. miles (6.348822 sq. km) Water area (2000): 0.000000 sq. miles (0.000000 sq. km) Total area (2000): 2.451294 sq. miles (6.348822 sq. km) FIPS code:… …   StarDict's U.S. Gazetteer Places

  • Arp — [ȧrp] Jean [zhän] 1887 1966; Fr. painter & sculptor, born in Alsace: also Hans Arp …   English World dictionary

  • Arp 42 — Arp 42= Arp 42 is a group of galaxies in the constellation Boötes.* NGC 5829 * IC 4526 …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»