Программа ping была разработана для проверки доступности удаленного узла. Программа посылает ICMP-эхо-запрос на узел и ожидает возврата ICMP-эхо-отклика. Программа рing является обычно первым диагностическим средством, с помощью которого начинается идентификация какой-либо проблемы в сетях. Помимо доступности, с помощью ping можно оценить время возврата пакета от узла, что дает представление о том, "насколько далеко" находится узел. Кроме этого, Ping имеет опции записи маршрута и временной метки. Сообщения эхо-запроса и эхо-отклика имеют один формат (рис 4.29). [2]
Рис. 4.29 Формат пакета ICMP-сообщения
· Тип – тип пакета
8 – запрос эха
0 – ответ на запрос эха
· Код – расшифровка назначения пакета внутри типа (в данном случае 0)
· Контрольная сумма вычисляется для всего пакета
· Идентификатор – номер потока сообщений
· Последовательный номер – номер пакета в потоке [3]
Так же, как в случае других ICMP-запросов, в эхо-отклике должны содержаться поля идентификатора и номера последовательности. Кроме того, любые дополнительные данные, посланные компьютером, должны быть отражены эхом.
В поле идентификатора ICMP сообщения устанавливается идентификатор процесса, отправляющего запрос. Это позволяет программе ping идентифицировать вернувшийся ответ, если на одном и том же хосте в одно и то же время запущено несколько программ ping.
Номер последовательности начинается с 0 и инкрементируется каждый раз, когда посылается следующий эхо-запрос. Вывод программы показан на рис. 4.30. Первая строка вывода содержит IP-адрес хоста назначения, даже если было указано имя. Поэтому программа рing часто используется для определения IP-адреса удаленного узла. [2]
Рис. 4.30 Вывод программы ping