Resumen

  • La RFC 868 devolvía, por TCP o UDP en el puerto 37, segundos desde el 1 de enero de 1900 en un número binario de 32 bits.
  • La fecha de caducidad de esa representación aparecía en el estándar desde el inicio: 2036. El documento no especificaba el instante exacto del desbordamiento.
  • NTP heredó la época y asumió una tarea mayor: sincronizar relojes y resolver a qué era pertenece el número.

Consultar no es sincronizar

En 1983, algunos ordenadores carecían de reloj de calendario y todos podían arrastrar errores humanos o mecánicos. La RFC 868 proponía consultar rápidamente varios sitios independientes para confirmar o corregir la hora local. Entregaba un número comparable entre máquinas, pero no describía un sistema completo de sincronización.

El valor contaba segundos desde las 00:00 GMT del 1 de enero de 1900. El servidor escuchaba en el puerto 37. En TCP, el cliente se conectaba y recibía una cifra binaria de 32 bits antes del cierre. En UDP, enviaba un datagrama vacío y recibía otro con el valor. Si el servidor no podía conocer su hora, debía abstenerse: podía rechazar la conexión TCP o cerrarla sin cifra, y no contestar al datagrama UDP.

La RFC no dice cómo descontar el tiempo de tránsito, elegir una fuente confiable, autenticar el dato ni ajustar el reloj del cliente. Comparar lecturas puede ayudar; la cifra por sí sola no certifica exactitud.

La alternativa que hablaba en ASCII

La RFC 867 Daytime, publicada ese mismo mes, enviaba fecha y hora como texto ASCII por el puerto 13. Servía para depuración y medición, recomendaba caracteres imprimibles y dejaba abierto el formato concreto. Su nota enviaba las necesidades de las máquinas a la RFC 868. Se trataba de representaciones distintas, no de evidencia sobre la calidad de dos relojes.

La base de 1900 precedía al origen Unix de 1970. La RFC 868 incluye el puente entre ambos: la medianoche GMT del 1 de enero de 1970 tiene el valor 2.208.988.800. Un origen acordado permite comparar números, si también se comparten las unidades.

El límite quedó escrito: aquella base «servirá hasta el año 2036». Un contador sin signo de 32 bits alcanza 2³² segundos el 7 de febrero de 2036 a las 06:28:16 GMT. Esa hora se obtiene de la época y el ancho del campo; la RFC solo cita el año. La siguiente unidad de tiempo no cabe y el contador comienza de nuevo. Sin una referencia externa, un número posterior puede confundirse con otro de la primera vuelta.

NTP añadió coordinación y contexto

La RFC 958, de 1985, explicó que NTP evolucionó a partir de la RFC 868 y del mensaje ICMP Timestamp, y que podía sustituirlos. Su trabajo ya era sincronizar un conjunto de relojes mediante clientes y servidores distribuidos.

NTP conservó la época de 1900, pero los valores debían situarse en eras distintas. La RFC 5905 describe el campo de segundos de 32 bits y el paso de la era 0 a la 1 en 2036. El sello transmitido incluye además una fracción; reconocer la era requiere contexto. Un conocimiento aproximado de la fecha permite interpretar el valor cerca del desbordamiento.

El cambio no convirtió un contador en una medida infinita. La RFC 868 hizo ligera la consulta y anticipó el horizonte de su representación. NTP trató la coordinación y la interpretación de eras como problemas adicionales. Desde 1983 estaba claro que el número tenía un comienzo común y una frontera: una lectura aislada no podría indicar para siempre a qué periodo pertenecía.

Fuentes y alcance

La fuente central es la RFC 868, Time Protocol, de mayo de 1983. Las RFC 867, 958 y 5905 aportan el contraste ASCII, la evolución declarada por NTP y la interpretación posterior de eras. No prueban cuántos servidores se desplegaron, su precisión, una migración completa ni una caída en 2036.

La RFC 2626 también advierte del desbordamiento de 2036; la hora exacta que imprime difiere del cálculo anterior, así que aquí solo se usa su aviso sobre el año (RFC 2626). La Nota 65 de Heng Lu orientó la pregunta editorial sobre cómo las implementaciones mantienen una regla escrita; es un enfoque de lectura, no evidencia histórica (Nota 65).