Os servidores NTP contam com relógios altamente precisos para cronometragem de precisão. Uma fonte de tempo comum para os servidores NTP centrais são os relógios atômicos ou os receptores de GPS (lembre-se de que os satélites de GPS têm relógios atômicos a bordo). Esses relógios são definidos como precisos, pois fornecem uma referência de tempo altamente exata. Não há nada mágico sobre GPS ou relógios atômicos que os façam dizer exatamente que horas são; por causa de como os relógios atômicos funcionam, eles são simplesmente muito bons, tendo sido dito uma vez que horas são, mantenha informando o tempo exato (desde o segundo é definido em termos de efeitos atômicos ). Na verdade, vale a pena notar que o horário do GPS é diferente do UTC que estamos mais acostumados a ver. Estes relógios atômicos, por sua vez, são sincronizados contra o Tempo Atômico Internacional ou TAI , a fim de não apenas dizer com precisão a passagem do tempo, mas também o tempo .
Depois de ter um horário exato em um sistema conectado a uma rede como a Internet, é uma questão de engenharia de protocolo que permite a transferência de tempos precisos entre os hosts em uma rede não confiável. A este respeito, um servidor NTP de stratum 2 (ou mais distante da fonte de tempo real) não é diferente da sincronização do sistema desktop com um conjunto de servidores NTP.
No momento em que você tem alguns tempos precisos (como obtido em servidores NTP ou em outro lugar) e sabe a taxa de avanço de seu relógio local (que é fácil de determinar), você pode calcular a taxa de desvio do relógio local em relação ao "Acredito preciso" passagem do tempo. Uma vez bloqueado, este valor pode então ser usado para ajustar continuamente o relógio local para torná-lo a relatar valores muito próximos da passagem precisa do tempo, mesmo que o relógio local em tempo real seja altamente impreciso; contanto que seu relógio local não seja altamente errático, isso deve permitir manter o tempo exato por algum tempo, mesmo que sua fonte de tempo de upstream fique indisponível por qualquer motivo. Algumas implementações do cliente NTP (provavelmente a maioria das implementações do daemon ntpd
ou do serviço do sistema) fazem isso, e outras (como o ntpdate
do ntpd, que simplesmente define o relógio uma vez) não o fazem. Isso é comumente chamado de arquivo de desvio porque armazena persistentemente uma medida do desvio do relógio, mas falando estritamente não precisa ser armazenado como um arquivo específico no disco.
No NTP, o estrato 0 é, por definição, uma fonte de tempo precisa. O Estrato 1 é um sistema que utiliza uma fonte de tempo de estrato 0 como sua fonte de tempo (e, portanto, é um pouco menos preciso do que a fonte de tempo do stratum 0). O estrato 2 é um pouco menos preciso que o estrato 1 porque está sincronizando seu tempo com a fonte do estrato 1. E assim por diante. Na prática, essa perda de precisão é tão pequena que é completamente desprezível em todos os casos, exceto nos mais extremos.