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.
De onde vem a Hora Legal Brasileira?
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 é:
- 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”.
- 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.
- Cabeçalho Date. Se o Worker falhar, a página lê o campo
Dateda 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. - 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
- NIC.br: NTP.br em Fortaleza, hospedado na ETICE (IX Fórum Fortaleza, março de 2026) fortaleza.forum.ix.br
- NTP.br: estrutura do serviço ntp.br
- Decreto nº 4.264/2002: competência do Observatório Nacional sobre a Hora Legal planalto.gov.br
- Observatório Nacional: Tempo e Frequência (DISHO) gov.br
- IETF RFC 5905: Network Time Protocol Version 4 rfc-editor.org
- IETF RFC 8915: Network Time Security for the Network Time Protocol rfc-editor.org
- IETF RFC 9110: HTTP Semantics (campo Date) rfc-editor.org
- Cloudflare Workers: Performance and timers developers.cloudflare.com