Date: 30 AUG 1976 1202-PDT From: POSTEL at USC-ISIC Subject: Time Of Day Socket Number To: KLH at MIT-AI cc: postel Ken: The number is 37 decimal (45 octal). --jon. -------  RMS@MIT-AI 08/15/76 19:35:47 To: KLH at MIT-AI I forgot to say in the time algorithm that a sublist is acceptible only if it contains at least half the hosts that responded. If there is no sublist, all the hosts get mailed messages. The intent if the messages is to get people on the hosts to intervene.  RMS@MIT-AI 08/15/76 16:48:11 To: KLH at MIT-AI I would like to have the system's time itself set according to the other sites' times. I have worked out an algorithm that I think does the right things in all cases: 1) contact all the sites on the list. 2) make a list of all the sites that gave answers, and what they gave, including the local host. Contact all of them in parallel to save real time. 3) sort that list numerically by time returned. 4) find the longest subsequence which has the property that its beginning and end are within 5 minutes. "Length" can actually be weighted, with more related hosts counting for more. 5) compute the average time of the hosts in the sublist 6) Send mail to the appropriate name at all hosts not in that sublist, telling them the names of the hosts in the sublist and the amount of time they're off from the sublist average. 7) If the local host isn't in the sublist, set its time to the sublist average. 8) this program should be run whenever the system starts up, and everything else should wait for its completion. Thus, it should be done by TARAKA before anything else. KLH@MIT-AI 08/15/76 03:32:42 To: RMS at MIT-AI CC: [KSC;TIMSRV INFO] at MIT-AI P.S. to message about time server etc. The following routines are fairly modular: NETIM - in TIMES >, is a non-interrupt routine that gets the "network time word" given a site # to connect to. TIMGTN - in TIMRTS >, is a routine that returns current local time in network-time format. TIMCAS/TIMCAD - in TIMRTS >, will convert network-time format into standard DSK-style format. Since hacking time stuff is so painful, however straightforward, I thought I would point those out, particularly TIMCAS. The network-time format is # seconds since 1/1/1900, GMT - this makes instant comparisions easy from any point in network, and is simple enough to encode. It is much more of a win than I thought it would be; TIMES^K scans very fast. The algorithm mailer uses is to poll all sites known to have Time Servers, and proceed with its local time if it agrees with more sites than it disagrees, or if all sites are down. This implies that finding 1 match and 1 mismatch will cause mailer to hang up and wait, but 2 matches and 1 mismatch will be taken as confirmation of local time. Criteria for a match is that the absolute difference must not be more than 15 minutes, which is extremely liberal I think.