RFC 738 UNKNOWN TIME · APPLICATIONS

Time server

A simple network service that returns a host's current time as a binary value.

On rfc-editor.org ↗
PUBLISHED
October 1977
AUTHORS
K. Harrenstien
STREAM
Legacy
SERVER SOCKET
37 (45 octal)
TIME VALUE
32 bits
STARTING POINT
Midnight, 1 January 1900 GMT
DOI
10.17487/RFC0738

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
NWG/RFC# 738                                         KLH 31 Oct 77 42218
Network Working Group                                     K. Harrenstien
Request for Comments: 738                                         SRI-KL
NIC: 42218                                               31 October 1977



                              Time Server




This note describes the Time Server protocol, as currently implemented
on ITS hosts (i.e. MIT-(AI/ML/MC/DMS)).  The idea is to provide a
site-independent, machine readable date and time in as efficient and
swift a manner as possible; its motivation arises from the fact that not
all systems have a date/time clock, and all are subject to occasional
human or machine error.  The use of time-servers makes it possible to
quickly confirm or correct a system's idea of the time, by making a
brief poll of several independent sites on the network.

In particular the network time server works as follows:

   S: Listen on socket 37 (45 octal).

   U: Connect to socket 37 [not ICP].

   S: Send the time as a 32 bit binary number.

   U: Close the connection.

   S: Close the connection.

Note that this is not a normal ICP sequence.  Rather, instead of sending
a 32-bit socket number to reconnect to, the server returns a 32-bit time
value and closes the connection.  If the server is unable to determine
the time at its site, it should either refuse the connection or close it
without sending anything.

The time is the number of seconds since 0000 (midnight) 1 January 1900
GMT, such that the time 1 is 12:00:01 am on 1 January 1900 GMT; this
base will serve until the year 2036.  As a further example, the most
recent leap year as of this writing began from the time 2,398,291,200
which corresponds to 0000 1 Jan 1976 GMT.

ISO Plain Language

On this page
PROBLEMSome hosts lacked a date and time clock, and human or machine errors could make their clocks wrong.
MECHANISMA client connects to socket 37 without using ICP; the server sends a 32-bit time value and closes the connection.
THE SERVICEThe RFC describes an implemented method for hosts to poll independent sites and compare or correct their time.

§1Why a Time Server Was Proposed

The RFC says not all systems have a date and time clock and that clocks can be wrong because of human or machine error. A host can poll several independent time servers to confirm or correct its idea of the time.

The memo describes the protocol as implemented on ITS hosts.

A host without a reliable clock can ask other hosts for the time. Comparing answers from several independent sites can help confirm its clock.

§2Connecting to the Server

The server listens on socket 37, written as 45 octal. The user connects to that socket without the usual Initial Connection Protocol, receives the time as a 32-bit binary number, and closes the connection; the server also closes it.

If the server cannot determine its time, it should refuse the connection or close without sending data.

The client connects directly to the time socket and reads one value. The server then closes the connection, or closes without data if it cannot determine the time.

§3Representing the Time

The value is the number of seconds since midnight on 1 January 1900 GMT. The RFC says this base serves until the year 2036.

The memo gives the beginning of 1 January 1976 GMT as an example value of 2,398,291,200.

The returned number counts seconds from a fixed starting point: midnight GMT on 1 January 1900. The RFC states that the 32-bit value serves until 2036.