Muitos de nós tivemos problemas ocasionais com nossos computadores e outros dispositivos retendo configurações de hora precisas, mas uma sincronização rápida com um servidor NTP torna tudo bem novamente. Mas se nossos próprios dispositivos podem perder a precisão, como os servidores NTP conseguem se manter tão precisos?
A sessão de perguntas e respostas de hoje chega até nós como cortesia do SuperUser - uma subdivisão do Stack Exchange, um grupo de sites de perguntas e respostas voltado para a comunidade
Foto cortesia de LEOL30 (Flickr) .
A questão
O leitor de SuperUser Frank Thornton quer saber como os servidores NTP são capazes de permanecer tão precisos:
Percebi que em meus servidores e em outras máquinas, os relógios sempre oscilam de forma que precisam ser sincronizados para permanecerem precisos. Como os relógios do servidor NTP evitam desviar e sempre permanecem tão precisos?
Como os servidores NTP conseguem se manter tão precisos?
A resposta
O contribuidor do SuperUser Michael Kjorling tem a resposta para nós:
Os servidores NTP contam com relógios altamente precisos para cronometragem precisa. Uma fonte de tempo comum para servidores NTP centrais são relógios atômicos ou receptores GPS (lembre-se de que os satélites 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 no GPS ou nos 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 em, uma vez que foram informados que horas são, guardando tempo exato (desde o segundo é definido em termos de efeitos atômicos ) Na verdade, é importante notar que A hora do GPS é diferente do UTC que estamos mais acostumados a ver. Esses relógios atômicos são, por sua vez, sincronizados com Tempo Atômico Internacional ou TAI a fim de não apenas contar com precisão a passagem do tempo, mas também a Tempo.
Uma vez que você tenha uma hora exata em um sistema conectado a uma rede como a Internet, é uma questão de engenharia de protocolo, permitindo a transferência de tempos precisos entre hosts em uma rede não confiável. A este respeito, um servidor NTP Stratum 2 (ou mais distante da fonte de tempo real) não é diferente da sincronização do seu sistema de desktop com um conjunto de servidores NTP.
No momento em que você tem alguns tempos precisos (conforme obtido de servidores NTP ou em outro lugar) e sabe a taxa de avanço do seu relógio local (que é fácil de determinar), você pode calcular a taxa de desvio do seu relógio local em relação ao "considerado preciso " passagem do tempo. Depois de travado, esse valor pode ser usado para ajustar continuamente o relógio local para torná-lo relatar valores muito próximos da passagem precisa do tempo, mesmo se o próprio relógio em tempo real local for altamente impreciso. Contanto que seu relógio local não seja alto errático , isso deve permitir manter o tempo preciso por algum tempo, mesmo se sua fonte de tempo upstream ficar indisponível por qualquer motivo.
Algumas implementações de cliente NTP (provavelmente a maioria dos daemon ntpd ou implementações de serviço do sistema) fazem isso, e outras (como o companheiro ntpdate do ntpd que simplesmente acerta o relógio uma vez) não. Isso é comumente referido como arquivo de deriva porque armazena persistentemente uma medida de variação do relógio, mas estritamente falando, não precisa ser armazenado como um arquivo específico no disco.
No NTP, o Stratum 0 é, por definição, uma fonte de tempo precisa. Stratum 1 é um sistema que usa uma fonte de tempo Stratum 0 como sua fonte de tempo (e, portanto, é um pouco menos preciso do que a fonte de tempo Stratum 0). O Stratum 2 novamente é ligeiramente menos preciso do que o Stratum 1 porque está sincronizando seu tempo com a fonte do Stratum 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.
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui .