Как команда ping действительно работает? В частности, где ARP (протокол разрешения адресов) входит в картину?
Мне задали этот вопрос в интервью, и я не смог придумать сценарий, в котором можно было бы использовать ARP.
networking
ping
arp
network-protocols
liv2hak
источник
источник
Ответы:
Если вы действительно хотите понять, здесь есть отличная (очень хорошо написанная) белая книга:
http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Mays_Ping.pdf
Вот резюме ->
Ping (Program on the application layer)
------->Opens a 'raw' socket to IP Layer
------>IP layer (Layer 2 on OSI) packages ICMP packet and sends it
Поскольку между ними нет уровня TCP,
Ping (program)
он должен контролировать все входящие ICMP-пакеты и фильтровать только один из пункта назначения.Надеюсь, это поможет.
источник
Предполагая, что пинг включает в себя отправку пакета по сети Ethernet или WiFi, ARP используется для поиска аппаратного адреса Ethernet устройства, которое принимает исходящий пакет. Как правило, это будет маршрутизатор для локальной сети, на которой включен компьютер, на котором выполняется пинг.
Типичный процесс:
Вы вводите команду для проверки связи с пунктом назначения.
DNS используется для определения IP-адреса (при необходимости).
С таблицей маршрутизации обращаются, чтобы найти следующий переход к этому месту назначения.
ARP используется для поиска аппаратного адреса следующего перехода.
Пакет IP отправляется на следующий переход, инкапсулированный в кадр Ethernet или WiFi.
источник
На самом деле Ping - это два разных пакета ICMP (Internet Control Message Protocol).
Чтобы пропинговать хост, вы сначала отправляете пакет эхо-запроса ICMP, затем хост отвечает эхо-ответом ICMP.
Для получения дополнительной информации см .: https://en.wikipedia.org/wiki/Ping_(networking_utility).
источник
Ping и ARP - это разные вещи, расположенные на разных уровнях стека сетевых протоколов.
Ping находится на сетевом уровне (или интернет-уровне - посмотрите протокол ICMP , как указано @ServerMonkey).
Протокол Arp находится на канальном уровне (более низкий уровень). Протокол Arp предназначен для обеспечения физического соединения между сетевым оборудованием, которое подключено напрямую.
В сетевом стеке TCP / IP каждый уровень использует следующий уровень для пересылки своих данных, инкапсулируя их в протокол низкого уровня. Каждый уровень не зависит от другого и, возможно, не знает подробностей и реализаций других уровней (это не всегда так: см. Межуровневую функцию ).
источник
ARP предоставляет MAC-адрес, но иногда, если адрес DMAC отсутствует, используется широковещательный адрес.
Этот кадр с использованием широковещательного DMAC называется кадром широковещательной передачи ARP, при этом мы получаем адрес DMAC.
источник