NTP - Como os servidores NTP são tão precisos

51

Tenho notado que nos meus servidores e outras máquinas o relógio sempre oscila, por isso é necessário sincronizar para permanecer preciso.

Como os relógios do servidor NTP não se movem e sempre permanecem corretos?

    
por Jason 23.04.2014 / 14:03

4 respostas

57

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.

    
por 23.04.2014 / 14:31
10

Em timekeeping de rede, a especificação que informa como um servidor obtém sua fonte de tempo é chamada de Nível de Estrato. Quanto menor o nível, melhor o tempo de manutenção desse servidor.

Dispositivos de nível de estrato 0 não estão conectados diretamente à rede. Eles são o próprio dispositivo de cronometragem e devem estar conectados a um computador para obter o tempo real. Este computador, em seguida, torna-se um servidor NTP Stratum nível 1.

Um computador conectado a um nível de Stratum 1 também pode se tornar um servidor de horário, mas seria um nível de estrato 2. À medida que os computadores se conectam a servidores de tempo, quanto mais baixo for o seu nível de estratificação, mais precisos serão os seus tempos.

Os dispositivos do nível 0 da camada incluem relógios atômicos que participam da TAI (hora atômica internacional) ou sincronizados com ela e os receptores de sinal de tempo enviado por tal relógio. Mais comumente são os receptores de cronometragem GPS com uma interface apropriada que inclui o sinal GPS PPS. O sinal PPS, quando o GPS tem um bom bloqueio em vários satélites, envia um pulso por segundo, e a borda principal desse pulso está dentro de nanossegundos do início real daquele segundo. Dependendo da especificação do receptor GPS, o sinal PPS pode ser mais ou menos preciso. Isso ocorre porque cada satélite GPS tem um relógio atômico. Uma vez que o receptor de GPS encontrou sua própria posição e a localização dos satélites de GPS que está ouvindo, ele pode corrigir a propagação de RF e dar a você um tempo quase tão preciso quanto ter um relógio atômico no receptor de GPS.

Portanto, os servidores do Stratum nível 1 se conectam a relógios atômicos, ou receptores de GPS, e os servidores NTP se conectam a eles. Mesmo conectando-se a um servidor de nível de estrato 2 ou 3 com ajustes freqüentes fornecerá ao computador precisão de tempo medida em nanossegundos. Mas se você precisar de um tempo melhor, conecte-se a um servidor de nível de estrato, ou compre um receptor de GPS de horário adequado e torne-se uma fonte de nível de estrato.

    
por 23.04.2014 / 16:33
3

Todos os clocks derivam até certo ponto, depende da fonte do sinal de temporização e de quão bem ele é rastreado. Em um PC, esta é a HPET atualmente, mas o PC pode perder a noção de quantos ticks passaram se sobrecarregados.

Os servidores NTP com os quais sua máquina fala provavelmente estão perdendo tempo, no entanto, eles retornam seu tempo para uma fonte melhor.

Em última análise, as melhores fontes são relógios altamente precisos, como relógios atômicos. Você pode pensar em NTP como uma rede de máquinas, cada uma terá um número de fontes que depende do tempo e distorce seu próprio tempo para o que é considerado mais preciso.

Isso é governado por uma fonte que declara seu estrato. Um relógio atômico ou GPS é o estrato 0, e a autoridade sobre qual é o tempo. Cada camada é o próximo stratum - stratum 1, e irá verificar um número de fontes do stratum 0 junto com peers no mesmo nível, a fim de verificar as fontes de tempo.

Você provavelmente está falando com uma fonte de tempo de estrato 2 ou 3.

    
por 23.04.2014 / 14:30
1

O que os outros escreveram é verdade: um servidor Stratum 1 obtém seu tempo de um dispositivo Stratum 0. Eu não sei em que intervalos de tempo isso acontece, mas eu acho que eles são bem precisos lá.

Um servidor Stratum n com n > 1 obtém seu tempo via NTP de um servidor Stratum n-1. Isso significa que ele sincroniza a ele em intervalos regulares. Ao iniciar o serviço NTP, a sincronização acontece em intervalos bastante curtos e, com o tempo, os intervalos começam a aumentar. Eventualmente, o intervalo é tão grande quanto 1024s, cerca de 17 minutos.

O que não foi abordado é a questão que acontece entre esse tempo? Bem, existe um recurso chamado arquivo de desvio . Ajuda o NTP a monitorar qualquer desvio entre o relógio local e o relógio de referência. A frequência do relógio local é então ajustada de acordo com o desvio detectado, para que o tempo também seja preciso entre as pesquisas do servidor.

Outra implementação NTP pode usar outras facilidades, mas uma coisa é comum: a necessidade e a capacidade de ajustar a frequência do relógio.

    
por 24.04.2014 / 18:18

Tags