Ping — утилита проверки сети¶
Ping — утилита командной строки и сетевой протокол, предназначенный для проверки доступности узла в компьютерной сети и измерения времени кругового обмена (RTT) между ним и источником. Название происходит от англ. ping — звук, издаваемый сонаром при отражении сигнала от объекта. Утилита работает на основе протокола ICMP (Internet Control Message Protocol) и входит в стандартный набор сетевых инструментов практически всех операционных систем.
¶История
Утилита создана в 1983 году Майклом Мёркоком (Michael Muuss) и Билли Рутом (Billy Rut) в Управлении военно-морских вооружений США (Naval Weapons Laboratory, Дальгрен, штат Виргиния). Программа написана на языке C и изначально предназначалась для диагностики проблем в сети ARPANET. Мёркок назвал программу в честь сонарного сигнала — по аналогии с технологией эхолокации: программа отправляет пакет и ждёт «эхо» в ответ.
В 1983 году исходный код ping был опубликован в составе дистрибутива 4.3BSD. Впоследствии утилита вошла в стандартные пакеты UNIX, Linux, Windows (начиная с Windows NT) и других ОС. Протокол ICMP, на котором работает ping, описан в RFC 792 (1981, Джон Постел), а расширения для IPv6 — в RFC 4443.
¶Принцип работы
Ping использует два типа ICMP-сообщений: Echo Request (тип 8) и Echo Reply (тип 0). Алгоритм работы следующий:
- Источник формирует ICMP-пакет Echo Request с собственным идентификатором процесса, порядковым номером и меткой времени.
- Пакет передаётся целевому узлу по сети.
- Если узел доступен и не блокирует ICMP, он возвращает пакет Echo Reply источнику.
- Утилита фиксирует время прохождения кругового маршрута (RTT) и процент потерянных пакетов.
При недоступности узла ICMP-сообщение о недоступности (Destination Unreachable, тип 3) может вернуть промежуточный маршрутизатор. Если ответ не поступает, пакет считается потерянным.
¶Синтаксис и параметры
Базовый вызов выглядит как ping адрес (в Windows — ping адрес, в Linux — ping -c количество адрес). Основные параметры:
| Параметр (Linux) | Параметр (Windows) | Назначение |
|---|---|---|
-c N | -n N | Число отправляемых пакетов |
-i интервал | -w мс | Интервал между пакетами / тайм-аут |
-s размер | -l размер | Размер полезной нагрузки |
-f | -f | Установка флага DF (запрет фрагментации) |
-I интерфейс | -S адрес | Источник / интерфейс отправки |
-t | -t | Непрерывная отправка (Linux: TTL) |
В Windows по умолчанию отправляется 4 пакета, в Linux ping работает непрерывно до прерывания пользователем (Ctrl+C).
¶Типичные результаты
Пример вывода утилиты в Linux:
``` PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=12.3 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=11.9 ms
--- 8.8.8.8 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss rtt min/avg/max/mdev = 11.900/12.100/12.300/0.200 ms ```
Показатель ttl (Time To Live) позволяет косвенно определить число промежуточных маршрутизаторов, а mdev — разброс задержек.
¶Применение
Ping является основным инструментом первичной диагностики сетевых проблем:
- Проверка доступности хоста — определение, отвечает ли узел на сетевые запросы.
- Измерение задержек — оценка качества канала связи, выявление «джиттера» (колебаний задержки).
- Диагностика потерь пакетов — выявление проблем с оборудованием или перегрузкой маршрута.
- Проверка настроек DNS — разрешение имён в IP-адреса.
- Трассировка маршрута — в сочетании с утилитой traceroute.
¶Ограничения и особенности
Ряд узлов и сетей настраивается на блокировку ICMP-запросов в целях безопасности, поэтому отсутствие ответа на ping не всегда означает недоступность хоста — веб-сервер или иные службы могут работать штатно. Провайдеры и корпоративные сети часто ограничивают ICMP-трафик для снижения нагрузки и защиты от атак.
Существуют также атаки, основанные на ICMP: «ping of death» (отправка аномально больших пакетов, приводившая к сбоям старых систем), «ping flood» (перегрузка цели потоком Echo Request) и «smurf attack» (спуфинг-атака через широковещательные ICMP-запросы). Современные ОС и сетевое оборудование содержат защиту от подобных атак.
¶См. также
- ICMP
- Traceroute
- TCP/IP
- ARPANET
¶Исторические факты
В 2024 году в честь 40-летия утилиты компания Google провела акцию: при отправке ping на адрес ping.com пользователи получали ответ с поздравлением и логотипом. Событие отмечалось в сетевом сообществе как дань уважения одному из фундаментальных инструментов интернета.
