Resumo

  • A RFC 868 devolvia pelo TCP ou UDP, na porta 37, um contador de 32 bits de segundos desde 1º de janeiro de 1900.
  • O limite de 2036 estava no próprio padrão. A hora do desbordamento pode ser calculada pela largura do campo, mas a RFC informa apenas o ano.
  • O NTP transformou uma leitura isolada em parte de um sistema de sincronização que também precisa interpretar eras.

Uma leitura, várias referências

Naquele período, alguns sistemas não tinham relógio de calendário e qualquer relógio podia conter erro humano ou mecânico. A RFC 868 sugeriu consultar rapidamente vários sites independentes e comparar as respostas. O padrão tornava possível compartilhar um número legível por máquina, sem definir todo o processo para sincronizar um relógio local.

A contagem começava à meia-noite GMT de 1º de janeiro de 1900. O servidor escutava na porta 37. Com TCP, o cliente se conectava, recebia um valor binário de 32 bits e a sessão se encerrava. Com UDP, enviava um datagrama vazio e recebia outro com a hora. Sem conseguir determinar o próprio horário, o servidor não devia inventar um valor: poderia recusar ou fechar a conexão TCP sem resposta, ou ignorar a solicitação UDP.

A RFC não define compensação do atraso de rede, escolha de fonte confiável, autenticação ou ajuste do oscilador. Uma resposta curta pode servir para comparação, mas não comprova por si só a precisão do horário.

O serviço em texto tinha outro papel

A RFC 867 Daytime, publicada no mesmo mês, transmitia data e hora em ASCII pela porta 13. Era útil para depuração e medição, sugeria caracteres imprimíveis e deixava o formato aberto. A nota recomenda a RFC 868 para o uso por máquinas. Os documentos separam representação e finalidade, sem afirmar que os dois serviços usavam o mesmo relógio.

A época de 1900 antecede a referência Unix de 1970. A própria RFC 868 registra que 00:00 GMT de 1º de janeiro de 1970 corresponde a 2.208.988.800. Um ponto de partida fixo possibilita comparar os números entre sistemas, desde que as unidades também coincidam.

A restrição de 32 bits trazia uma fronteira explícita. A especificação dizia que a base serviria «até o ano de 2036». O valor 2³² segundos desde 1900 ocorre em 7 de fevereiro de 2036 às 06:28:16 GMT. É um cálculo da época e da largura do campo; a RFC não publica a hora exata. A próxima unidade não cabe e o contador volta a zero. Sem contexto adicional, números depois da volta podem parecer números de antes dela.

Sincronizar exige mais do que consultar

A RFC 958, de 1985, descreve o NTP como evolução da RFC 868 e da mensagem ICMP Timestamp, e como substituto apropriado dos dois. O objetivo agora era sincronizar vários relógios com clientes e servidores distribuídos, uma tarefa maior que devolver uma amostra.

O NTP manteve a época de 1900 e acrescentou interpretação de eras. A RFC 5905 explica o campo de segundos de 32 bits e a passagem da era 0 para a era 1 em 2036. O timestamp transmitido também leva uma fração; para situar o valor na era completa, ainda é necessário contexto. Conhecer aproximadamente a data atual permite interpretar os valores perto da volta.

A história não é a de um contador que passou a durar para sempre. A RFC 868 tornou a consulta simples e informou o horizonte de sua base. O NTP assumiu as perguntas de sincronização e eras. Desde 1983, a fronteira já fazia parte do padrão: colocar 1900 no fio resolveu a comparação inicial, mas não fez um valor isolado explicar todos os períodos futuros.

Fontes e limites

A fonte principal é a RFC 868, Time Protocol, de maio de 1983. As RFCs 867, 958 e 5905 documentam, respectivamente, a alternativa em texto, a linhagem declarada do NTP e a interpretação posterior de eras. Elas não comprovam número de servidores, precisão, migração total ou falha em 2036.

A RFC 2626 também alerta para a volta do contador em 2036; o minuto exato impresso nela diverge do cálculo acima, por isso este artigo usa apenas o alerta sobre o ano (RFC 2626). A Nota 65 de Heng Lu orientou a pergunta editorial sobre como implementações carregam uma regra escrita adiante; é uma lente de leitura, não evidência histórica (Nota 65).