Майк Мусс запустил свою новую программу до восхода солнца. К тому времени его коллега Чак Кеннеди уже исправил сетевое оборудование, которое программа должна была исследовать. Мусс провел ночь, создавая инструмент для проблемы, которая исчезла до того, как он смог отправить свой первый тестовый пакет. Он назвал программу ping.[1]

В декабре 1983 года Мусс столкнулся со странным поведением в IP-сети Баллистической исследовательской лаборатории армии США. Замечание, которое он слышал за несколько месяцев до этого, подсказало, с чего начать. На встрече DARPA в Норвегии в июле того года Дэйв Миллс описал измерение времени электронных эхо для определения того, сколько времени требуется сообщениям для прохождения по сетевому пути. Мусс вспомнил эту идею и начал кодировать.[1]

Его программа успешно скомпилировалась, но затем отказалась работать. Ядро UNIX, на котором она работала, не имело поддержки для необработанных ICMP-сокетов, необходимых его коду. Мусс описал себя как "разъяренного". Он также написал недостающую поддержку ядра, заставив обе части работать до рассвета. Кеннеди, известный как Кермит, уже нашел и отремонтировал оборудование к тому времени, когда Мусс смог запустить свой первый ping-пакет.[1]

В колледже Мусс моделировал сонарные и радарные системы, и он позаимствовал звук сонара для названия. Импульс распространяется наружу; эхо возвращается. Его программное обеспечение использовало сообщения, уже определенные в протоколе Internet Control Message Protocol: Echo и Echo Reply. Протокол предписывал, чтобы принимающая машина возвращала отправленные ей данные. Измерение времени этого обмена дало Муссу способ исследовать путь к другой машине и обратно.[1][2]

В Беркли разработчики включили исходный код и его модификации ядра в Berkeley UNIX. Экстренный ремонт был выполнен без ping, но другие люди могли использовать следующую копию, не создавая собственное ночное исправление. Мусс позже описал свою программу как "вечерний хак на тысячу строк" и пошутил, что, если бы он знал, что это станет его самым известным достижением, он мог бы потратить еще день-два на добавление опций.[1]

Современное руководство Linux описывает тот же обмен запросами и ответами, с указанием времени кругового пути и статистики потерь пакетов. Оно также предлагает звуковую опцию. Программа может издавать звук при получении ответа, позволяя слушать работающее соединение вместо того, чтобы наблюдать за появлением каждой новой строки.[3]

На конференции USENIX Мусс услышал историю об администраторе, который значительно развил идею прослушивания. Согласно записи Мусса, этот человек подключил ping к вокодеру, передал его выходной сигнал через свою офисную стереосистему и включил громкость настолько громко, насколько мог выдержать. Раз в секунду компьютер кричал: "Ping, ping, ping...", пока он шел по зданию, шевеля разъемами Ethernet.[1]

Мусс назвал это лучшей историей о ping, которую он когда-либо слышал. Имя, которое он позаимствовал у сонара, стало звуковым инструментом для поиска неисправностей: администратор продолжал перемещаться от разъема к разъему, пока крики не прекратились. Эта тишина подсказала ему, где находится периодическая неисправность.[1]

Источники

  1. Майк Мусс, История программы PING
  2. RFC 792, Протокол управляющих сообщений Интернета
  3. Руководство Linux, ping(8)

Фото: Чак Кеннеди (слева), Майк Мусс (в центре) и Дуг Кингстон в Баллистической исследовательской лаборатории. Эта фотография не показывает ночь, когда был написан ping. Рон Натали, Wikimedia Commons, CC BY-SA 4.0. Обрезано и изменено в размере; производное произведение под той же лицензией.