1

Я не уверен насчет протокола ARP.

Пример сети показан ниже:

пример сети

Я хочу отправить сообщение от А до Б, протокол ARP будет работать:

  • Сначала будет отправлено МАС - адрес A и R1 IP
  • Затем B свяжется с R1 , и R3 отправит MAC-адрес R1 но также отправит IP R3
  • После этого B связывается с R3 , R4 отправляет R3 MAC-адрес, но IP R4
  • В конце посылка прибывает в B

  • Правильна ли моя логика?
  • Это как это работает, когда мне нужно изменить более 2 узлов?
  • Кроме того, если это работает так, как предыдущий узел знает MAC-адрес следующего узла?

3 ответа3

3

Протокол ARP используется только для обнаружения MAC-адреса, связанного с адресом IPv4 хоста на локальной линии.

В вашем примере, когда узел A хочет отправить сообщение узлу B, он отправляет его соответствующему маршрутизатору для доставки. Выбор маршрутизатора зависит от таблицы маршрутизации на хосте A. Маршрутизатор находится на том же канале, что и хост A, и для отправки сообщения на хост A маршрутизатора необходим MAC-адрес маршрутизатора R1. Если хост A не может найти MAC-адрес маршрутизатора R1 в своем кэше ARP, он использует протокол ARP для определения MAC-адреса маршрутизатора R1. Как только MAC-адрес известен, пакет может быть отправлен.

Как только маршрутизатор R1 получил сообщение, он повторяет то, что сделал хост A: он просматривает свою таблицу маршрутизации, выбирает маршрутизатор следующего перехода (скажем, R3). Если R1 не знает MAC-адрес R3, он использует протокол ARP, чтобы выяснить это. Получив MAC-адрес R3, он использует его для отправки сообщения на R3.

Это повторяется до тех пор, пока сообщение не достигнет хоста назначения B (или не произойдет какая-либо ошибка).

0

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

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

Так что нет никакого определенного порядка сообщений, когда A хочет общаться с B; это будет зависеть от того, что произошло раньше.

Также обратите внимание, что, поскольку у вас есть разные сегменты локальной сети между узлами, каждый узел будет запрашивать IP-адрес следующего узла ("next hop"), а не IP-адрес B. Поэтому вам нужны надлежащие таблицы маршрутизации для всего этого, чтобы Работа.

0

Вы путаете две вещи - ARP и Routing.

ARP

ARP (Address Resolution Protocol) используется для идентификации аппаратного адреса хоста в локальной сети (т. Е. Той же подсети).

Если A (IP 10.0.1.2/24) хотел установить связь с другим хостом (C) с IP-адресом 10.0.1.5 , то произойдет следующее, если этот хост отсутствует в кэше:

  1. A вещает «ARP запроса»
    • Использование широковещательного MAC-адреса (ff:ff:ff:ff:ff:ff)
    • Запрос любого хоста с IP-адресом 10.0.1.5 для ответа
  2. Если удаленный хост (C) получает этот пакет, то он отвечает своим правильным MAC-адресом.

ARP также может происходить с опережением: хосты « объявляют » себя, пытаясь уменьшить задержку, связанную с поиском, хотя это может легко привести к подделке и отравлению.

маршрутизация

Маршрутизация позволяет узлу получать доступ к другим узлам, которые находятся за пределами " локальной " сети. Например, хост B имеет IP-адрес 10.0.5.2 , который находится за пределами подсети хоста A 10.0.1.0/24 .

Чтобы получить пакеты на хост B , хост A должен отправить их через маршрутизатор (он же « шлюз »). Если маршрут по умолчанию не указан (или не настроен соответствующий конкретный маршрут), то хост недоступен.

Если маршрут существует, то A

  1. Используйте ARP, чтобы найти MAC-адрес маршрутизатора (R1)
  2. Отправьте пакет, адресованный IP B (10.0.5.2), но используя MAC-адрес маршрутизатора R1
  3. Маршрутизатор R1 выполнит тот же поиск, отправив пакет на MAC-адрес R3 (или R2), но с IP-адресом B
  4. Это продолжается до тех пор, пока пакет не достигнет B или пока маршрутизатор не объявит, что он не может маршрутизировать к данному хосту.

Если это работает так, как предыдущий узел узнает MAC-адрес следующего узла?

ARP используется на каждом этапе, чтобы получить MAC-адрес следующего хоста. R1 хочет переслать пакет через R3 , поэтому он использует ARP для получения MAC-адреса R3 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .