5. Модель реализации
На рис.3 представлена структура типовой многоканальной модели прикладного программного модуля NTPv4-протокола. Эта модель включает два процесса, присущие каждому серверу времени:
Процесс удалённого сервера времени, обеспечивающий приём NTP-сообщений от другого сервера времени или источника эталонного времени.
Процесс опроса удалённых серверов времени, обеспечивающий передачу NTP-сообщений другому удалённому серверу времени или источнику эталонного времени.
Эти процессы организуют передачу, приём и обработку NTP-сообщений, представляющих собой единую структуру данных, включающих статистические параметры и другие переменные и константы, и для этого формируют виртуальные соединения. Клиентский программный NTP-модуль передаёт NTP-сообщения одному или нескольким серверам времени, а затем обрабатывает переданные ими ответные NTP-сообщения. Серверный программный NTP-модуль меняет местами IP-адреса и номера UDP-портов отправителя/получателя, заполняет определённые поля в NTP-сообщении и сразу после этого отправляет его источнику запроса, если используется режим функционирования «клиент/сервер», в противном случае, если используется симметричный режим функционирования, NTP-сообщение передается через некоторое время. После каждого приёма NTP-сообщения вычисляется сдвиг θ
между временем удалённого сервера и системными часами, используя для этого соответствующие значения статистических параметров δ
, ε
и ψ
.
.......................................................................................... . Удалённые . Процедуры . Системный . Процесс . . серверы . опроса удалённых . процесс . настройки . . . серверов . . времени . .+---------+. +------------------+. +---------------+ . . .| Сервер |->| Опрос удаленного |. | | . . .| времени | | сервера времени |->| | . . .| 1 |<-| 1 |. | | . . .+---------+. +------------------+. | | . . . . ^ . | | . . . . | . | | . . .+---------+. +------------------+. | | +--------------+. . .| Сервер |->| Опрос удаленного |. | Алгоритмы |->| |. +--------+ . .| времени | | сервера времени |->| селекции | | Алгоритм |--->| Фильтр | . .| 2 |<-| 2 |. | и | | суммирования |. | ФАПЧ | . .+---------+. +------------------+. | кластеризации |->| |. +--------+ . . . ^ . | | +--------------+. | . . . | . | | . | . .+---------+. +------------------+. | | . | . .| Сервер |->| Опрос удаленного |. | | . | . .| времени | | сервера времени |->| | . | . .| 3 |<-| 3 |. | | . | . .+---------+. +------------------+. +---------------+ . | . ........................^.......................................................|......... | . V . | . +------------+ . | . | Генератор | . +------------------------------------------------| переменной | . . | частоты | . . +------------+ . . Процесс . . корректировки . . часов . ................... Рис.3. Модель прикладного программного модуля NTPv4-протокола
Системный процесс[?] включает процедуры селекции, кластеризации и суммирования на основе соответствующих алгоритмов оптимизации, и осуществляет поиск среди возможных серверов времени наиболее «лучших» кандидатов, с точки зрения их точности и надежности, для последующей синхронизации системных часов. Алгоритм селекции основан на византийских принципах обнаружения неисправностей или отказов и решает задачу по нейтрализации самых некорректных кандидатов, именуемых «ложными часами», и предотвращения их включения в перечень (группу) «надёжных часов». Надёжные часы представляют собой такие часы, которые обеспечивают соответствующую точность синхронизации относительно известного доверенного стандартного источника времени/частоты (синхронизируются от него), в то время как ложные часы представляют собой часы, которые показывают ложное или неточное время. Алгоритм кластеризации основан на статистических принципах и обеспечивает поиск группы часов, включающей наиболее точные надежные часы. Алгоритм суммирования (объединения) решает задачу вычисления финального значения сдвига времени путём статистического усреднения значений наиболее точных надёжных часов, прошедших алгоритм кластеризации.