Time Protocol
A service on port 37 that returns the time as a 32-bit count of seconds since 1900.
Postel, J. and K. Harrenstien, "Time Protocol", STD 26, RFC 868, DOI 10.17487/RFC0868, May 1983, <https://www.rfc-editor.org/info/rfc868>.
@misc{rfc868,
series = {Request for Comments},
number = 868,
howpublished = {RFC 868},
publisher = {RFC Editor},
doi = {10.17487/RFC0868},
url = {https://www.rfc-editor.org/info/rfc868},
author = {J. Postel and K. Harrenstien},
title = {{Time Protocol}},
pagetotal = 2,
year = 1983,
month = may,
} RFC text
Network Working Group J. Postel - ISI
Request for Comments: 868 K. Harrenstien - SRI
May 1983
Time Protocol
This RFC specifies a standard for the ARPA Internet community. Hosts on
the ARPA Internet that choose to implement a Time Protocol are expected
to adopt and implement this standard.
This protocol provides a site-independent, machine readable date and
time. The Time service sends back to the originating source the time in
seconds since midnight on January first 1900.
One 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.
This protocol may be used either above the Transmission Control Protocol
(TCP) or above the User Datagram Protocol (UDP).
When used via TCP the time service works as follows:
S: Listen on port 37 (45 octal).
U: Connect to port 37.
S: Send the time as a 32 bit binary number.
U: Receive the time.
U: Close the connection.
S: Close the connection.
The server listens for a connection on port 37. When the connection
is established, 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.
Time Protocol
When used via UDP the time service works as follows:
S: Listen on port 37 (45 octal).
U: Send an empty datagram to port 37.
S: Receive the empty datagram.
S: Send a datagram containing the time as a 32 bit binary number.
U: Receive the time datagram.
The server listens for a datagram on port 37. When a datagram
arrives, the server returns a datagram containing the 32-bit time
value. If the server is unable to determine the time at its site, it
should discard the arriving datagram and make no reply.
The Time
The time is the number of seconds since 00:00 (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.
For example:
the time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT,
2,398,291,200 corresponds to 00:00 1 Jan 1976 GMT,
2,524,521,600 corresponds to 00:00 1 Jan 1980 GMT,
2,629,584,000 corresponds to 00:00 1 May 1983 GMT,
and -1,297,728,000 corresponds to 00:00 17 Nov 1858 GMT.
ISO Plain Language
On this page
§1A Machine-Readable Time Service
The Time Protocol provides a site-independent, machine readable date and time. The Time service sends back to the originating source the time in seconds since midnight on 1 January 1900.
One motivation is that not all systems have a date/time clock, and all are subject to occasional human or machine error. Time servers make 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. The protocol may be used either above the Transmission Control Protocol (TCP) or above the User Datagram Protocol (UDP).
Some computers have no clock, and every clock can drift. This service answers one question, what time is it, with a single number any computer can read.
§2Using TCP and UDP
Over TCP the service works as follows. The server listens on port 37 (45 octal). The user connects to port 37. The server sends the time as a 32-bit binary number, and the user receives it; then the user closes the connection and the server 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.
Over UDP the service works as follows. The server listens on port 37. The user sends an empty datagram to port 37. The server receives it and sends back a datagram containing the time as a 32-bit binary number. If the server is unable to determine the time, it should discard the arriving datagram and make no reply.
Over TCP the server sends the number once and hangs up. Over UDP the client sends an empty message and the server answers with one message carrying the number. A server that does not know the time stays silent.
- Empty datagramSent to port 37.
- 32-bit timeSeconds since 1 January 1900 GMT.
§3The Time Value
The time is the number of seconds since 00:00 (midnight) 1 January 1900 GMT, such that the time 1 is 12:00:01 am on 1 January 1900 GMT. The RFC states that this base will serve until the year 2036.
The RFC's own examples: the time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT; 2,398,291,200 to 00:00 1 Jan 1976 GMT; 2,524,521,600 to 00:00 1 Jan 1980 GMT; and 2,629,584,000 to 00:00 1 May 1983 GMT. The value -1,297,728,000 corresponds to 00:00 17 Nov 1858 GMT.
The number counts every second since the start of 1900. Large numbers mean later times, and the RFC says this counting scheme lasts until 2036.