19-10-2023
Ping — утилита для проверки соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса.
Первоначально словом «ping» (по созвучию) именовали направленный акустический сигнал противолодочных гидролокаторов или «асдиков» (англ. ASDIC, аббревиатура от Allied Submarine Detection Investigation Committee) времён Второй мировой войны.
Утилита отправляет запросы (ICMP Echo-Request) протокола ICMP указанному узлу сети и фиксирует поступающие ответы (ICMP Echo-Reply). Время между отправкой запроса и получением ответа (RTT, от англ. Round Trip Time) позволяет определять двусторонние задержки (RTT) по маршруту и частоту потери пакетов, то есть косвенно определять загруженность на каналах передачи данных и промежуточных устройствах.
Обычный эхо-запрос имеет длину 64 байта (плюс 20 байт IP-заголовка). По стандарту RFC 791 IPv4 суммарный объем пакета не может превышать 65 535 байт.
В разговорной речи пингом называют также время, затраченное на передачу пакета игровой информации в компьютерных сетях от клиента к серверу и обратно от сервера к клиенту.[1]
Полное отсутствие ICMP-ответов может также означать, что удалённый узел (или какой-либо из промежуточных маршрутизаторов) блокирует ICMP Echo-Reply или игнорирует ICMP Echo-Request.
Программа ping является одним из основных диагностических средств в сетях RFC 2925 (Definitions of Managed Objects for Remote Ping, Traceroute, and Lookup Operations).
Так как для отправки ICMP-пакетов требуется создавать raw-сокеты, для выполнения программы ping в UNIX-системах необходимы права суперпользователя. Чтобы обычные пользователи могли использовать ping, в правах доступа файла /bin/ping устанавливают SUID-бит.
Название происходит от английского названия звука импульса, издаваемого сонаром.
Также есть несколько альтернативных толкований:
Программа была написана Майком Мууссом, учёным Исследовательской Лаборатории Баллистики (англ. Ballistics Research Lab) США в декабре 1983 года.
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 пакета
Послать 3 пакета с интервалом в 5 секунд, сопровождая получение откликов звуковыми сигналами
$ ping -ai 5 -c 3 wikipedia.org PING wikipedia.org (208.80.152.2) 56(84) bytes of data. 64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=1 ttl=46 time=176 ms 64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=2 ttl=46 time=177 ms 64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=3 ttl=46 time=181 ms --- wikipedia.org ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 10007ms rtt min/avg/max/mdev = 176.253/178.291/181.339/2.222 ms $
Не расшифровывать имена адресов, выводить только ip-адреса
$ ping -n wikipedia.org
По истечении времени (в данном случае 5 сек) ping завершит свою работу
$ ping -w 5 wikipedia.org
Установить размер отправляемых пакетов в 1000 байт
$ ping -l 1000 wikipedia.org
Ping в командной строке Windows:
ping ru.wikipedia.org Обмен пакетами с rr.esams.wikimedia.org [91.198.174.225] по 32 байт: Ответ от 91.198.174.225: число байт=32 время=54мс TTL=32 Ответ от 91.198.174.225: число байт=32 время=54мс TTL=32 Ответ от 91.198.174.225: число байт=32 время=54мс TTL=32 Ответ от 91.198.174.225: число байт=32 время=54мс TTL=32 Статистика Ping для 91.198.174.225: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 54 мсек, Максимальное = 54 мсек, Среднее = 54 мсек
ping с ключами командной строки Windows:
-w <тайм-аут> Тайм-аут для каждого ответа (в миллисекундах), в данном случае ждать ответ 1 мс.
С:\Users\>ping ya.ru -w 1 Обмен пакетами с ya.ru [93.158.134.3] с 32 байтами данных: Ответ от 93.158.134.3: число байт=32 время=1мс TTL=60 Ответ от 93.158.134.3: число байт=32 время=1мс TTL=58 Ответ от 93.158.134.3: число байт=32 время=1мс TTL=58 Ответ от 93.158.134.3: число байт=32 время=1мс TTL=58 Статистика Ping для 93.158.134.3: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 1мсек, Максимальное = 1 мсек, Среднее = 1 мсек
Проверка связи с указанным узлом до прекращения. Для отображения статистики и продолжения проверки нажмите сочетание клавиш CTRL+BREAK; для прекращения нажмите CTRL+C.
C:\Users\>ping ya.ru -t Обмен пакетами с ya.ru [93.158.134.3] с 32 байтами данных: Ответ от 93.158.134.3: число байт=32 время=1мс TTL=60 Ответ от 93.158.134.3: число байт=32 время=1мс TTL=58 Ответ от 93.158.134.3: число байт=32 время=1мс TTL=58 [вырезано] Ответ от 93.158.134.3: число байт=32 время=1мс TTL=60 Ответ от 93.158.134.3: число байт=32 время=1мс TTL=58 Статистика Ping для 93.158.134.3: Пакетов: отправлено = 125, получено = 125, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 1мсек, Максимальное = 1 мсек, Среднее = 1 мсек
Дополнительные ключи и синтаксис:
ping [-t] [-a] [-n <число>] [-l <размер>] [-f] [-i <TTL>] [-v <TOS>]
[-r <число>] [-s <число>] [[-j <список узлов>] | [-k <список узлов>]]
[-w <тайм-аут>] [-R] [-S <адрес источника>] [-4] [-6] конечный_узел
Пинг.