Каждый раз, когда PingOn проверяет ваш сайт, он использует технику, которой уже больше сорока лет. Придумал её один человек, за одну ночь, чтобы понять — почему пакеты не доходят.
1983 год. Ночь в военной лаборатории
Дэвид Миллс, один из архитекторов ARPANET, описал в RFC 792 протокол ICMP. В спецификацию почти мимоходом вошли два типа сообщений: Echo Request и Echo Reply. Смысл простой — пошли пакет, получи его обратно. Сигнал существования. Никто особо этим не пользовался.
Майк Муусс работал инженером в Баллистической исследовательской лаборатории армии США (BRL) в Мэриленде. В 1983 году перед ним стояла конкретная проблема: сеть вела себя непредсказуемо, пакеты куда-то пропадали, и никто не мог объяснить, на каком именно участке. Специальных инструментов для диагностики не существовало — если что-то шло не так, инженеры читали дампы памяти и строили гипотезы.
За одну ночь Муусс написал небольшую программу на C. Она отправляла ICMP Echo Request к удалённому хосту
и измеряла время до ответа. Он назвал её ping — по звуку гидролокатора подводных лодок:
импульс уходит в воду, ждёшь эха.
Почему 56 байт — не случайное число
Первый ping отправлял ровно 56 байт данных. Случайность? Нет. Вместе с 8-байтным заголовком ICMP получалось ровно 64 байта — красивая степень двойки. Муусс любил такие детали.
Это число дожило до наших дней. Запустите ping google.com прямо сейчас — в выводе вы
увидите «64 bytes from...». Ровно то, что видел Муусс на своём терминале VAX в 1983-м.
Как ping оказался везде
Муусс поделился кодом с BSD-сообществом. В 1986 году программа вошла в состав 4.3BSD и стала стандартной утилитой UNIX. Когда Microsoft строила Windows NT, ping перекочевал и туда — с минимальными изменениями. Сегодня он есть в каждой операционной системе: macOS, Linux, Windows, iOS, Android.
Это один из немногих инструментов, переживших сорок лет без принципиальных изменений. Аргументы чуть разные, вывод немного отличается — суть та же: пошли сигнал, дождись эха, измерь время.
Что осталось
Майк Муусс погиб в автокатастрофе в ноябре 2000 года. Ему было 39 лет. Он не увидел, как его ночная поделка превратилась в базовый элемент интернет-инфраструктуры — инструмент, который запускают миллиарды устройств каждую секунду.
На его мемориальной странице сохранилось собственное описание: «Я назвал это ping, потому что именно такой звук издаёт гидролокатор. Когда субмарина хочет найти что-то в темноте, она посылает сигнал и ждёт эха.»
Именно это делает PingOn каждые несколько минут — посылает сигнал и ждёт эха.
В Unix/Linux ping работает бесконечно — пока не нажмёшь Ctrl+C.
В Windows отправляет ровно 4 пакета и останавливается.
Microsoft никогда официально не объясняла, почему именно четыре.
Лучшая версия: разработчик просто решил, что этого достаточно — и никто не возразил.