Como funciona o ntpstat?

2

Eu instalei o ntp em algumas das máquinas de rede nas quais estou trabalhando. Quando eu verifico o ntpstat, vejo que ele diz que os relógios estão sincronizados com alguns ms, geralmente entre 12 e 70 ms.

Minhas perguntas são:

  • Como o NTP descobre os valores acima?
  • Se conhece estes valores, porque não se corrige?
  • Esses valores são positivos ou negativos?
por Ketan 27.07.2012 / 20:23

2 respostas

2

How does NTP find out the above values?

O protocolo NTP permite que cada computador calcule o efeito da latência da rede (o tempo que um pacote com timestamp demora para ir de um computador a outro), bem como qualquer diferença no tempo do relógio.

If it knows these values, why doesn't it correct itself?

Faz, mas tenta fazê-lo sem problemas, o jitter de rede pode fazer com que as diferenças de tempo pareçam mudar quando não o são.

Are these values positive or negative?

Eles geralmente são exibidos por ntpq -p com um sinal - quando negativo.

    
por 27.07.2012 / 21:21
2

Eu nunca usei o ntpstat (não é uma instalação padrão no debian / ubuntu) mas usei o ntp por muitos anos e geralmente observei a saída de ntpq -nc peer ou ntpq -np que provavelmente mostra informações similares. A saída ntpq mostra valores positivos e negativos.

Basicamente, se o ntp (stat) disser que está sincronizado (ou a saída do ntpq sinaliza um servidor com um '*'), então é o mais próximo possível, mas continuará a tentar melhorar.

Uma explicação simplificada da operação do NTP é que ele envia regularmente pacotes para servidores de horário contendo um timestamp do tempo que a máquina local pensa que é. O servidor, em seguida, adiciona seu registro de data e hora e retorna o pacote para a máquina local. Assim que chega, a máquina local tem um terceiro carimbo de data e hora, o horário de chegada. Supondo que o pacote tenha levado o mesmo tempo para chegar ao servidor e retornar, o NTP pode descobrir qual era o horário da máquina local quando o servidor adicionou o timestamp e, portanto, pode calcular uma diferença e fazer um ajuste.

Os pacotes de rede geralmente levam algumas dezenas de milissegundos para chegar ao servidor e retornar. Devido a variações de tráfego de rede, os tempos de trânsito de saída e entrada podem não ser os mesmos, mas não há como determinar isso, portanto, o NTP deve assumir que eles são iguais. Como resultado, o NTP nunca pode se aproximar de alguns milissegundos para obter a sincronização exata e declarará a sincronização quando os carimbos de data / hora de envio e recebimento suportarem o registro de data e hora do servidor.

Mesmo quando sincronizado, o NTP continuará a trocar pacotes e tentará ajustar o tempo para minimizar as diferenças de tempo. Ele faz isso fazendo pequenos ajustes (na verdade, aumentando ou diminuindo um pouco o número de pulsos de clock em um segundo) para que não haja saltos repentinos e para evitar problemas devido a anomalias na rede.

Então, quando ntpstat diz que é sincronizar, é o mais próximo que pode chegar, mas dá a melhor estimativa de quão longe ela está.

    
por 27.07.2012 / 21:21

Tags