Пінг (англ. Packet Inter-Network Groper, PING)[1] — службова комп'ютерна програма, призначена для перевірки з'єднань в мережах на основі TCP/IP.

Вона відправляє запити (англ. Echo-Request) протоколу ICMP зазначеному вузлу мережі й фіксує відповіді (англ. Echo-Reply). Час між відправленням запиту й одержанням відповіді (RTT, від англ. Round Trip Time) дозволяє визначати двосторонні затримки у маршруті й частоту втрати пакетів, тобто побічно визначати завантаженість каналів передачі даних і проміжних пристроїв.

Повна відсутність ICMP-відповідей може також означати, що віддалений вузол (або якийсь із проміжних маршрутизаторів) блокує ICMP Echo-Reply або ігнорує ICMP Echo-Request.

Програма ping є одним з основних діагностичних засобів у мережах TCP/IP і входить у постачання всіх сучасних мережевих операційних систем. Функціональність ping також реалізована в деяких вбудованих операційних системах маршрутизаторів, доступ до результатів виконання ping для таких пристроїв за протоколом SNMP визначається стандартами (англ. Definitions of Managed Objects for Remote Ping, Traceroute, and Lookup Operations)[2].

Історія

[ред. | ред. код]

Програма була написана Майком Мууссом[en], вченим Лабораторії дослідження балістики[en] в грудні 1983 року, як утиліта діагностики проблем у мережах[3]. В одному з інтерв'ю Майк Муусс жартома зазначив, що якби він тільки знав, що програма буде найбільшим досягненням в його житті, він би попрацював над нею ще декілька днів і додав би декілька опцій.

Корисність утиліти ping в наданні допомоги діагностики проблем підключення до Інтернету була порушена, починаючи з 2003 року, коли інтернет-провайдери почали фільтрацію Echo Request. Це було обумовлено діяльністю зловмисників, що таким чином навантажували мережу, створюючи проблеми для маршрутизаторів. Однак утиліта використовується і надалі, оскільки може надати інформацію про існування віддаленої машини.

Етимологія

[ред. | ред. код]

Спочатку словом «ping» називали направлений акустичний сигнал сонарів ASDIC (англ. Allied Submarine Detection Investigation Committee) проти підводних човнів часів Другої Світової війни.

Тому назва програми походить від звуку імпульсу, що реєструє сонар при його відбитті від об'єкта, оскільки методологія утиліти схожа на ехолокацію.

Сам автор зазначав:

З моєї точки зору слово PING не є скороченням від Packet InterNet Grouper, а було взяте по аналогії з принципом гідролокатора. Тим не менш, я чув, що Дейв Міллс пропонував таке розшифрування, тому, можливо, ми обидва маємо рацію. І я подумав, що уряд має слабкість до скорочень! :-)[3]

Оригінальний текст (англ.)
From my point of view PING is not an acronym standing for Packet InterNet Grouper, it's a sonar analogy. However, I've heard second-hand that Dave Mills offered this expansion of the name, so perhaps we're both right. Sheesh, and I thought the government was bad about expanding acronyms! :-)

Практичне застосування

[ред. | ред. код]

Структура 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 пакету наступна:

Параметри

[ред. | ред. код]

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

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Packet Internet Groper | Packet Inter-Network Groper | PING | Glossary. Архів оригіналу за 4 червня 2016. Процитовано 22 травня 2016.
  2. RFC [Архівовано 8 вересня 2014 у Wayback Machine.] (англ.)
  3. а б Історія програми ping від автора [Архівовано 2006-07-15 у Wayback Machine.] (англ.)

Посилання

[ред. | ред. код]