Интернет магазин китайских планшетных компьютеров



Компьютеры - ARP - Принцип работы

30 мая 2011


Оглавление:
1. ARP
2. Вариации ARP-протокола
3. Принцип работы
4. ARP кэш



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


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

Ниже проиллюстрирована структура пакета, используемого в запросах и ответах 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 Protocol type
32 Hardware length Protocol length Operation
64 Sender hardware address
 ? Sender protocol address
 ? Target hardware address
 ? Target protocol address
Hardware type 
Каждый транспортный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 0x0001.
Protocol type 
Код протокола. Например, для IPv4 будет записано 0x0800.
Hardware length 
Длина физического адреса в байтах. Ethernet адреса имеют длину 6 байт.
Protocol length 
Длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта.
Operation 
Код операции отправителя: 1 в случае запроса и 2 в случае ответа.
Sender hardware address 
Физический адрес отправителя.
Sender protocol address 
Логический адрес отправителя.
Target hardware address 
Физический адрес получателя. Поле пусто при запросе.
Target protocol address 
Логический адрес получателя.

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

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 = 0x000958D8
96 SHA = 0x1122 SPA = 0x0A0A
128 SPA = 0x0A7B THA = 0x0000
160 THA = 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 = 0x0001 Protocol type = 0x0800
32 Hardware length = 6 Protocol length = 4 Operation = 2
64 SHA = 0x000958D8
96 SHA = 0x33AA SPA = 0x0A0A
128 SPA = 0x0A8C THA = 0x0009
160 THA = 0x58D81122
192 TPA = 0x0A0A0A7B
  • Замечание: Длина полей SHA, SPA, THA, TPA зависит от параметров Hardware length и Protocol length соответственно


Просмотров: 4812


<<< ARCNET
ATA over Ethernet >>>