як насправді працює команда 'ping'?


24

Як насправді працює команда ping? Зокрема, де відображається протокол ARP (Address Resolution Protocol)?

Мені було задано це питання в інтерв'ю, і я не зміг придумати сценарій, коли можна використовувати ARP.


Погляньте на ICMP.

3
ARP використовується для отримання MAC-адреси певної IP-адреси. Коли вам потрібно надіслати пакет по ethernet, вам потрібна MAC-адреса призначення.

Відповіді:


16

Якщо ви дійсно хочете зрозуміти, тут є чудова (дуже добре написана) біла книга:

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 і фільтрувати лише ті, що входять до пункту призначення.

Сподіваюся, що це допомагає.


9

Якщо припустимо, що ping включає пакет, що надсилається через Ethernet або WiFi мережу, ARP використовується для пошуку апаратної адреси Ethernet пристрою, який отримує вихідний пакет. Зазвичай це маршрутизатор для локальної мережі, на якій працює машина, яка походить з пінгу.

Типовий процес:

  1. Ви вводите команду для пінг-адреса.

  2. DNS використовується для визначення IP-адреси (за потреби).

  3. Таблиця маршрутизації консультується, щоб знайти наступний стрибок у напрямку призначення.

  4. ARP використовується для пошуку апаратної адреси наступного переходу.

  5. Пакет IP відправляється на наступний скачок, інкапсульований у кадр Ethernet або WiFi.


3
Тут єдина відповідь, яка насправді відповідає на питання!
jmiserez


1

Ping та ARP - це різні речі, розташовані на різних рівнях у стеку мережевого протоколу.

Ping знаходиться на мережевому рівні (або Інтернет-шарі). Подивіться на протокол ICMP , як вказував @ServerMonkey.

Протокол Arp знаходиться на рівні посилання (нижчий рівень). Протокол Arp призначений для фізичного з'єднання між мережевим обладнанням, яке безпосередньо підключено.

У мережевому стеку TCP / IP кожен шар використовує шар нижче для пересилання своїх даних, інкапсулюючи їх всередині протоколу низького рівня. Кожен шар є незалежним від іншого та, можливо, не знає про інші рівні конкретних деталей та реалізацій (це не завжди вірно: див. Функцію міжшарового шару ).


так, але для впровадження ping потрібен код у L2 (посилання шару.) ARP ввійде в гру на

@ liv2hak. ні. Реалізація ping лежить на нижньому шарі зв'язку.

Архів @liv часто називають шаром 2,5. ICMP часто називають шаром 3,5. Шари більше стосуються полів, ніж коду. І якщо ви хочете сказати, що для реалізації ping потрібен код на рівні 2, ну, при будь-якій реалізації чого-небудь, за визначенням, ви не можете мати шар без шарів під ним.
барлоп

1

ARP надає MAC-адресу, але іноді, якщо немає адреси DMAC, використовується широкомовна адреса.

Цей кадр з використанням широкомовного DMAC називається кадром широкомовної передачі ARP, завдяки цьому ми отримуємо DMAC-адресу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.