Точное время в Windows Server 2016

Служба времени Windows — это компонент, использующий модель подключаемых модулей для клиентских и серверных поставщиков синхронизации времени. В Windows есть два встроенных клиентских поставщика и доступны подключаемые модули сторонних поставщиков. Один поставщик использует протокол NTP (RFC 1305) или MS-NTP для синхронизации локального системного времени с эталонным сервером, совместимым с этими протоколами. Другой поставщик предназначен для Hyper-V и синхронизирует виртуальные машины с узлом Hyper-V. Если есть несколько поставщиков, Windows выберет наилучшего поставщика, оценивая стратовый уровень, корневую задержку, корневую дисперсию, а затем смещение времени.

Примечание.

Краткий обзор службы времени в Windows можно получить в этом видео.

В этом разделе мы обсудим темы по мере их влияния на точность времени:

  • Усовершенствования
  • Measurements
  • Рекомендации

Внимание

Дополнение, на которое ссылается статья о точном времени в Windows 2016, можно скачать здесь. В этом документе содержатся дополнительные сведения о методологиях тестирования и измерения.

Примечание.

Модель подключаемого модуля поставщика времени Windows описана в документации в TechNet.

Иерархия доменов

Доменная и автономная конфигурации работают по-разному.

  • Участники домена используют безопасный протокол NTP для проверки подлинности, обеспечивающий безопасность и подлинность ссылки времени. Участники домена синхронизируются с главными часами, определенными иерархией доменов и системой оценки. В домене существует иерархический уровень страт времени, где каждый контроллер домена указывает на родительский контроллер домена с более точной стратой времени. Иерархия разрешается в основной контроллер домена, контроллер домена в корневом лесу или контроллер домена с меткой домена GTIMESERV, которая обозначает лучший сервер времени для домена. См. раздел "Указание надежной локальной службы времени с помощью GTIMESERV" ниже.

  • По умолчанию автономные компьютеры настроены использовать time.windows.com. Это имя разрешается DNS-сервером, который должен указывать на ресурс, принадлежащий корпорации Майкрософт. Все удаленно размещенные ссылки времени могут создавать сетевые сбои, препятствующие синхронизации. Нагрузка сетевого трафика и асимметричные сетевые пути могут уменьшить точность синхронизации времени. Если вам требуется точность времени до 1 мс, удаленные источники времени будут неэффективны.

При работе в гостевом компьютере вы можете столкнуться с различным поведением домена или автономной среды, так как у гостевых машин Hyper-V будут по крайней мере два поставщика времени Windows на выбор — время узла и NTP.

Примечание.

Дополнительные сведения о иерархии доменов и системе оценки см. в разделе "Что такое служба времени Windows?" запись блога.

Примечание.

Страта — это концепция, используемая в поставщиках NTP и Hyper-V, и ее значение указывает расположение часов в иерархии. Страта 1 резервируется для часов самого высокого уровня, а Страта 0 — для оборудования, время которого считается точным с минимальной или отсутствующей задержкой, связанной с ним. Страта 2 обращается к серверам страты 1, страта 3 — к страте 2 и т. д. Хотя страты более низкого уровня часто указывают более точное время, случаются несоответствия. Кроме того, служба W32Time принимает только время из страты 15 или ниже. Чтобы просмотреть страту клиента, используйте w32tm /query /status.

Критические факторы для определения точного времени

Во всех случаях для определения точного времени есть три важных фактора:

  1. Физический источник времени — исходные часы в домене должны быть стабильными и точными. Обычно это означает установку устройства GPS или указание на источник страты 1 с учетом страты 3. Аналогия такова: если у вас есть две лодки в воде и вы пытаетесь измерить высоту одной по сравнению с другой, точность будет правдивой, если исходная лодка очень стабильна и не движется. То же самое касается времени. Если исходные часы нестабильны, то влияние распространится на всю цепь синхронизации времени, усиливаясь на каждом этапе. Источник времени должен быть доступен, так как нарушения соединения могут помешать синхронизации времени. И наконец, источник должен быть безопасным. Если источник ссылки времени обслуживается неправильно или им управляет потенциально вредоносная сторона, домен может подвергаться атакам на основе времени.
  2. Стабильные клиентские часы — часы, которые гарантируют, что естественное смещение осциллятора не будет критичным. NTP использует несколько выборок, возможно из нескольких серверов NTP, для настройки и согласования часов в ваших локальных компьютерах. Это не шаг изменения времени, а скорее замедление или ускорение местных часов, что позволяет гарантировать точность времени и обеспечить точность среди NTP-запросов. Тем не менее, если осциллятор часов клиентского компьютера нестабилен, то могут возникнуть дополнительные отклонения между настройками и алгоритмы, используемые Windows для настройки часов, не будут работать точно. В некоторых случаях для обеспечения точности времени могут потребоваться обновления встроенного ПО.
  3. Симметричное NTP-подключение — очень важно, чтобы подключение по протоколу NTP было симметричным. NTP использует вычисления для корректировки времени, которые предполагают, что сетевой путь симметричен. Если путь, по которому пакет NTP передается на сервер, возвращается за другой период времени, это повлияет на точность. Например, путь может измениться из-за изменений в топологии сети или пакетов, направляемых через устройства с разными скоростями интерфейсов.

Для устройств с питанием от аккумулятора, как мобильных, так и переносимых, необходимо учитывать разные стратегии. Мы советуем поддерживать точность времени, обеспечивая корректировку часов единожды в секунду, что соотносится с частотой обновления часов. Эти настройки будут требовать большего потребления энергии аккумулятора, чем ожидалось, и могут отрицательно влиять на режимы энергосбережения, доступные в Windows для таких устройств. В устройствах с питанием от аккумулятора также есть определенные режимы энергопитания, в которых останавливается работа всех приложений, что препятствует способности W32Time корректировать часы и поддерживать точность времени. Кроме того, часы в мобильных устройствах могут быть изначально неточными. Условия окружающей среды влияют на точность часов, и мобильное устройство может попадать из одних условий в другие, что может помешать его способности поддерживать точность времени. Поэтому мы не советуем выбирать для мобильных устройств с питанием от аккумулятора параметры высокой точности.

Почему важно время?

Есть множество различных причин, по которым может потребоваться точное время. Типичным случаем для Windows является Kerberos, где для работы требуется 5-минутная точность между клиентом и сервером. Тем не менее есть множество других областей, в которых важна точность времени, в том числе:

  • Правительственные правила, такие как:
    • 50 мс для FINRA в США;
    • 1 мс для Европейской организации по ценным бумагам и рынкам (Директива Евросоюза "O рынках финансовых инструментов") в ЕС;
  • алгоритмы шифрования;
  • распределенные системы, такие как кластеры, SQL, Exchange и Document DB;
  • платформа Блокчейн для биткойн-транзакций;
  • распределенные журналы и анализ угроз;
  • Репликация Active Directory
  • отрасль платежных карт (сейчас требуется точность до 1 с).

Дополнительная справка