
Как узнать, что часы локального компьютера идут неправильно? Я создаю систему, в которой очень важно знатьверновремя.
Есть ли какие-нибудь хорошие бесплатные серверы времени, которыми я могу воспользоваться, или есть ли другой способ узнать, что часы на компьютере идут неправильно?
решение1
Вам нужен внешний источник времени, чтобы узнать, отстает ли ваше время или нет по сравнению с источником.
Чем больше у вас источников, тем в большей безопасности вы можете быть. Обычно NTP достаточно для поддержания правильного системного времени. Однако, если у вас нет доступа к сети или NTP-серверу, вы можете подключить к системе радиоуправляемые часы или использовать GPS для синхронизации времени.
решение2
есть много хороших бесплатных серверов времени, часть сети NTP. Я не знаю, поддерживает ли Windows NTP, но любая система Unix, включая Mac OSX, должна с ним работать.
решение3
Вы можете использоватьНТП программное обеспечение(или встроенная функциональность в зависимости от ОС) для обновления времени. Если он поддерживает пользовательские серверы, вы можете найти их много, включаяNIST's серверы(у них есть свои атомные — цезиевые, если быть точным — часы, и они являются официальным хранителем времени в США). Даже если системные часы неидеальны (а таких мало), вы можете просто настроить свое программное обеспечение на более частое обновление времени (например, каждый час или каждые 10 минут и т. д.)
Чтобы выбрать частоту обновления, вы можете отключить все функции обновления и программное обеспечение, подождать значительное время (например, 24 часа, 1 неделю и т. д.), а затем вручную запустить обновление и наблюдать разницу, чтобы увидеть, на сколько секунд (или минут‽) оно отставало. Вы можете использовать это, чтобы определить хороший интервал, который позволит вам поддерживать системное время правильным, не делая лишних, ненужных вызовов на сервер времени.
решение4
Windows 7 по умолчанию синхронизирует свое время с time.windows.com
(щелкните правой кнопкой мыши по часам, нажмите «Настроить дату/время» и перейдите на вкладку «Время в Интернете», чтобы увидеть это), которое в свою очередь синхронизируется с NIST (Национальный институт стандартов и технологий), поддерживающим «официальное время» в США. Вы можете синхронизироваться с NIST напрямую через службу времени NIST в Интернете. 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. Эти передачи можно принимать по всей территории США и большей части мира. Когда вы видите «атомные» настенные часы и тому подобное, они работают, синхронизируясь с этим сигналом.
Разве время не интересно?