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