Overview of ATZ Time Protocols

This page contains information on the different Time Protocols Atomic Time Zone comes equiped with.

Atomic Time Zone is the only Software in the world that supports all 4 Major Time Protocols.

Daytime Protocol (RFC-867)

Daytime Protocol was developed in 1982/3 by John Postel. The protocol is widely used by computers running MS-DOS and similar operating systems. The server listens on port 13, and responds to requests in either tcp/ip or udp/ip formats. The standard does not specify an exact format for the Daytime Protocol, but requires that the time is sent using standard ASCII characters. Atomic Time Zone is capable of using the 2 most widely used DayTime Protocol formats. The first is a simple date/time stamp, and the second is a more complex version developed by the NIST and outlined below. The below version of the Daytime Protocol was developed by NIST and called Automated Computer Time Service (ACTS), as shown below:

JJJJJ YR-MO-DA HH:MM:SS TT L H msADV UTC(NIST) OTM

where:

JJJJJ is the Modified Julian Date (MJD). The MJD is the last five digits of the Julian Date, which is simply a count of the number of days since January 1, 4713 B.C. To get the Julian Date, add 2.4 million to the MJD.

YR-MO-DA is the date. It shows the last two digits of the year, the month, and the current day of month.

HH:MM:SS is the time in hours, minutes, and seconds. The time is always sent as Coordinated Universal Time (UTC). An offset needs to be applied to UTC to obtain local time. For example, Mountain Time in the U. S. is 7 hours behind UTC during Standard Time, and 6 hours behind UTC during Daylight Saving Time.

TT is a two digit code (00 to 99) that indicates whether the United States is on Standard Time (ST) or Daylight Saving Time (DST). It also indicates when ST or DST is approaching. This code is set to 00 when ST is in effect, or to 50 when DST is in effect. During the month in which the time change actually occurs, this number will decrement every day until the change occurs. For example, during the month of October, the U.S. changes from DST to ST. On October 1, the number will change from 50 to the actual number of days until the time change. It will decrement by 1 every day until the change occurs at 2 a.m. local time when the value is 1. Likewise, the spring change is at 2 a.m. local time when the value reaches 51.

L is a one-digit code that indicates whether a leap second will be added or subtracted at midnight on the last day of the current month. If the code is 0, no leap second will occur this month. If the code is 1, a positive leap second will be added at the end of the month. This means that the last minute of the month will contain 61 seconds instead of 60. If the code is 2, a second will be deleted on the last day of the month. Leap seconds occur at a rate of about one per year. They are used to correct for irregularity in the earth's rotation. The correction is made just before midnight UTC (not local time).

H is a health digit that indicates the health of the server. If H=0, the server is healthly. If H=1, then the server is operating properly but its time may be in error by up to 5 seconds. This state should change to fully healthy within 10 minutes. If H=2, then the server is operating properly but its time is known to be wrong by more than 5 seconds. If H=4, then a hardware or software failure has occurred and the amount of the time error is unknown.

msADV displays the number of milliseconds that NIST advances the time code to partially compensate for network delays. The advance is currently set to 50.0 milliseconds.

The label UTC(NIST) or UTC(ATZS) is contained in every time code. It indicates that you are receiving Coordinated Universal Time (UTC) from the National Institute of Standards and Technology (NIST) or via an Atomic Time Zone Server.

OTM (on-time marker) is an asterisk (*). The time values sent by the time code refer to the arrival time of the OTM. In other words, if the time code says it is 12:45:45, this means it is 12:45:45 when the OTM arrives.

Time Protocol (RFC-868)

  The Time Protocol was also developed in 1982/3, but by both John Postel and K. Harrenstien. The late John Postel is considered one of the founders of the internet.
This simple protocol returns a 32-bit unsigned binary number that represents the time in UTC seconds since January 1, 1900. The server listens for Time Protocol requests on port 37, and responds in either tcp/ip or udp/ip formats.

The 32-bit binary format can represent times over a span of about 136 years with a resolution of 1 second. There is no provision for increasing the resolution or increasing the range of years.

The strength of the time protocol is its simplicity. Since many computers keep time internally as the number of seconds since January 1, 1970 (or another date), converting the received time to the necessary format is often a simple matter of binary arithmetic. However, the format does not allow any additional information to be transmitted, such as advance notification of leap seconds or daylight saving time, or information about the health of the server.

Simple Network Time Protocol (RFC-2030)

Developed by David Mills of the University of Deleware and published in 1996. The SNTP protocol is the latest major time protocol released, and expands upon David Mills earlier Network Time Protocols. The "Simple" was added to Network Time Protocol because earlier versions had caused confusion, and because SNTP was expanded to include IPv6 internet address formatting. SNTP is version 4 of the (NTP) protocol.

The most advanced, and therefore most accurate of all the time protocols, SNTP is generally in use by all major Internet Time Servers, and also available from Atomic Time Zone Server.

SNTP contains exactly 48 Bytes of receipt data, and 48 Bytes of Transmit Data. This data contains several 64 Bit Time Stamps which contain time accurate to the millisecond.

SNTP and NTP Servers operate on port 123, and only respond to valid NTP Time requests.

UnixTime and UnixTime Protocol

Unix is an operating system developed in 1969 by Ken Thompson. UnixTime counts "epochs" or seconds since the Year 1970. UnixTime recently hit it's billionth birthday.

Because Unix is widely used in many environments, UnixTime was developed into a loose simple time protocol in the late 80's and early 90's. No formal UnixTime protocol has ever been officially published as an internet protocol - until now.

UnixTime operates on the same UnixTime port - 519. Once a connection is requested on this port, exactly like in Time Protocol, the UnixTime value is sent back by either tcp/ip or udp/ip. When UDP/IP is used, a small packet of data must be received by the server in order to respond in the exact same fashion as Time Protocol. The UnixTime is then sent as an unsigned "unformatted" integer on the same port.

Note: While the America Online Service does not provide Atomically correct time, its services do use the "UnixTime" time stamp format widely in it's messaging products in particular.