Что такое пинг

Заголовочный пинг – ето один из наиболее популярных и наиболее полезных инструментов, служащих к диагнозу соединений-онлайн, основанных на TCP/IP протоколе. Его имплементацию можно встретить практически в каждой оперативной системе, которая обслуживает выше приведённый протокол. Функциональность пинга основывается на очень простом правиле работы. Она состоит в отправлении пакета ICMP ECHO_REQUEST из локального компьютера к днстанционной машине, а потом в ожидании ответа в форме пакета ICMP ECHO_REPLY.
Пример употребления инструмента пинг на практнке (вызывается из линии команд, представляя как параметр адрес IP или символическое наименование целевого устройства – это может быть компьютер, но также рутер, а то и сетевой принтер):

OpenBSD:
 

-bash-3.2$ ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=128 time=0.347 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=128 time=0.170 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=128 time=0.167 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=128 time=0.169 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=128 time=0.166 ms
--- 10.0.0.2 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.166/0.203/0.347/0.073 ms

Виндоуз:

C:>ping 10.0.0.2
Тест 10.0.0.2 с 32 байтами данных
64 байтов из 10.0.0.2: байтов=32 время< 1 мс TTL=128
64 байтов из 10.0.0.2: байтов=32 время< 1 мс TTL=128
64 байтов из 10.0.0.2: байтов=32 время< 1 мс TTL=128
64 байтов из 10.0.0.2: байтов=32 время< 1 мс TTL=128
Статистика теста пинг для 10.0.0.2:
Пакеты: Отправленные=4, Полученные=4, Потраченные=0 (0% утраты),
Оценочное время блуждания пакетов в миллисекундах:
Минимум = 0 мс, Максимум = 0 мс, Средневолновое время = 0 мс

При помощи инструмента пинг можно получить основные информации, касающиеся к состоянии сетевого соединения между локальным компьютером и дистанционным устройством:

• Есть ли устройство подключённое к сети и отвечает ли оно на требование ECHO_REQUEST при помощи правильно сконструированного пакета ECHO_REPLY?
• Какая средняя задержка в получении ответа (разговорно называемая «лагом»), выражаемая в миллисекундах.
• Какая часть общего числа пакетов добирается к адресату, а какая подвергается утерии? Этот параметр выражается в процентах, его стоимость выше нуля указывает технические проблемы ретранслятора сообщения.


Следует здесь чётко отметить, что результаты, полученные при помощи пинга, представляют достоверное изображение состоянии сетевого соединения. В преобладающим большинстве популярных операционных систем существует возможность выключения реакции на надвигающиеся пакеты ECHO_REQUEST (напр. при помощи программного обеспечения типа межсетевой экран). Это станет причиной недостатка в пакетах ECHO_REPLY в ответе, и тем самым может являться причиной подозрения в аварии ретранслятора, несмотря на его правильное функционирование. По этой причине пинг употребляется обычно во вступительной диагностике, известных пользователю/администратору, локальных компьютерных сетей. Зато в профессиональных употреблениях пинг – это только один из многих использоваемых инструментов. Второй важный аспект пинга – это факт, что он достовляет информации только насчёт состоянии сетевого соединения – получение ответа от дистанционной машины означает только, что она подкючённая к сети и отвечает на требование пинг. Однако не можно на основании этого делать выводы насчёт вида и состоянии услуг, запущенных на тестированном устройстве. Кроме того, не можно предполагать, что его операционная система работает правильно (относительно часто встречается случаи, когда компьютер отвечает на пинга, несмотря на зависание операционной системы).
Инструмент пинг, в зависимости от имрлементации в данной операционной системе, может содержать ряд дополнительных направлений (в системах Юникс можно узнать о них с помощью команды man ping, зато в системах Виндоуз этой командой является ping -?):

• Пинг непрерывный до самого прекращения со стороны пользователя (догадливое поведение в системах Юникс, параметр –t в Виндоуз, напр.: „ping –t 10.0.0.2”).
• Определяемый размер пакетов в байтах, с 1 до около 65500 байтов (параметр –s в системах Юникс, -l в Виндоуз, напр. ping –s 128 10.0.0.2 станет причиной отправления пакета в размере 128 байтов вместо догадливых 32). Это направление является полезным особенно в случае беспроволочных сетей, в которых спорадически может появиться явление утери больших пакетов, при полностью беспроблемной пересылке маленьких.
• Десятка полтора других, реже использоваемых параметров, таких, как напр. определённое число пакетов для высылки (-c в системах Юникс, -n в Виндоуз), т. н. ping flood, то есть максимальное возможное число пакетов для одновременной высылки, определение параметра TTL, то есть

максимального числа узлов, проходимых по дороге до целевого устройства, и т. п.

Как любопытную подробность, в заключение этой статьи, можно представить следующий факт: блокировка ответа на требования пинга вызывается не только желанием ограничить сетевое движение, и уменьшить потенциальную угрозу, связанную с дополнительной услугой, работающую на сервере. Ввиду того, что каждая из операционных систем чуть иначе создаёт пакет ответов ECHO_REPLY, помещая в него отличительные последовательности знаков – следовательно она может помочь в пробе идентификации операционной системы, работающей на сервере, а что связывается с этим, в пробе облегчения задачи потенциальному взломщику или другому человеку, имеющему нежелательные намерения.