Пінг (, PING) — службова комп'ютерна програма, призначена для перевірки з'єднань в мережах на основі TCP/IP.
Вона відправляє запити () протоколу ICMP зазначеному вузлу мережі й фіксує відповіді (). Час між відправленням запиту й одержанням відповіді (RTT, від ) дозволяє визначати двосторонні затримки у маршруті й частоту втрати пакетів, тобто побічно визначати завантаженість каналів передачі даних і проміжних пристроїв.
Повна відсутність ICMP-відповідей може також означати, що віддалений вузол (або якийсь із проміжних маршрутизаторів) блокує ICMP Echo-Reply або ігнорує ICMP Echo-Request.
Програма ping є одним з основних діагностичних засобів у мережах TCP/IP і входить у постачання всіх сучасних мережевих операційних систем. Функціональність ping також реалізована в деяких вбудованих операційних системах маршрутизаторів, доступ до результатів виконання ping для таких пристроїв за протоколом SNMP визначається стандартами ()RFC .
Історія Програма була написана , вченим в грудні 1983 року, як утиліта діагностики проблем у мережахІсторія програми ping від автора . В одному з інтерв'ю Майк Муусс жартома зазначив, що якби він тільки знав, що програма буде найбільшим досягненням в його житті, він би попрацював над нею ще декілька днів і додав би декілька опцій.
Корисність утиліти ping в наданні допомоги діагностики проблем підключення до Інтернету була порушена, починаючи з 2003 року, коли інтернет-провайдери почали фільтрацію Echo Request. Це було обумовлено діяльністю зловмисників, що таким чином навантажували мережу, створюючи проблеми для маршрутизаторів. Однак утиліта використовується і надалі, оскільки може надати інформацію про існування віддаленої машини.
Етимологія Спочатку словом «ping» називали направлений акустичний сигнал сонарів ASDIC () проти підводних човнів часів Другої Світової війни.
Тому назва програми походить від звуку імпульсу, що реєструє сонар при його відбитті від об'єкта, оскільки методологія утиліти схожа на ехолокацію.
Сам автор зазначав:
Практичне застосування можна дізнатися IP-адресу по доменному імені; можна перевірити, чи є зв'язок з віддаленим вузлом; можна визначити, чи є на поточному комп'ютері проблеми з налаштуванням DNS, задавши ping спочатку доменне ім'я, а потім IP-адресу; можна перевірити якість каналу, подивившись, скільки пакетів не дійшло або час відклику. Ця можливість часто використовується в мережевих багатокористувацьких іграх, оскільки якість зв'язку дуже важлива для них. Ігровий сервер вимірює час, за який необхідний для гри пакет досягне клієнта і відповідь буде отримана. Цей час прийняття-передання, як правило, називають ping гравця. Проте це не завжди можна вважати показником, оскільки в деяких мережах протокол ICMP може блокуватися.
Структура ICMP пакету
+ IP Datagram Bit 0 — 7 Bit 8 — 15 Bit 16 — 23 Bit 24 — 31 IP Header(20 bytes) Version/IHL Type of service Length Identification flags and offset Time To Live (TTL) Protocol Checksum Source IP address Destination IP address ICMP Header(8 bytes) Type of message Code Checksum Header Data ICMP Payload(optional) Payload Data
Отже структура ICMP пакету наступна: IP Header (фіолетовим кольором): Protocol встановлюється значення — 1 (ICMP); Type of Service — 0. ICMP Header (рожевим кольором): Type of message (8 біт) — тип повідомлення ICMP; Code (8 біт); Checksum (16 біт) — контрольна сума, обраховується з ICMP пакету, заголовок не враховується; Header Data (32 біти) — містить Identifier та Sequence number (по 16 біт), що необхідні для правильного визначення відправника. ICMP Payload Payload — необхідно для збереження і передачі відповідей різного типу. Наприклад, TimeStamp.
Параметри
Windows + Параметр Значення -t Відправка пакетів на вказаний вузол до команди переривання -a Встановлення адрес по іменах вузлів -n Число запитів, що відсилаються -l Розмір буферу відсилання -f Встановлення прапорця, що забороняє фрагментацію пакета -i Встановлення строку життя пакету <"Time To Live"> -v Встановлення типу служби <"Type Of Service"> -r Запис маршруту для вказаного числа переходів -s Штамп часу для вказаного числа переходів -j Вільний вибір маршруту по списку вузлів -k Жорсткий вибір маршруту по списку вузлів -w Таймаут кожної відповіді в мілісекундах −4 Примусове використання протоколу IPv4 −6 Примусове використання протоколу IPv6
Приклад Windows C:\>ping wikipedia.org
Pinging wikipedia.org [91.198.174.192] with 32 bytes of data: Reply from 91.198.174.192: bytes=32 time=55ms TTL=52 Reply from 91.198.174.192: bytes=32 time=55ms TTL=52 Reply from 91.198.174.192: bytes=32 time=55ms TTL=52 Reply from 91.198.174.192: bytes=32 time=55ms TTL=52
Ping statistics for 91.198.174.192: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 55ms, Maximum = 55ms, Average = 55ms
Linux # ping -c 5 www.example.com PING www.example.com (192.0.43.10) 56(84) bytes of data. 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=1 ttl=250 time=80.5 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=2 ttl=250 time=80.4 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=3 ttl=250 time=80.3 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=4 ttl=250 time=80.3 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=5 ttl=250 time=80.4 ms
--- www.example.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 80.393/80.444/80.521/0.187 ms
Див. також arping Ping-флуд
Примітки
Посилання Online Ping check from multiple locations Мережеві утіліти Ping Test Online