Кратко

  • RFC 1165, опубликованный в июне 1990 года, предложил передавать NTP через службу удалённых операций OSI. В модели появились явные состояния соседа: соединён, устанавливает соединение, принимает соединение и отключён.
  • Обычный регистр доступности NTP отмечал ответы на последние восемь передач. В эксперименте с соединением его установленное, разорванное или ожидающее состояние давало сведения о доступности непосредственно; временные данные продолжали идти через операции NTP.

Дозвониться до часов и узнать время — разные дела

На связи ли удалённая машина? Насколько пригодны её временные измерения? В среде отдельных датаграмм NTP узнавал первое по недавним ответам. RFC 1165 описывает сдвиговый регистр, который помнит результаты последних восьми передач. Если ни одна не получила ответа, сосед считается недоступным. Это компактная тетрадь дежурного: после восьми пустых клеток он перестаёт ждать, что кто-нибудь поднимет трубку.

Crowcroft и Onions перенесли разговор на службу, умеющую устанавливать соединение. Их экспериментальный документ определял удалённые операции и синтаксис ASN.1 для NTP поверх стека OSI. Цели включали время для приложений OSI, проверку возможности автоматически контролировать спецификацию и генерировать код, а также испытание услуг вроде X.25. У соединения есть собственный статус. Оно установлено, ещё открывается либо оборвалось. Транспорт может сообщить это сразу, пока восемь клеток ещё не заполнены.

Поэтому к сведениям о каждом соседе добавились четыре состояния. Connected означает действующее соединение и обмен данными синхронизации. Connecting — попытку установить связь. Accepting — входящий запрос, для которого ещё идёт согласование транспорта и сеанса. Disconnected — неудачу контакта. Соединение с далёким узлом могло устанавливаться несколько секунд, поэтому процесс сделали асинхронным. Демон времени продолжал обслуживать других соседей, пока один из них возился с дверью.

Сеанс начинался с A-ASSOCIATE.REQUEST и соответствующего указания на другой стороне. Затем с нужной периодичностью вызывалась удалённая операция с параметрами NTP. Версия протокола или точность местных часов редко меняются в течение одного соединения. Их можно узнать при установке и не пересылать всякий раз заново. RFC рассматривал и возможность аутентификации при соединении, когда она используется. Поля временных данных сохраняли устройство прежней спецификации NTP; программа могла оставить привычные внутренние записи и переводить их в кодировку ROS/ASN.1.

Открытая линия отвечает за контакт, а качество синхронизации проявляется в измерениях. RFC 1165 обращал внимание на разброс времени пути пакетов сильнее, чем на одну лишь номинальную скорость. Более медленная, но ровная сеть могла дать часам лучшие условия, чем быстрая сеть с прыгающими задержками. Авторы назвали эту мысль «ересью». Укол понятен: рекламный листок показывает скорость линии, а часы замечают, насколько по-разному приходят последовательные сообщения.

Были и работающие участники опыта. Несколько британских площадок использовали NTP через ROS и X.25 с более ранним вариантом спецификации ROS. Как минимум одна из них имела такие связи с узлами в Британии и параллельно обменивалась NTP по UDP с площадками в США. Документ называл первые результаты обнадёживающими, а сравнительные испытания — ограниченными. Особенно интересно само соседство двух каналов: одна служба времени получала статус соединения на одном краю и историю ответов на датаграммы на другом.

Оператору теперь легче назвать источник каждого вывода. Восемь отметок говорят о недавней истории передач в среде без соединений. OSI-ассоциация сообщает текущее состояние линии и удерживает сведения, полученные при её открытии. Пробы NTP рассказывают о задержке, смещении и разбросе времени. RFC 1165 передал вопрос о доступности той части системы, которая видела ответ непосредственно. Часам можно было оставить собственную профессию.