什么是 NTP
NTP 全称为 Network Time Protocol ,中文翻译为网络时间协议,1985 年就已经被提出,旨在缩短互联网上所有计算机设备与 UTC 的时间差。通过 Marzullo 算法,他可以选择准确的时间服务器,并且可以适当减轻由于网络延迟所带来的误差。
NTP 客户端将定期轮询不同网络上的三个或更多服务器。为同步其时钟,客户端必须计算其时间偏移量和来回通信延迟,随后,从最好的三个剩余候选中导出估算的时间偏移。然后调整时钟频率以逐渐减小偏移
更多简介请参考:网络时间协议 - 维基百科,自由的百科全书
什么是 NTP 服务器池
NTP 服务器池是一个分布式的公益性项目,简单来说,他就是各个地区可用的 NTP 服务器的一个集合。
全世界各地的志愿者可以提交自己的 NTP 服务器到这个池中,在用户需要进行 NTP 查询的时候,通过 DNS 的按区域解析,用户可以被分配到最近的服务器上,这样可以减少网络延迟带来的误差,准确的提供时间。
官方网站是:pool.ntp.org: the internet cluster of ntp servers
目前国内 NTP 服务器池的矛盾
求
在很多 Linux 发行版中,默认时间服务器均采用的是这个服务器池,只要你安装了 ntpd 这个包,默认的服务器便是这个服务器池。例如,
Debian 系列: [0-3].debian.pool.ntp.org
Archlinux 系列: [0-3].arch.pool.ntp.org
Ubuntu 系列: [0-3].ubuntu.pool.ntp.org
当不同的国家用户使用这些地址时,会自动分配去所在国家的服务器池。因此,在我国,上面的几台服务器均是会解析到 [0-3].cn.pool.ntp.org
此外,在国内网上许多篇关于 NTP 的教程当中,推荐的 NTP 时间服务器亦是 cn.pool.ntp.org
根据管理员 Ask 2017.01.04 在社区中所提到的关于中国区的 NTP 服务器池状况时 Adding servers to the China zone ,他表示目前中国区的请求量大约在每秒 100,000 个请求,数据可能有所不同,但也是这个数量级。
可以看出目前的 NTP 服务器需求是相当巨大的。
供
你可以猜一下 12 月末的时候国内有多少台服务器在处理这么庞大的请求,答案是 1 甚至是 0。
讲道理一开始我也不能接受我们这么一个相对「发达」的国家为什么这些网络基础设施建设那么差,我试图去找找国家授时中心有没有 NTP 服务器,但我没找到,也没找到其他政府官方的服务器。
自从管理员 Ask 请求其他区域的服务器加入中国区进行分流之后,中国区的可用服务器得到了一个飙升。目前根据网站上面我们有 47 台服务器可用,但是,真正意义上国内的服务器其实并没有几台。你可以在 ipip.net 中看看域名的解析结果是那些地区的,根据我所见,解析出来的四个 IP 基本上没有国内的 IP ,相反而是瑞士、英国等等的欧洲国家,不过还是感谢东南大学有提供 NTP 服务器进入服务器池中。
一点呼吁
如果你有位于国内的、长期可以使用的、有固定 IP 的服务器,你可以考虑参与进来这个项目。
无论你的带宽多少,只要在服务器池中设置了服务器带宽,DNS 会对服务器的权重进行调整,使之尽可能的不超过你所设定的带宽。因此只要你有闲置的带宽,就可以参与进来,而不用担心影响正常的业务。
下图是我两台服务器的监控,其中展示了相关的流量状况。
如果你没有适合条件的服务器,但你又认识相关热心的人,那你就可以推荐他去参加进来这个项目。
志愿者的成本与池的大小成反比,因此,只有更多的人参加进来,每个人的成本也将相应降低。最终也将可以产生一个良性循环。