See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
ARP — Википедия

ARP

Материал из Википедии — свободной энциклопедии

ARP
Название: Address Resolution Protocol
Уровень (по модели ВОС): Сетевой
Семейство: TCP/IP
Создан в: 1982 г.
Порт/ID: 0x0806/Ethernet
Назначение протокола: Преобразование сетевых адресов в канальные
Спецификация: RFC 826
Основные реализации (клиенты): реализации стека TCP/IP в Microsoft Windows, Linux и BSD
Основные реализации (серверы): реализации стека TCP/IP в Windows, Linux и BSD

ARP (англ. Address Resolution Protocol — протокол разрешения адресов) — сетевой протокол, предназначенный для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP. Он определён в RFC 826.



ARP (протокол разрешения адресов) — очень распространённый и чрезвычайно важный протокол. Каждый узел сети имеет два адреса, физический адрес и логический адрес. В сети Ethernet для идентификации источника и получателя информации используются оба адреса. Информация пересылаемая от одного компьютера другому по сети содержит в себе физический адрес отправителя, IP-адрес отправителя, физический адрес получателя и IP-адрес получателя. ARP-протокол обеспечивает связь между этими двумя адресами. Существует четыре типа ARP-сообщений: ARP-запрос (ARP request), ARP-ответ (ARP reply), RARP-запрос (RARP-request) и RARP-ответ (RARP-reply). Локальный хост при помощи ARP-запроса запрашивает физический адрес хоста-получателя. Ответ (физический адрес хоста-получателя) приходит в виде ARP-ответа. Хост-получатель, вместе с ответом, шлет также RARP-запрос, адресованный отправителю, для того, чтобы проверить его IP адрес. После проверки IP адреса отправителя, начинается передача пакетов данных.

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

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

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

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

Содержание

[править] Вариации 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 — протокол для получения Layer 3 адреса (например IP адресов) других рабочих станций по Layer 2 адресам (например DLCI в Frame Relay сетях). В основном используется во Frame Relay и ATM сетях.

[править] Сравнение ARP и InARP

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

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

[править] Структура пакета

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

+ Bits 0 — 7 8 — 15 16 — 31
0 Hardware type (HTYPE) Protocol type (PTYPE)
32 Hardware length (HLEN) Protocol length (PLEN) Operation (OPER)
64 Sender hardware address (SHA)
 ? Sender protocol address (SPA)
 ? Target hardware address (THA)
 ? Target protocol address (TPA)
Hardware type (HTYPE) 
Каждый транспортный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 1.
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) 
Логический адрес получателя.

[править] Пример запроса

Если хост с 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 = 1 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, то он пошлет в ответ пакет, проиллюстрированный ниже. Заметим, что блоки адресов отправителя и получателя теперь поменяли значения (отправитель ответа теперь получатель запроса; получатель ответа — отправитель запроса). Кроме того, хост 10.10.10.140 заполнил свой MAC адрес в поле физического адреса отправителя.

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

+ Bits 0 — 7 8 — 15 16 — 31
0 Hardware type = 1 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

[править] ARP Оповещение

  • Замечание: Длинна полей SHA,SPA,THA,TPA зависит от параметров Hardware length и Protocol length соответственно, в данном случае таблицы не совсем верны, при посылке запроса к станции с неизвестным MAC адресом в поле назначения нужно указывать широковешательный адрес: FF FF FF FF FF FF (-kipish-)

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

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

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

[править] См. также

[править] Внешние ссылки




aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -