В чем смысл ARP?
Я начинаю работать в сети, но если я понял это правильно, суть ARP заключается в следующем:
Мы хотим использовать высокоуровневые адреса в максимально возможной степени, но в конечном итоге нам нужен адрес MAC-адресов приемников для его передачи.
- Мы отправляем пакет на хост с ip-адресом
I
. Но мы не знаем, на какой MAC-адрес отправить его. - Теперь мы передаем сообщение в стиле «эй, к кому принадлежит этот IP-адрес?»
- Приемник распознает свой IP-адрес и отвечает, отправив свой MAC-адрес.
Итак, мы делаем ARP, потому что мы не хотим транслировать весь пакет?
Последующее наблюдение № 1: Я помню, что, читая, по крайней мере, для сетей Ethernet, широковещательная передача в основном столь же дешева, как и одиночные передачи. Но во время отправки пакета мы не знаем, находится ли приемник на Ethernet, поэтому мы не можем предположить, что вещание дешево?
Последующий # 2: В какой момент мы транслируем? Скажем, что раковина находится в 23.235.37.67
. Действительно ли мы транслируем на 23.235.37.67
? Если да, то что делает его трансляцией, а не одной передачей пользователя? Почему бы не транслировать весь пакет, если на этом IP-адресе есть только один компьютер?
2 ответа
Трансляции прерывают каждый хост в широковещательном домене, что не очень хорошо. ARP должен транслироваться, чтобы найти MAC-адрес, но после этого MAC-адрес становится кэшированным в таблице ARP (он в конечном итоге истекает). Кэширование MAC-адреса предотвращает чрезмерные передачи из ARP - только первый пакет должен быть ARP (широковещательный), а остальная часть потока может использовать кеш ARP.
Ключом к ответам на ваши вопросы является то, что для ПК1 для связи с PC2 , что у ПК1 есть и , что PC1 хочет и , как PC1 получает то, что он хочет
Прежде всего, в сети у нас нет ничего, что называется адресом высокого уровня или адресом низкого уровня, но у нас есть физический адрес (MAC-адрес), который является адресом L2 и имеет логический адрес (IP-адрес), который является адресом L3. И используя ARP, мы сопоставляем оба, чтобы собрать, чтобы получить что-то, называемое таблицей ARP .
В этих таблицах содержатся хосты, с которыми ПК может связаться с ними (например, телефонная книга, вы будете называть лиц, у которых есть только номера, а для человека у вас нет номера, который вы попросите)
Первая часть ключа , что у ПК1 есть ???
В случае ARP PC1 имеет адрес L3 (IP) ПК2, с которым ему необходимо установить связь.
Вторая часть ключа , что PC1 хочет ???
он хочет, чтобы адрес L2 (MAC-адрес) PC2 установил связь с ним
Обратите внимание, что
ПК для связи с другим ПК отправит ему что-то вроде этого
|SRC MAC | SRC IP | payload |DST IP|DSP MAC |
Так просто в нашем случае мы знаем 4 вещи из 5, мы знаем SRC MAC, SRC IP, полезную нагрузку, DST IP, но мы не знаем DSP MAC. Таким образом, PC1 отправит этот пакет так, как он есть, и для той части, которая не знает, что она отправит широковещательный адрес (FF: FF: FF: FF: FF: FF) и только ПК, который имеет этот DST IP воспроизведет эту трансляцию по собственному MAC-адресу, который точно соответствует PC1.
отправка пакета с MAC-адресом Broudcast Запрос ARP и, конечно же, повторение ПК2 по названию ARP-повтор
, а также вы можете найти очень хороший пример для ARP в этой ссылке Пример ARP