Summary

  • NIST 早期互联网时间服务器每隔 3,000 秒拨打一次 ACTS 电话校时服务,检查自己的钟。
  • 向外回答请求、向内维持正确时间,各有一套工作;电话故障可以让一台还在回包的服务器失去校时来源。

给别人报时,先给家里来个电话

一台计算机忙着告诉全世界现在几点,隔一阵子却要打电话回去,问问自己走得准不准。NIST 的早期互联网时间服务,就有这样一点很居家的气质:出门工作可以,记得联系家里。

Judah Levine 在 1993 年 PTTI 会议论文中介绍了这项服务。第一台服务器位于美国科罗拉多州博尔德,能用 Daytime、Time 和 NTP 三种格式回答请求。用户拿到的是 UTC(NIST),即 National Institute of Standards and Technology 维持的时间标尺。

论文的服务器校时部分写得相当实在:最初,服务器每隔 3,000 秒呼叫一次 Automated Computer Time Service,简称 ACTS。作者报告,这样能把服务器时钟相对 UTC(NIST) 的误差维持在约 0.8 毫秒 RMS。时间消息再经过互联网到达用户,还会受到网络传输的影响。

电话并没有失业,它换了岗位。论文介绍的互联网客户端,让用户取得时间时省去了自己拨打长途电话的步骤;校准这份工,移到了向外提供服务的机器那里。

网线负责回答,电话线负责核对

NIST 在 2002 年 5 月出版的运行报告里,详细交代了截至 2001 年 11 月的安排。每台服务器配有模拟调制解调器和专用电话线路,定期拨号到博尔德的 ACTS。线路只向外拨,来电一概不接。互联网请求则走以太网。

软件也有分工。对外发送时间码的后台进程,与调整本机时钟的进程彼此独立。校时电话通常隔几个小时打一次,每次约 15 秒。两次通话之间,软件根据振荡器模型继续修正时钟。电话很短,通话之间的工作很长。

不同地点还有不同装备。博尔德的服务器另接当地基准每秒一次的脉冲;部分远端服务器用铷频标改善短期稳定性,在暂时打不通电话时维持一段时间。相同的服务入口,后面可以接不同的物理条件。

最荒唐的故障,是沉默把人送到 2037 年

电话线路坏了,服务器可能依旧能在互联网上回答请求,只是联系不上校时来源。报告记录了电话线路故障,也记录了 ACTS 本身出问题的情况。机器还活着,钟的状况却已经变了。

遇到部分故障,服务器通常会在回答中带上异常状态。多数客户端会看这个标志,转向别的服务器;也有软件不看。旧 Time 格式更麻烦,它根本没有传递这种状态的字段。

NIST 试过干脆不回答。报告说,许多客户端竟把“没有回应”解释成了 2037 年的某个时间,随后投诉信就来了。工程师本想让坏钟闭嘴,客户端却替它订好了穿越车票。

这个小插曲把公共服务的难处说透了:提供者能调整自己的机器,还得面对已经装进别人电脑里的行为。故障信息必须让对方真正用得上。

防火柜里,也有互联网时间

截至 2001 年 11 月,报告列出 14 台正式运行的服务器,另有测试设备。NIST 统一管理服务,异地机房的工作人员协助修理硬件,制造商的维护合同承担零件和人工。软件更新先在非公开的测试服务器上试运行。

还有磁带和笔记本。每台机器的磁盘镜像、硬件配置与软件版本记录,被保存在防火柜里。报时可以精确到很小的单位,修机器时仍然得知道:坏掉的那一台,原来究竟是什么配置。

用户在网上取得时间,动作很轻。支撑它的电话、模型、维修安排和恢复资料,一样都得有人照看。互联网有了方便的钟,钟依然有家务要做。