Cloudflare发布了他们的免费时间服务time.cloudflare.com,同时支持NTP(网络时间协议)和新兴的 NTS(网络时间安全)。NTP 是一种用于在远程计算机系统之间同步时间的互联网协议。Cloudflare 的新服务通过其遍布全球 180 多个地点的任播网络提供 NTP 服务。
要开始使用 Cloudflare 的 NTP 服务,你需要将你的NTP客户端重新指向time.cloudflare.com。虽然大多数 NTP 实现正在添加对 NTS 的支持,但 Cloudflare 的 NTP 服务器已经支持 NTS 了。如果你有一个 NTS 客户端,你可以把它指向time.cloudflare.com:1234。目前,Cloudflare 已经可以与NTPsec互操作,其中包括对 NTS 的试验性支持。注意,Cloudflare 要求在其 NTS 服务中使用 TLS v1.3。
NTP 被设计用来同步通过不可靠的可变延迟网络通信的远程计算机系统之间的时间。NTP 的工作原理是让客户端向 NTP 服务器发送一个查询包,该服务器使用当前时钟时间进行响应。然后,请求计算机计算其时钟与远程 NTP 服务器时钟之间的差值。这就允许系统补偿网络延迟。NTP 客户端查询多个服务器,并使用算法选择这种偏差的最佳估计。
使用 NTP 服务器同步时间
波士顿大学研究生研究助理Aanchal Malhotra表示,1985 年 NTP 创建时,该服务有两个主要设计目标:健壮性和负载分配。该团队希望系统足够健壮,能够处理网络错误和其他故障。为了实现这一点,该系统的设计使得客户端可以从不同网络路径上的多个对等点收集样本,然后对它们进行平均,从而提高测量的准确性。
关于第二个目标负载分配,Malhotra 指出:
虽然每个客户端都希望与时间服务器进行通信,而时间服务器直接连接到原子钟、GPS 等高精度的计时设备上,从而拥有更准确的时间,但这些设备的容量只有这么多。
为了减轻网络的负载,该服务采用了分层设计。层次结构的顶部(Stratum 0)是连接到非 NTP 时间源的服务器,它们将时间分配给其他服务器。这些服务器依次将时间分配给位于较低层次的更多服务器。大多数系统连到第二层或第三层。
说明 NTP 层次结构的架构图
Cloudflare 的服务与 Stratum 1 时间服务提供商同步,然后将其分发给它们的消费者。这类似于其他公共 NTP 提供者的工作方式。正如 Malhotra 所指出的,Cloudflare“打算解决现有公共时间服务的局限性,特别是通过提高可用性、健壮性和安全性。”
为了解决可用性和健壮性问题,Cloudflare 利用其全球网络中的 180 多个位置和任播网络将数据包路由到最近的服务器。这反过来应该减少抖动(网络上的延迟差异)和影响包传输的潜在不对称。Malhotra 继续指出,“时间同步协议不准确的最大原因是网络不对称,导致客户端和服务器之间的往返时间不同。”
Cloudflare 的 NTP 和 NTS 服务现在已经可以使用。然而,NTS 仍然是一个新兴的协议,因此有兴趣的读者可以联系 time-services@cloudflare.com,加入 Cloudflare 的邮件列表,了解关于 NTS 客户端实现的更新。有关配置的更多细节可以在开发文档中找到。
原文链接:
Cloudflare Releases Free Time Service That Supports NTP and NTS
评论