DCNET Internet Clock Service
A DCNET service for clock synchronization and network-delay measurements.
Mills, D.L., "DCNET Internet Clock Service", RFC 778, DOI 10.17487/RFC0778, April 1981, <https://www.rfc-editor.org/info/rfc778>.
@misc{rfc778,
series = {Request for Comments},
number = 778,
howpublished = {RFC 778},
publisher = {RFC Editor},
doi = {10.17487/RFC0778},
url = {https://www.rfc-editor.org/info/rfc778},
author = {D.L. Mills},
title = {{DCNET Internet Clock Service}},
pagetotal = 4,
year = 1981,
month = apr,
} RFC text
Contents
RFC 778
DCNET Internet Clock Service
D.L. Mills, COMSAT Laboratories
18 April 1981
Introduction
Following is a description of the Internet Clock
Service (ICS) provided by all DCNET hosts. The service,
intended primarily for clock synchronization and one-way
delay measurements with cooperating internet hosts, is
provided using the Timestamp and Timestamp Reply messages of
the proposed Internet Control Message Protocol (ICMP). In
addition, in order to maintain compatability with present
systems, this service will be provided for a limited time
using the Echo and Echo Reply messages of the
Gateway-Gateway Protocol (GGP).
It should be understood that ICMP and GGP datagrams are
normally considered tightly bound to the Internet Protocol
(IP) itself and not directly accessable to the user on a
TOPS-20 system, for example. These datagrams are treated
somewhat differently from user datagrams in gateways and
DCNET hosts in that certain internal queueing mechanisms are
bypassed. Thus, they can be a useful tool in providing the
most accurate and stable time reference. The prime
motivation for this note is to promote the development of
this service in other internet hosts and gateways so that
the feasibility for its use thoughout the community can be
assessed.
ICS Datagrams and Timestamps
At present, the ICS is provided using either ICMP or
GGP datagrams. The only difference between these is that
ICMP uses protocol number 1 and GGP uses protocol number 3.
In the following these will be referred to interchangably as
ICS datagrams. ICS datagrams include an internet header
followed by an ICS header in the following format:
DCNET Internet Clock Service PAGE 2
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originate Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receive Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transmit Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ICS Datagram Format
The originator fills in all three timestamp fields just
before the datagram is forwarded to the net. Each of these
fields contain the local time at origination. Although the
last two are redundant, they allow roundtrip delay
measurements to be made using remote hosts without
timestamping facilities. The "Type" field can be either 8
(GGP Echo) or 13 (ICMP Timestamp). The "Code" field should
be zero. The "Sequence" field can contain either zero or an
optional sequence number provided by the user. The length
of the datagram is thus 36 octets inclusive of the 20-octet
internet header and exclusive of the local-network leader.
The host or gateway receiving an ICS datagram fills in
the "Receive Timestamp" field just as the datagram is
received from the net and the "Transmit Timestamp" just as
it is forwarded back to the sender. It also sets the "Type"
field to 0 (GGP Echo Reply), if the original value was 8, or
14 (ICMP Timestamp Reply), if it was 13. The remaining
fields are unchanged.
The timestamp values are in milliseconds from midnight
UT and are stored right-justified in the 32-bit fields shown
above. Ordinarily, all time calculations are performed
modulo-24 hours in milliseconds. This provides a convenient
match to those operating systems which maintain a system
clock in ticks past midnight. The specified timestamp unit
of milliseconds is consistent with the accuracy of existing
radio clocks and the errors expected in the timestamping
process itself.
Delay Measurements
Delay measurements can be made with any DCNET host by
simply sending an ICS datagram in the above format to it and
processing the reply. Let t1, t2 and t3 represent the three
timestamp fields of the reply in order and t4 the time of
arrival at the original sender. Then the delays, exclusive
of internal processing within the DCNET host, are simply
(t2 - t1) to the DCNET host, (t4 - t3) for the return and
DCNET Internet Clock Service PAGE 3
(t2 - t1) + (t4 - t3) for the roundtrip. Note that, in the
case of the roundtrip, the clock offsets between the sending
host and DCNET host cancel.
Although ICS datagrams are returned by all DCNET hosts
regardless of other connections that may be in use by that
host at any given time, the most useful host will probably
be the COMSAT-WWV virtual host at internet address
[29,0,9,2], which is also the internet echo virtual host
formerly called COMSAT-ECH. This virtual host is resident
in the COMSAT-GAT physical host at internet address
[29,0,1,2], which is connected to the ARPANET via the COMSAT
Gateway, Clarksburg SIMP and a 4800-bps line to IMP 71 at
BBN. The roundtrip delay via this path between the
COMSAT-GAT host and the BBN Gateway is typically 550
milliseconds as the ICS datagram flies.
As in the case of all DCNET hosts, if the COMSAT-WWV
virtual host is down (in this case possible only if the
Spectracom radio clock is down or misbehaving) a "host not
reachable" GGP datagram is returned. In unusual
circumstances a "net not reachable" or "source quench" GGP
datagram could be returned. Note that the references to
"GGP" here will be read "ICMP" at some appropriate future
time.
Local Offset Corrections
All DCNET timestamps are referenced to a designated
virtual host called COMSAT-WWV (what else?) with internet
address [29,0,9,2]. This host is equipped with a Spectracom
radio clock which normally provides WWVB time and date to
within a millisecond. The clock synchronization mechanism
provides offset and drift corrections for other hosts
relative to this host; however, offsets up to an appreciable
fraction of a second routinely occur due to the difficulty
of tracking with power-line clocks in some machines. A
table of the current offsets can be obtained using the
following procedure.
1. Connect to COMSAT-GAT host at internet address
[29,0,1,2] using TELNET and local echo.
2. Send the command SET HOST HOST. A table with one line
per DCNET host should be returned. Note the entry under
the "Offset" column for the WWV host. This contains the
offset in milliseconds that should be added to all
timestamps generated by either the COMSAT-GAT or
COMSAT-WWV hosts to yield the correct time as broadcast
by WWVB.
3. Send the command SET WWV SHOW. A summary of datagram
traffic is returned along with an entry labelled "NBS
DCNET Internet Clock Service PAGE 4
time." The string following this is the last reply
received from the Spectracom unit in the format:
<code> DDD HH:MM:SS TZ=00
where <code> is normally <SP> in case the WWVB signal is
being received correctly or ? in case it is not. The
DDD represents the day of the year and HH:MM:SS the time
past UT midnight. The two digits following TZ=
represent the time zone, here 00 for UT.
4. Close the connection (please!).
REFERENCES
[1] ICMP
Postel, J., "Internet Control Message Protocol", RFC 777,
USC/Information Sciences Institute, April 1981.
[2] GGP
Strazisar, V., "How to Build a Gateway", IEN 109, Bolt
Beranek and Newman, August 1979.
DCNET Internet Clock Service PAGE 5
Following is a specification of the ICS header in PDP11
code:
;
; GGP/ICMP Header
;
. = 0
GH.TYP: .BLKB 1 ;Message type
GC.RPY = 0 ;Echo reply
GC.UPD = 1 ;Routing update
GC.ACK = 2 ;Positive acknowledgment
GC.DNR = 3 ;Destination unreachable
GC.SQN = 4 ;Source quench
GC.RDR = 5 ;Redirect
GC.ECH = 10 ;Echo
GC.STA = 11 ;Net interface status
GC.NAK = 12 ;Negative acknowledgment
GC.TIM = 15 ;Timestamp
GC.TRP = 16 ;Timestamp Reply
GH.COD: .BLKB 1 ;Message code
GH.SEQ: .BLKW 1 ;Sequence number
GH.HDR = . ;Beginning of original
;internet header
GH.ORG: .BLKW 2 ;Originating timestamp
GH.REC: .BLKW 2 ;Received timestamp
GH.XMT: .BLKW 2 ;Transmitted timestamp
GH.LEN = . ;End of timestamp header
Note that all PDP11 word fields (.BLKW above) are
"byte-swapped," that is, the order of byte transmission is
the high-order byte followed by the low-order byte of the
PDP11 word.
ISO Plain Language
On this page
§1The DCNET Clock Service
The Internet Clock Service (ICS) was provided by DCNET hosts for clock synchronization and one-way delay measurements with cooperating Internet hosts. It used Timestamp and Timestamp Reply messages from the proposed ICMP, and also GGP Echo messages for a limited compatibility period.
These datagrams were treated differently from ordinary user datagrams and bypassed certain internal queues in gateways and hosts. The RFC presents the service as a way to encourage similar support elsewhere so its usefulness could be assessed.
DCNET offered special messages for hosts to compare time and estimate how long data takes to travel. These messages bypassed some normal queues.
§2Timestamps and Replies
An ICS datagram contains an Internet header and an ICS header with type, code, sequence, and three timestamps. The sender fills all three timestamp fields before sending. The receiver records the arrival time and the time it forwards the reply, changes the type to the relevant reply type, and leaves the other fields unchanged.
Timestamps are milliseconds from midnight UT in 32-bit fields, with calculations ordinarily made modulo a day. The RFC gives a total datagram length of 36 octets, including the 20-octet Internet header and excluding the local-network leader.
The message records when it started, when the other host received it, and when that host sent it back. The sender can compare these times with the reply's arrival.
§3Measuring Delay and Correcting Clocks
The sender labels the reply timestamps t1, t2, and t3, and records its arrival time as t4. The delay to the DCNET host is t2 minus t1; the return delay is t4 minus t3. Their sum gives the round-trip delay excluding internal processing at the DCNET host, and clock offsets cancel in that round-trip calculation.
The RFC identifies COMSAT-WWV as the designated time reference, using a Spectracom radio clock receiving WWVB time. It describes commands on COMSAT-GAT for retrieving current host offsets and the radio-clock status.
By comparing send, receive, and return times, a host can estimate each leg of a trip. The designated DCNET clock also supplies offsets for correcting other hosts' readings.