2

Как я могу узнать, что часы локального компьютера неверны? Я создаю систему, в которой очень важно знать правильное время.

Есть ли какие-нибудь хорошие серверы свободного времени, которые я могу использовать, или есть какой-нибудь другой способ узнать, неверны ли часы компьютера?

4 ответа4

6

Вам нужен внешний источник времени, чтобы узнать, не вышел ли ваш источник времени или нет.

Чем больше у вас источников, тем безопаснее вы можете быть. Обычно NTP достаточно, чтобы поддерживать правильное системное время. Однако, если у вас нет доступа к сети или NTP-серверу, вы можете подключить радиоуправляемые часы к системе или использовать GPS для синхронизации времени.

2

Есть много хороших серверов свободного времени, входящих в сеть NTP. Я не знаю, поддерживает ли Windows NTP, но любая система Unix, включая Mac OSX, должна с ней работать.

http://www.pool.ntp.org/en/

2

Вы можете использовать программное обеспечение NTP (или встроенную функциональность в зависимости от ОС) для обновления времени. Если он поддерживает пользовательские серверы, вы можете найти их много, в том числе серверы NIST (у них есть свои собственные атомные, точнее, цезиевые часы, и они являются официальным хранителем времени в США). Даже если системные часы не идеальны (а их немного), вы можете просто настроить свое программное обеспечение для более частого обновления времени (например, каждый час или каждые 10 минут и т.д.)

Чтобы выбрать частоту обновления, вы можете отключить все функции обновления и программное обеспечение, подождать значительное количество времени (например, 24 часа, 1 неделя и т.д.), А затем вручную запустить обновление и наблюдать разницу, чтобы узнать, сколько секунд (или minutes‽) это было выключено. Вы можете использовать это, чтобы определить хороший интервал, который позволяет вам сохранять правильное системное время, не делая чрезмерных, ненужных обращений к серверу времени.

1

Windows 7 по умолчанию синхронизирует время с time.windows.com (щелкните правой кнопкой мыши на часах, нажмите «Настроить дату / время» и переключитесь на вкладку «Интернет-время», чтобы увидеть это), что, в свою очередь, синхронизируется с NIST (Национальный институт). стандартов и технологий), сопровождающих "официального времени" в США. Вы можете синхронизироваться с NIST напрямую через NIST Internet Time Service. time.nist.gov - это самый известный сервер NIST-ITS, но его не рекомендуется использовать, потому что высокая нагрузка делает его ненадежным. Вместо этого используйте один из других официальных серверов, перечисленных на веб-странице NIST-ITS. Я использую ntp-nist.ldsbc.edu (зеркало, предоставленное LDS Business College) на западном побережье и nist1.columbiacountyga.gov (округ Колумбия, правительство штата Джорджия) на восточном побережье, потому что оба являются официальными зеркалами NIST-ITS, но довольно неясный, поэтому нагрузка низкая (= быстрая и надежная синхронизация).

На более техническом уровне система NTP должна обеспечивать точность времени значительно ниже одной секунды (теоретическая точность, очевидно, находится в наносекундном диапазоне, но для этого требуется большой пул источников времени).

Ваша точная ссылка зависит от вашего точного заявления; NIST-ITS предоставляет время, которое является официальным для целей правительства США и принимается в качестве стандарта большинством отраслей. Другие высокосинхронизированные системы могут работать по другому стандарту. Например, система GPS была первоначально синхронизирована с эталонным временем USNO, предоставленным ВМС США, которое является стандартным для вооруженных сил и точно синхронизировано со временем NIST. Но со временем появились две разницы: (1) время GPS не учитывает високосных секунд, в то время как время NIST/USNO делает, поэтому время GPS теперь отстает на 14 секунд, и (2) потому что синхронизация времени между спутниками GPS ad-hoc, он может приемлемо отклоняться от времени NIST/USNO на несколько сотен нс. Я сомневаюсь, что время в наносекундах будет иметь значение в вашем приложении, но эти 14 секунд - довольно большая разница, которую вам нужно будет компенсировать, если вы решите получать время GPS. Не волнуйтесь, система GPS передает текущее смещение. подробнее здесь.

Сотовые сети не так сильно синхронизированы, как люди думают. Сотовые телефоны получают свое время от вышек, но вышки поддерживают свои собственные часы и могут отклоняться на целых 1-2 минуты от среднего по сети. Я полагаю, что башни действительно пытаются синхронизироваться, но они, кажется, не делают это хорошо. Посмотрите на свой телефон и телефон друзей, и вы, вероятно, обнаружите, что они показывают время на несколько секунд вперед. Я думаю, это потому, что телефоны ускоряют время с ограниченной скоростью для синхронизации с каждой башней, чтобы избежать явного скачка времени во время движения.

У других стран будет свое собственное национальное официальное время, которое обычно синхронизируется со временем NIST (например, я полагаю, что по дипломатическому соглашению агентство по стандартизации Великобритании работает с NIST для обеспечения точной синхронизации через океан), но может несколько отличаться ,

Если вы хотите стать действительно интересным, NIST предоставляет машиночитаемые радиопередачи через свою коротковолновую станцию WWV. Эти трансляции могут быть получены на всей территории США и большей части мира. Когда вы видите "атомные" настенные часы и тому подобное, они работают путем синхронизации с этим сигналом.

Разве время не интересно?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .