ping (сетевая утилита) - ping (networking utility)

редактировать
Утилита администрирования компьютерной сети, используемая для проверки доступности хоста
Ping
Версия команды ping для DOS Версия ping для DOS
Автор (ы) Майк Муусс
Разработчик (и) Различные разработчики с открытым исходным кодом и коммерческие разработчики
Первоначальный выпуск1983; 37 лет назад (1983)
Платформа Кросс-платформенность
Тип Команда
Лицензия Public-domain, BSD, GPL, MIT

Ping - это компьютерная сеть администрирование программная утилита, используемая для проверки доступности хоста на Интернет-протокол (IP) сеть. Он доступен практически для всех операционных систем, имеющих сетевые возможности, включая большинство встроенных программ сетевого администрирования.

Ping измеряет время приема-передачи для сообщений, отправленных с исходного хоста на конечный компьютер, которые возвращаются обратно источнику. Название происходит от терминологии активный сонар, который посылает импульс звука и слушает эхо для обнаружения объектов под водой.

Ping работает, отправляя Интернет Протокол управляющих сообщений (ICMP) эхо-запрос пакеты к целевому хосту и ожидает эхо-ответа ICMP. Программа сообщает об ошибках, потере пакетов и статистической сводке результатов, обычно включая минимум, максимум, среднее время приема-передачи и стандартное отклонение в среднем.

Параметры командной строки утилиты ping и ее вывод зависят от множества реализаций. Опции могут включать размер полезной нагрузки, количество тестов, ограничения на количество сетевых переходов (TTL ), которые проходят зонды, интервал между запросами и время ожидания ответа. Многие системы предоставляют сопутствующую утилиту ping6 для тестирования в сетях Интернет-протокола версии 6 (IPv6), которые реализуют ICMPv6.

Содержание
  • 1 История
  • 2 Пример вызова
  • 3 Индикация ошибок
  • 4 Формат сообщения
    • 4.1 ICMP-пакет
    • 4.2 Эхо-запрос
    • 4.3 Эхо-ответ
    • 4.4 Полезная нагрузка
  • 5 Соображения безопасности
  • 6 См. Также
  • 7 Ссылки
  • 8 Дополнительная литература
  • 9 Внешние ссылки
История

Утилита ping была написана Майком Мууссом в декабре 1983 года, когда он работал в Лаборатории баллистических исследований, теперь Исследовательская лаборатория армии США. Замечание Дэвида Миллса об использовании эхо-пакетов ICMP для диагностики и измерений IP-сети побудило Muuss создать утилиту для устранения сетевых проблем. Автор назвал его в честь звука, который издает сонар, так как его методология аналогична локации эхолокации сонара. Аббревиатура Packet InterNet Groper для PING использовалась более 30 лет, и хотя Мусс говорит, что с его точки зрения PING не задумывался как акроним, он признал расширение имени Миллса. Первой выпущенной версией была общественное достояние ; все последующие версии были под лицензией BSD. Ping впервые был включен в 4.3BSD. Версия FreeDOS была разработана Эриком Энгельке и находится под лицензией GPL. Тим Кроуфорд разработал версию ReactOS. Он под лицензией MIT License.

RFC 1122 предписывает, что любой хост должен обрабатывать эхо-запросы ICMP и выдавать эхо-ответы взамен.

Пример вызова

Следующее - результат выполнения команды ping в Linux для отправки пяти зондов на целевой хост www.example.com:

$ ping -c 5 www.example.com PING www.example.com (93.184.216.34): 56 байтов данных 64 байта из 93.184.216.34: icmp_seq = 0 ttl = 56 time = 11.632 мс 64 байта из 93.184.216.34: icmp_seq = 1 ttl = 56 time = 11.726 мс 64 байта из 93.184.216.34: icmp_seq = 2 ttl = 56 time = 10.683 мс 64 байта из 93.184.216.34: icmp_seq = 3 ttl = 56 time = 9.674 мс 64 байта из 93.184.216.34: icmp_seq = 4 ttl = 56 time = 11.127 мс --- www.example.com статистика пинга --- 5 пакетов передано, 5 пакетов получено, 0,0% потери пакетов в оба конца мин / средн / макс / стандартное отклонение = 9,674 / 10,968 / 11,726 / 0,748 мс

В выходных данных перечисляются каждое тестовое сообщение и полученные результаты. Наконец, он перечисляет статистику всего теста. В этом примере самое короткое время приема-передачи составило 9,674 мс, среднее значение - 10,968 мс, а максимальное значение - 11,726 мс. Измерение имело стандартное отклонение 0,748 мс.

Индикация ошибок

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

  • H, ! N или ! P - хост, сеть или протокол недоступны
  • S - исходный маршрут не удался
  • F - необходима фрагментация
  • U или ! W - сеть назначения / хост неизвестен
  • I - исходный хост изолирован
  • A - связь с целевой сетью административно запрещена
  • Z - коммуникация с целевым хостом административно запрещена
  • Q - для этого ToS сеть назначения недоступна
  • T - для этого ToS хост назначения недоступен
  • X - связь запрещена административно
  • V - нарушение приоритета хоста
  • C - отключение приоритета фактически

В случае ошибки целевой хост или промежуточный маршрутизатор отправляет обратно сообщение об ошибке ICMP, например, «хост недоступен» или «TTL превышен при передаче». Кроме того, эти сообщения включают первые восемь байтов исходного сообщения (в данном случае заголовок эхо-запроса ICMP, включая значение quench), поэтому утилита ping может сопоставлять ответы с исходными запросами.

Формат сообщения

Пакет ICMP

дейтаграмма IPv4
Биты 0–7Биты 8–15Биты 16–23Биты 24–31
Заголовок. (20 байтов)Версия / IHLТип службыДлина
Идентификацияфлаги и смещение
Время жизни (TTL)ПротоколКонтрольная сумма заголовка
Исходный IP-адрес
Целевой IP-адрес
Заголовок ICMP. (8 байтов)Тип сообщенияКодКонтрольная сумма
Данные заголовка
Полезная нагрузка ICMP. (необязательно)Данные полезной нагрузки
Датаграмма IPv6
Биты 0–3Биты 4–7Биты 8–11Биты 12–15Биты 16–23Биты 24–31
Заголовок. (40 байтов)ВерсияКласс трафикаМетка потока
Paylo Длина объявленияСледующий заголовокОграничение переходов
Адрес источника
Адрес назначения
Заголовок ICMP6. (8 байтов)Тип сообщенияКодКонтрольная сумма
Данные заголовка
Полезная нагрузка ICMP6. (необязательно)Данные полезной нагрузки

Общий состав пакета ICMP:

  • Заголовок IPv4 (синий): для протокола установлено значение 1 (ICMP), а для Тип службы установлено значение 0.
  • Заголовок IPv6 (синим цветом): для следующего заголовка установлено значение 58 (ICMP6)
  • Заголовок ICMP (красный):
    • Тип сообщения ICMP (8 бит)
    • Код (8 бит)
    • Контрольная сумма (16 бит), 16-битное дополнение к сумме дополнений до одного пакета. Для IPv4 это вычисляется из сообщения ICMP, начинающегося с поля Тип (IP-заголовок не включается). Для IPv6 это вычисляется из сообщения ICMP, к которому добавляется «псевдозаголовок IPv6».
    • Поле данных заголовка (32 бита), которое в данном случае (эхо-запрос и ответы ICMP) будет состоять из идентификатор (16 бит) и порядковый номер (16 бит).
  • Полезная нагрузка ICMP: полезная нагрузка для различных типов ответов; может иметь произвольную длину, оставленную для деталей реализации. Однако пакет, включающий заголовки IP и ICMP, должен быть меньше максимальной единицы передачи сети, иначе существует риск фрагментированности.

эхо-запроса

эхо-запрос ("ping ") - это сообщение ICMP / ICMP6.

0001020304050607080910111213141516171819202122232425262728293031
Тип = 8 (IPv4, ICMP) 128 (IPv6, ICMP6)Код = 0Контрольная сумма
ИдентификаторПорядковый номер
Полезная нагрузка

Идентификатор и порядковый номер могут использоваться клиентом для сопоставления ответа с запросом, вызвавшим ответ. На практике большинство систем Linux используют уникальный идентификатор для каждого процесса проверки связи, а порядковый номер - это возрастающее число внутри этого процесса. Windows использует фиксированный идентификатор, который варьируется в зависимости от версии Windows, и порядковый номер, который сбрасывается только во время загрузки.

Эхо-ответ

Эхо-ответ - это сообщение ICMP, созданное в ответ на эхо-запрос; это обязательно для всех хостов и должно включать в себя точные данные, полученные в запросе.

0001020304050607080910111213141516171819202122232425262728293031
Тип = 0 (IPv4, ICMP) 129 (IPv6, ICMP6)Код = 0Контрольная сумма
ИдентификаторПорядковый номер
Полезная нагрузка
  • Идентификатор и порядковый номер могут использоваться клиентом для связи каждого эхо-запроса с его ответом.

Полезная нагрузка

Полезная нагрузка пакета обычно заполняется символами ASCII, как показано на выходе утилиты tcpdump в последних 32 байтах следующего примера (после восьмибайтового заголовка ICMP, начинающегося с 0x0800):

16: 24: 47.966461 IP (tos 0x0, ttl 128, id 15103, смещение 0, флаги [нет], протокол: ICMP (1), длина: 60) 192.168.146.22>192.168.144.5: эхо-запрос ICMP, id 1, seq 38, длина 40 0x0000: 4500 003c 3aff 0000 8001 5c55 c0a8 9216 E.. <:.....\U.... 0x0010: c0a8 9005 0800 4d35 0001 0026 6162 6364......M5...abcd 0x0020: 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst 0x0030: 7576 7761 6263 6465 6667 6869 uvwabcdefghi

Полезная нагрузка может включать в себя метку времени, указывающую время передачи и порядковый номер, которых нет в этом примере. Это позволяет ping вычислять время приема-передачи в режиме без сохранения состояния без необходимости записывать время передачи каждого пакета.

Полезная нагрузка может также включать волшебный пакет для протокола Wake-on-LAN, но минимальная полезная нагрузка в этом случае больше, чем показано. Эхо-запрос обычно не получает никакого ответа, если узел спал в состоянии гибернации, но узел по-прежнему выходит из спящего состояния, если его интерфейс настроен на прием запросов на пробуждение. Если хост уже активен и настроен так, чтобы разрешать ответы на входящие пакеты эхо-запроса ICMP, возвращаемый ответ должен включать ту же полезную нагрузку. Это может быть использовано для определения того, что удаленный хост был эффективно разбужен, путем повторения нового запроса после некоторой задержки, чтобы позволить хосту возобновить свои сетевые службы. Если хост просто спал в активном состоянии с низким энергопотреблением, один запрос разбудит этот хост ровно настолько, чтобы позволить его службе Echo Reply мгновенно ответить, если эта служба была включена. Хосту не нужно полностью выводить из спящего режима все устройства, и он может вернуться в режим пониженного энергопотребления после небольшой задержки. Такая конфигурация может использоваться для предотвращения перехода хоста в состояние гибернации с гораздо более длительной задержкой пробуждения по прошествии некоторого времени в активном режиме с низким энергопотреблением.

Соображения безопасности

Для проведения атака типа «отказ в обслуживании», злоумышленник может отправлять запросы ping как можно быстрее, возможно, подавляя жертву эхо-запросами ICMP. Этот метод называется ping flood..

Ping-запросы к нескольким адресам, ping sweep могут использоваться для получения списка всех хостов в сети.

См. Также
Ссылки
Дополнительная литература
  • Дайсон, Питер (1995). Освоение OS / 2 Warp. Сайбекс. ISBN 978-0782116632.
  • Джон Пол Мюллер (2007). Администрирование Windows из командной строки для Windows Vista, Windows 2003, Windows XP и Windows 2000. John Wiley Sons. ISBN 978-0470165799.
  • Макэлхерн, Кирк (2006). Командная строка Mac OS X: Unix под капотом. Джон Уайли и сыновья. ISBN 978-0470113851.
Внешние ссылки
В Викиучебнике есть книга по теме: Руководство по командам Windows
Последняя правка сделана 2021-06-02 06:15:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте