ping
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Содержимое этой статьи нуждается в чистке. |
Ping — утилита для проверки целостности и качества соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса.
Утилита отправляет запросы (ICMP Echo-Request) протокола ICMP указанному узлу сети и фиксирует поступающие ответы (ICMP Echo-Reply). Время между отправкой запроса и получением ответа (RTT, от англ. Round Trip Time) позволяет определять двусторонние задержки по маршруту и частоту потери пакетов, то есть косвенно определять загруженность на каналах передачи данных и промежуточных устройствах.
В разговорной речи пингом называют также время в миллисекундах, затраченное на передачу пакета информации в компьютерных сетях от клиента к серверу и наоборот[1].
Этимология
[править | править код]Название происходит от английского названия звука импульса, издаваемого сонаром. Первоначально словом «ping» (по созвучию) именовали направленный акустический сигнал противолодочных гидролокаторов или «асдиков» (англ. ASDIC, аббревиатура от Allied Submarine Detection Investigation Committee).
Вторая версия связана с игрой пинг-понг. Игра заключается в отбивании мяча между игроками. Компьютер и сервер как и мяч отправляют команды и ответы на них.
Пример
[править | править код]Если осуществляется диагностика сети в запросах скорости соединения, в первую очередь происходит оценка эхо-запроса Ping, который определяет целостность и качество соединения на предмет запроса потери пакетов отражённого сигнала от источника соединения. В данном случае, если ответ запроса приходит с минимальным количеством пакетов, к примеру около 30 или менее, то в данном случае настройка сетевого оборудования нестабильна и имеет уязвимость в системе безопасности. Таким образом, стоит придать значение политике IP безопасности, Брандмауэру, групповой политике и настройкам сетевых адаптеров, настроек маршрутизатора. Не стоит путать Ping — определяющий целостность и качество связи, с транспортными протоколами связи TCP и UDP — определяющих скорость передачи данных.
Обычный эхо-запрос имеет длину 64 байта (плюс 20 байт IP-заголовка). По стандарту RFC 791 IPv4 суммарный объём пакета не может превышать 65 535 байт.
Полное отсутствие ICMP-ответов может также означать, что удалённый узел (или какой-либо из промежуточных маршрутизаторов) блокирует ICMP Echo-Reply или игнорирует ICMP Echo-Request.
Программа ping является одним из основных диагностических средств в сетях TCP/IP и входит в поставку всех современных сетевых операционных систем. Функциональность ping также реализована в некоторых встроенных ОС маршрутизаторов, доступ к результатам выполнения ping для таких устройств по протоколу SNMP определяется 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 года.
Практическое использование
[править | править код]- Можно узнать IP-адрес по доменному имени. Перед первой отправкой пакета делается запрос к DNS-серверу, если указан хост.
- Можно узнать, работает ли сервер. Например, системный администратор может узнать, завис ли только веб-сервер или проблемы с хостом.
- Можно узнать, есть ли связь с сервером. Например, проблемы с настройкой DNS-серверов на машине можно узнать, задав в ping сначала доменное имя, а потом IP-адрес.
- Также можно узнать качество канала, посмотрев, сколько ответов не пришло. Это часто используется игроками в сетевые игры, потому что качество связи для них очень важно. Хотя не всегда это является показателем качества связи, в некоторых сетях протокол ICMP может иметь низкий приоритет либо блокироваться полностью.
Структура ICMP пакета
[править | править код]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 ICMP message (8 бит) — тип сообщения ICMP.
- Code (8 бит).
- Checksum (16 бит) — контрольная сумма, вычисляется из части ICMP пакета, заголовок не используется.
- Header Data (32 бита) — содержит Идентификатор (Identifier) (16 бит) и Порядковый номер (Sequence number) (16 бит) необходимые для корректного определения отправителя.
- ICMP Payload
- Payload — необходим для хранения и передачи ответов различного типа. К примеру, TimeStamp.
Примеры
[править | править код]UNIX-подобные системы
[править | править код]Послать 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=180 ms 64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=2 ttl=46 time=179 ms 64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=3 ttl=46 time=189 ms --- wikipedia.org ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1000ms 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 байт (Debian)
$ ping -s 1000 wikipedia.org
Установить размер отправляемых пакетов в 1000 байт (Solaris)
$ ping -s wikipedia.org 1000
Windows
[править | править код]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 мсек
См. также
[править | править код]Примечания
[править | править код]- ↑ Что такое пинг? Архивная копия от 29 января 2019 на Wayback Machine // Интернет провайдер в Киеве.
Ссылки
[править | править код]- История программы ping словами автора, Майка Муса Архивная копия от 17 февраля 2013 на Wayback Machine
- Веб-интерфейс для ping Архивная копия от 17 февраля 2009 на Wayback Machine
- RFC 792
- Распределённый Ping из нескольких мест Архивная копия от 17 апреля 2014 на Wayback Machine — Точки расположены в множестве стран.
- Ping Test Online
- Проверка ping из различных частей мира Архивная копия от 7 ноября 2015 на Wayback Machine — Множество точек мониторинга на территории РФ.