Кратко
- Описанная Dave Mills в 1983 году программа PING для Fuzzball уже несколько лет применялась для измерений и включала разные пробы и средства анализа; вариант Mike Muuss для BSD был самостоятельной Unix-реализацией.
- По позднему воспоминанию Muuss, он написал BSD-программу в декабре 1983 года и добавил необходимую поддержку raw-сокетов ICMP в ядре, а затем вывел измерения в понятный оператору вид.
Когда сеть ведёт себя странно, первая проверка проста: ответит ли узел на эту пробу отсюда и сейчас? Чтобы ответить, нужно выбрать пакет, засечь время, сопоставить ответ запросу и показать результат. История ping состоит из нескольких рабочих практик. Под одним именем оказались исследовательский комплект измерений для Fuzzball и команда Unix, доступная оператору BSD. Если считать их одним изобретением, теряется переход измерения из лабораторного набора в повседневную диагностику узла.
Протокольная основа появилась раньше. В сентябре 1981 года RFC 792 определил ICMP Echo и Echo Reply. Запрос мог содержать данные, идентификатор и порядковый номер; ответчик возвращал эти значения, чтобы отправитель мог связать ответ с запросом. RFC не изобрёл серию повторных проверок, экранную сводку или проверку работоспособности приложения. ICMP сообщает о состоянии среды IP-связи и не гарантирует доставку ни датаграммы, ни самого управляющего сообщения.
На системах Fuzzball уже работал PING. В опубликованной в декабре 1983 года RFC 889 Dave Mills называет его первоначальным PING и раскрывает название как “Packet InterNet Groper”. Он пишет, что программу использовали для многочисленных измерений Интернета и присоединённых сетей на протяжении шести предшествовавших лет. Это был один из пакетов измерений на инструментированном хосте LSI-11. Он посылал несколько типов проб, в том числе ICMP Echo, обрабатывал ответы, сохранял время и другие данные, а также строил текущие гистограммы и трассы. Речь идёт об инструменте исследовательского комплекса, а не о короткой команде в изоляции.
RFC 889 показывает, как этот комплекс применяли. В экспериментах октября и ноября 1983 года измерители на Fuzzball посылали Echo с заданной длиной и временными метками, ждали соответствующий ответ и записывали прошедшее время. Один запуск включал 512 циклов. эти данные помогали оценить, как длина пакета, маршрут и пропуски влияют на задержку и расчёт тайм-аута повторной передачи TCP. Он отдельно отмечал задержку сети и очереди внутри хостов, которые могли быть значительными. Поэтому одна цифра не заменяла описание метода и условий замера.
Воспоминание Mike Muuss описывает другое внедрение. По его словам, в июле 1983 года на встрече DARPA в Норвегии Dave Mills рассказал об измерениях задержки с помощью ICMP Echo на машинах Fuzzball LSI-11. В декабре необычное поведение IP-сети в Ballistic Research Laboratory побудило Muuss написать PING для 4.2a BSD UNIX. Подробности разговора и последовательность работ известны из более позднего рассказа самого Muuss, а не из протокола той встречи. Его код открывал сокет Berkeley SOCK_RAW/AF_INET для ICMP, но ядро не поддерживало требуемый доступ к raw-сокету. Muuss пишет, что добавил эту поддержку за ночь. До его первого тестового пакета коллега Chuck Kennedy уже обнаружил и исправил неисправность локального оборудования.
Изменилось место, где использовали результат. PING на Fuzzball собирал измерения для исследовательского анализа. Утилита Muuss для BSD позволяла оператору повторять Echo с рабочего Unix-хоста и сразу читать ответы. В его примере показаны порядковый номер и время для каждого ответа, затем число отправленных и принятых пакетов, потери и минимальное, среднее и максимальное время туда и обратно. Протокол обеспечивал запрос и ответ; программа добавляла повторение, часы и читаемую сводку. Muuss утверждает, что Berkeley получила его исходный код и изменения ядра, после чего PING стал стандартной частью Berkeley UNIX.
Эта ретроспектива подтверждает такое включение по версии автора, но не устанавливает дату каждого выпуска и не доказывает одинаковое поведение всех последующих реализаций.
История названия тоже неоднозначна. Muuss вспоминал о звуке сонара и эхолокации. RFC, составленная Mills, расшифровывает название программы Fuzzball как “Packet InterNet Groper”; Muuss говорит, что позднее слышал от других, будто Dave Mills предложил такое расширение. Разумно сохранить обе версии: современный документ связывает расшифровку с Fuzzball PING, тогда как автор BSD-версии объяснял выбор образом сонара. Единого бесспорного момента наречения доступные свидетельства не показывают.
Ответ Echo подтверждает, что ответчик вернул определённую пробу с данными и полями, позволяющими её сопоставить. Серия измерений показывает колебания времени и отсутствие ответов для конкретной точки отправки, периода и набора параметров. Она не доказывает, что сайт, почта или приложение доступны; не удостоверяет личность ответчика и не проверяет все возможные маршруты. Молчание может объясняться фильтром, политикой, перегрузкой или состоянием хоста. Для Fuzzball важны были серии и их анализ; BSD ping сделал наблюдение доступным и повторяемым. Простота команды не расширила доказательную силу ответа.
Значит, 1983 год — не переход от отсутствия ping к изобретению Muuss. ICMP Echo уже был описан в RFC 792, а RFC 889 фиксирует более ранний PING для Fuzzball, предназначенный для измерений. Muuss перенёс пробу в практическую диагностику BSD и добавил недостававшую поддержку ядра. Команда упростила проверку одного вопроса: вернулся ли ответ на выбранный пакет. Работает ли нужная служба — вопрос отдельный.
Источники
- RFC 792 — Internet Control Message Protocol
- RFC 889 — Internet Delay Experiments
- Mike Muuss — The Story of the PING Program (ретроспектива от первого лица)
- Heng Lu — Note 65: Running-Code Primacy (editorial lens only)
- RFC 792: поля сопоставления Echo
- RFC 889: план эксперимента
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
