O que é desvio de relógio?

Desvio de relógio é a diferença entre o relógio do seu sistema local e a hora de referência verdadeira — neste caso, o relógio do servidor. Embora os sistemas operacionais tentem manter os relógios sincronizados usando NTP (Network Time Protocol), pequenas discrepâncias de alguns milissegundos a vários segundos são comuns, especialmente em dispositivos que não sincronizaram recentemente ou estão atrás de firewalls rigorosos.

Entender o desvio de relógio é importante em sistemas distribuídos, aplicações em tempo real, tokens de autenticação (como TOTP), tarefas agendadas e qualquer cenário em que seu cliente e um servidor remoto precisem concordar sobre a hora atual. Um grande desvio pode causar falhas na validação de tokens, prazos perdidos ou timestamps incorretos em logs.

Descrição da ferramenta

Esta ferramenta mede o desvio de relógio entre seu navegador e o servidor usando um protocolo de timing baseado em WebSocket. Ela envia uma série de sondas de ida e volta, registra a latência de cada uma e usa o tempo de ida e volta mediano (RTT) para calcular o quanto seu relógio local está à frente ou atrás em relação ao servidor. Após a medição, a ferramenta exibe uma estimativa em tempo real da hora do servidor ao lado da sua hora local para que você possa observar a diferença em tempo real.

Como funciona

A ferramenta abre uma conexão WebSocket com o servidor e troca uma série de mensagens ping/pong com timestamp. Para cada mensagem:

  1. O cliente registra a hora de envio, recebe o timestamp do servidor na resposta e registra a hora de recebimento.
  2. Metade do tempo de ida e volta é usada como uma estimativa do atraso de rede de mão única.
  3. O desvio de relógio é calculado como: horaDoServidor − horaDoCliente − (RTT / 2).

Dez amostras são coletadas e o RTT mediano é usado — não a média — para reduzir a influência de picos discrepantes causados por pausas de GC ou jitter de rede transitório. O desvio de relógio resultante indica quantos milissegundos seu relógio local está à frente (positivo) ou atrás (negativo) do servidor.

Recursos

  • Medição baseada em WebSocket — usa comunicação bidirecional em tempo real para sondas de timing precisas sem overhead HTTP
  • Filtragem de RTT mediano — coleta 10 amostras e usa a mediana para eliminar jitter e picos discrepantes
  • Exibição de relógio em tempo real — mostra uma hora de servidor estimada continuamente atualizada e sua hora local lado a lado após a medição