EOF - 通用互联网时间源
理论上,通过网络设置计算机时钟非常简单:只需向时间服务器发送查询并获取当前时间即可。对于受信任网络上的低精度应用,此过程确实可以正常工作,旧的 UNIX “time” 协议就证明了这一点。然而,对于当今的互联网以及毫秒 (ms) 甚至亚毫秒级的精度,需要考虑诸如身份验证、时间服务器的可靠性和网络延迟等问题。这就是网络时间协议 (NTP) 及其参考实现发挥作用的地方。规范和参考实现由特拉华大学的 David Mills 教授、他的研究生和许多其他志愿者编写。
为了让所有人都可以使用 NTP 通过公共互联网同步计算机时钟,Mills 教授长期以来维护着一份公共时间服务器列表。这些服务器大多由大学或国家标准化组织运营。如今,该列表由互联网系统联盟旗下的 NTP 公共服务项目维护。然而,互联网的增长以及内置 NTP 客户端的小型廉价设备(如电缆或 DSL 路由器)的普及,导致这些公共时间服务器的负载迅速增长。最著名的案例之一涉及一系列此类设备中的严重固件问题,导致超过 150Mbps 的 NTP 流量涌向威斯康星大学的 NTP 服务器。
在阅读了一位时间服务器运营商要求从公共时间服务器列表中删除的讨论后,我开始思考是否有一种更好的方法来解决整个问题——与其让成千上万的客户端针对单个时间服务器,不如将负载分配到网络中许多不同的时间服务器上。因此,我在 2003 年 1 月创建了最初的 time.fortytwo.ch DNS 轮询。该项目迅速吸引了许多感兴趣的志愿者,并受到了 Mills 教授及其团队的好评。它很快发展成为 pool.ntp.org 项目,具有更正式的地位。
在接下来的两年里,由于所有在各种网络论坛、HOWTO 文档等中提及该项目的人们,该项目继续发展壮大。如今,该项目由 300 多台服务器组成,为数万客户端提供服务,这只是一个粗略的估计。此外,pool.ntp.org 现在是包括 Debian GNU/Linux、NetBSD 和 Gentoo Linux 在内的多个操作系统发行版中的默认时间服务器。
到目前为止,服务器的增长或多或少能够跟上项目用户群的增长。然而,未来仍然充满挑战,项目讨论邮件列表中的讨论表明,该项目需要处理在为尽可能多的客户端提供便捷服务与确保参与项目的时间服务器的良好质量之间固有的冲突。除此之外,近期和中期未来的巨大挑战是
IPv6 集成。
更多自动化——目前,我主要手动处理服务器的添加和删除。
更好、更适合新手的 Web 文档。
当然,我们总是需要更多的服务器。
最重要的是,我们需要处理滥用客户端。在一个例子中,六个最糟糕的客户端造成了一台时间服务器上 25% 的流量。
尽管前三项在技术上并不困难,并且随着本文的发表,“获取更多服务器”计划应该会向前迈出一大步,但我们目前还没有一个好的计划来教育数以百计的配置欠佳的客户端用户。由于他们的数量众多,他们对项目来说是一个严重的问题。与此同时,每个客户端的带宽足够小,以至于大型 ISP 的滥用处理部门不准备以任何方式提供帮助。
从中长期来看,我们将需要面对 DNS 轮询问题,因为目前实施的 DNS 轮询不是一个好的解决方案,无法在数百台服务器和数十万甚至更多客户端的规模上实现负载均衡。广泛部署 IP 组播以及 ntpd 中现有的组播支持将是解决此问题的一个好方法,但显然 NTP 和 pool.ntp.org 团队无法自行部署。另一种可能的解决方案是让 ntpd 守护程序了解 pool.ntp.org 项目,并以某种通用方式,类似于此类数据库,让守护程序配置自身以使用此类资源。
最后,就我个人而言,我可以诚实地说,启动这个项目并看到它成长很有趣,但我现在意识到需要有新的、有新想法的人来接替这里的工作。事实上,在我写这篇文章时,我正在与几个人讨论该项目的未来,我确信一位新的“教父”的参与将对该项目大有裨益,因为新的想法将被新的团队审视和实施。
本文资源: /article/8454。
Adrian von Bidder 于 2004 年毕业于瑞士苏黎世联邦理工学院,获得计算机科学学位。他业余时间运营 pool.ntp.org 项目。他的日常工作是在瑞士韦廷根的 Onaras AG 开发 SEPP 电子邮件加密网关。可以通过 avbidder@fortytwo.ch 联系他。