O Cronômetro

Como funciona a hora certa do O Cronômetro: do NTP.br à tela

O navegador não fala NTP, então a hora chega em etapas. Relógios atômicos de césio ligados ao Observatório Nacional alimentam os servidores do NTP.br; um servidor do O Cronômetro, sincronizado com eles, mede a cada 5 minutos o desvio da borda da Cloudflare; e o navegador consulta essa borda, desconta a ida e volta e mostra a precisão obtida.

Por que o navegador não consulta o NTP.br direto?

Uma página web não pode abrir conexões UDP na porta 123, que é o canal do Network Time Protocol (NTP), definido na RFC 5905. O navegador só conversa com servidores por HTTP e protocolos parecidos. Por isso nenhum site consegue perguntar a hora diretamente a a.st1.ntp.br, mesmo que o servidor esteja a poucos milissegundos de distância.

A saída é imitar o NTP sobre HTTP. O navegador anota a hora do próprio relógio, pede a hora a um servidor confiável, anota de novo quando a resposta chega e faz a conta. O Cronômetro monta essa ponte em três trechos, e cada trecho tem um responsável e uma margem de erro conhecida.

A Hora Legal Brasileira é gerada pelo Observatório Nacional (ON), no Rio de Janeiro. O Decreto nº 4.264/2002 dá ao ON a competência de gerar a hora legal do país e disseminá-la. Dentro do ON, a Divisão Serviço da Hora (DISHO) guarda os padrões nacionais de tempo e frequência, com rastreabilidade ao Bureau Internacional de Pesos e Medidas (BIPM), na França.

O NTP.br é a iniciativa do Núcleo de Informação e Coordenação do Ponto BR (NIC.br) que distribui essa hora pela internet, de graça. Por um acordo entre as duas instituições, o ON fornece o sincronismo e o NIC.br fornece os equipamentos. Segundo apresentação do NIC.br de março de 2026, o projeto tem relógios atômicos de césio em São Paulo, no Rio de Janeiro e em Fortaleza, um em Brasília que estava em manutenção, e receptores de GNSS, os sistemas de navegação por satélite como o GPS.

Camada do NTP.br Servidores Referência de tempo
Estrato 1 (césio) a.st1 a e.st1.ntp.br relógios atômicos de césio ligados à Hora Legal Brasileira
Estrato 1 (satélite) gps.nu, gps.jd e gps.ce.ntp.br receptores de GNSS, como fonte independente
Estrato 2 a.ntp.br, b.ntp.br e c.ntp.br apenas os servidores de estrato 1 de césio

Os servidores de estrato 1 também se sincronizam entre si, o que aumenta a robustez. Todos aceitam NTS (Network Time Security, RFC 8915), a extensão que autentica as respostas de tempo com criptografia.

Como a hora sai do NTP.br e chega à borda da Cloudflare?

O site roda na rede da Cloudflare, e a hora é servida por um Worker, um programa pequeno que responde na borda da rede, no endereço /api/hora. A borda responde rápido, mas o relógio dela não é a Hora Legal Brasileira. Para ligar uma coisa à outra, um servidor do O Cronômetro faz o papel de fiscal.

Esse servidor roda o chrony, um cliente NTP, sincronizado com os servidores a.st1, c.st1 e d.st1.ntp.br, todos autenticados por NTS, e usa o serviço de hora da Cloudflare, também com NTS, como reserva. A cada 5 minutos, ele faz 20 consultas ao Worker no estilo do NTP, fica com o quarto de menor ida e volta, como o próprio NTP faz, e calcula a mediana do desvio entre o relógio da borda e o NTP.br e grava o resultado, com a incerteza e o horário da medição, no armazenamento da borda (Workers KV). O monitor mede a borda que atende o servidor, nos Estados Unidos; para as outras bordas, o site assume o mesmo desvio e soma 5 ms à incerteza. Se o chrony sinalizar status anormal ou dispersão acima de 50 ms, o monitor não publica nada.

Um detalhe técnico ajuda a entender o carimbo de hora. Nos Workers, Date.now() só avança depois de operações de entrada e saída, uma proteção da Cloudflare contra ataques do tipo Spectre. O valor devolvido corresponde, então, ao momento em que a borda tratou o pedido.

Como o navegador calcula a diferença do seu relógio?

Na hora certa e nas páginas de cidade, o navegador faz 4 consultas ao /api/hora na primeira medição e 2 nas seguintes; despertador, timer, contagem e calculadora de sono fazem 1, e o cronômetro e os artigos não consultam. Um resultado com menos de 10 minutos é reaproveitado entre páginas e abas. Em cada consulta, o navegador anota a hora local antes do pedido (t0) e depois da resposta (t3). O tempo de ida e volta é t3 − t0, menos o tempo que a borda levou para responder. A hora certa daquele instante é o carimbo da borda corrigido pela calibração, e o desvio do seu aparelho é a diferença entre essa hora e o ponto médio (t0 + t3) ÷ 2.

Como não dá para saber se a ida demorou mais que a volta, a incerteza de cada amostra é metade do tempo de ida e volta, mais a incerteza da calibração. Por isso o cálculo fica com a amostra mais rápida e descarta qualquer uma acima de 1,5 s:

Amostra Ida e volta Desvio estimado Incerteza da amostra
1 48 ms +1,512 s ±24 ms
2 31 ms +1,503 s ±15,5 ms
3 95 ms +1,540 s ±47,5 ms
4 36 ms +1,506 s ±18 ms

Neste exemplo ilustrativo, vale a amostra 2: o aparelho está 1,503 s atrasado, com incerteza de ±15,5 ms mais a da calibração. O resultado fica guardado no aparelho e é refeito a cada 10 minutos com a aba visível, quando você volta a uma aba que ficou mais de 10 minutos escondida e quando o relógio do sistema dá um salto maior que 2 s.

O que acontece se a borda ou o monitor falharem?

A hora passa para a melhor fonte disponível, e o selo de precisão sempre diz qual é:

  1. Borda calibrada pelo NTP.br. É o caminho normal. O selo traz a fonte, o tempo desde a última verificação e a incerteza, no formato “Hora Legal Brasileira via NTP.br · verificada há 40 s · ±12 ms”.
  2. Borda sem calibração recente. Se o monitor parar, o Worker continua respondendo com o relógio da Cloudflare, e o selo passa a mostrar “Hora sincronizada”, sem citar o NTP.br.
  3. Cabeçalho Date. Se o Worker falhar, a página lê o campo Date da resposta de um arquivo estático sem cache. Esse campo tem resolução de 1 segundo, pela RFC 9110, e a página o refina para frações de segundo ao detectar a virada do segundo.
  4. Relógio do aparelho. Sem rede e sem uma medição das últimas 6 horas, sobra o relógio do próprio dispositivo, e o selo mostra “Hora do seu aparelho”.

Em nenhum caso a página chama a hora de exata. Ela mostra a fonte e a incerteza medida, porque toda medição de tempo pela internet tem margem de erro.

Qual precisão você pode esperar?

A precisão depende da sua conexão até a borda da Cloudflare mais próxima. Com 20 ms de ida e volta, a incerteza da amostra é de ±10 ms; com 80 ms, possível numa rede móvel ruim, sobe para ±40 ms. Somada a incerteza da calibração, o selo mostra o total.

Para um relógio que exibe segundos, ±15 ms equivale a 1,5% de um segundo. Entre uma sincronização e outra, a página soma o desvio medido ao relógio do aparelho. Se o sistema operacional mudar a hora em mais de 2 segundos nesse intervalo, o salto é detectado e a medição é refeita, em vez de a página continuar com um desvio que já não vale.

Onde conferir a hora certa agora?

A hora certa de Brasília mostra o relógio grande, o selo com fonte e precisão e quanto o seu aparelho está adiantado ou atrasado. Para outras cidades, há páginas como a hora certa em São Paulo e a hora certa em Rio Branco. Para entender quem define a hora oficial do país, leia horário de Brasília e Hora Legal e o guia dos fusos horários do Brasil.

Perguntas frequentes

Quem mantém o NTP.br?

O NIC.br, que distribui gratuitamente a Hora Legal Brasileira pela internet. A referência de tempo vem de relógios atômicos ligados ao Observatório Nacional, por um acordo entre as duas instituições.

Qual é a precisão da hora certa no navegador?

A incerteza de cada medição é no máximo metade do tempo de ida e volta até a borda, somada à incerteza da calibração. Com 30 ms de ida e volta, a parte da conexão é de ±15 ms, e a calibração soma alguns milissegundos. O selo mostra o valor medido na sua visita.

Por que meu celular mostra uma hora diferente?

O relógio do aparelho pode estar alguns segundos adiantado ou atrasado, principalmente com a sincronização automática desligada. A página mostra a diferença medida, por exemplo “1,5 s atrasado”.

A hora certa funciona sem internet?

Sem conexão não há como medir de novo. A página continua com a última correção medida, por até 6 horas, e o selo mostra há quanto tempo ela foi verificada; depois, passa ao relógio do aparelho e o selo mostra “Hora do seu aparelho”.

O que é um servidor de estrato 1?

É o servidor ligado diretamente a uma referência de tempo, como um relógio atômico ou um receptor de satélite. No NTP.br, os servidores a.st1 a e.st1.ntp.br são de estrato 1 e recebem a hora de relógios de césio.

Fontes

  1. NIC.br: NTP.br em Fortaleza, hospedado na ETICE (IX Fórum Fortaleza, março de 2026) fortaleza.forum.ix.br
  2. NTP.br: estrutura do serviço ntp.br
  3. Decreto nº 4.264/2002: competência do Observatório Nacional sobre a Hora Legal planalto.gov.br
  4. Observatório Nacional: Tempo e Frequência (DISHO) gov.br
  5. IETF RFC 5905: Network Time Protocol Version 4 rfc-editor.org
  6. IETF RFC 8915: Network Time Security for the Network Time Protocol rfc-editor.org
  7. IETF RFC 9110: HTTP Semantics (campo Date) rfc-editor.org
  8. Cloudflare Workers: Performance and timers developers.cloudflare.com

Atalhos de teclado

Desligados, Espaço, Enter e Esc continuam valendo.

Cronômetro e timer

Espaço
Iniciar ou pausar
L
Marcar uma volta (cronômetro)
R
Zerar
Ctrl+Z
Desfazer o Zerar do cronômetro (por 6 s)

Despertador

Enter
Ativar o alarme
Espaço
Parar o alarme que está tocando
S
Soneca

Em qualquer página

F
Tela cheia
T
Trocar o tema: claro, escuro ou OLED
?
Mostrar estes atalhos
Esc
Fechar janela ou sair da tela cheia