Як насправді працює команда ping? Зокрема, де відображається протокол ARP (Address Resolution Protocol)?
Мені було задано це питання в інтерв'ю, і я не зміг придумати сценарій, коли можна використовувати ARP.
Як насправді працює команда ping? Зокрема, де відображається протокол ARP (Address Resolution Protocol)?
Мені було задано це питання в інтерв'ю, і я не зміг придумати сценарій, коли можна використовувати ARP.
Відповіді:
Якщо ви дійсно хочете зрозуміти, тут є чудова (дуже добре написана) біла книга:
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 і фільтрувати лише ті, що входять до пункту призначення.
Сподіваюся, що це допомагає.
Якщо припустимо, що ping включає пакет, що надсилається через Ethernet або WiFi мережу, ARP використовується для пошуку апаратної адреси Ethernet пристрою, який отримує вихідний пакет. Зазвичай це маршрутизатор для локальної мережі, на якій працює машина, яка походить з пінгу.
Типовий процес:
Ви вводите команду для пінг-адреса.
DNS використовується для визначення IP-адреси (за потреби).
Таблиця маршрутизації консультується, щоб знайти наступний стрибок у напрямку призначення.
ARP використовується для пошуку апаратної адреси наступного переходу.
Пакет IP відправляється на наступний скачок, інкапсульований у кадр Ethernet або WiFi.
Ping - це фактично два різні пакети ICMP (Internet Control Message Protocol).
Щоб пінг-хосту ви спочатку надіслали ICMP-пакет запиту ехо, хост відповість за допомогою ICMP Echo-відповіді.
Для отримання додаткової інформації див: https://en.wikipedia.org/wiki/Ping_(networking_utility)
Ping та ARP - це різні речі, розташовані на різних рівнях у стеку мережевого протоколу.
Ping знаходиться на мережевому рівні (або Інтернет-шарі). Подивіться на протокол ICMP , як вказував @ServerMonkey.
Протокол Arp знаходиться на рівні посилання (нижчий рівень). Протокол Arp призначений для фізичного з'єднання між мережевим обладнанням, яке безпосередньо підключено.
У мережевому стеку TCP / IP кожен шар використовує шар нижче для пересилання своїх даних, інкапсулюючи їх всередині протоколу низького рівня. Кожен шар є незалежним від іншого та, можливо, не знає про інші рівні конкретних деталей та реалізацій (це не завжди вірно: див. Функцію міжшарового шару ).
ARP надає MAC-адресу, але іноді, якщо немає адреси DMAC, використовується широкомовна адреса.
Цей кадр з використанням широкомовного DMAC називається кадром широкомовної передачі ARP, завдяки цьому ми отримуємо DMAC-адресу.