公众号旧文
全球几十亿网络设备,靠多少台时间服务器在维持?
上一篇文章,我们介绍了互联网如何通过 NTP 协议实现时间同步。
很多读者看后,产生了一个新的疑问:
全球几十亿台设备,每天都在同步时间,那到底需要多少台时间服务器?
实际上互联网时间体系的核心时间源数量,并没有我们想象中那么庞大。
这里面的原因来自 NTP 一个非常经典的设计:层级结构(Stratum)。
一、互联网时间是分层扩散的
NTP 从一开始就不是一个扁平网络。
它的设计更像是一棵不断向外扩展的树。
最顶层叫做:Stratum 0
但需要注意的是:Stratum 0 并不是服务器,而是 时间源设备,例如:
- 原子钟
- GPS / 北斗卫星授时
- 国家时间广播
这些设备提供的是 最原始的标准时间信号。
二、真正的时间服务器从 Stratum 1 开始
Stratum 1 才是互联网中真正的 时间服务器。
它们直接连接 Stratum 0 时间源,例如:
- GPS 天线
- PPS(Pulse Per Second)硬件信号
- 原子钟接口
世界各国都会建设自己的 Stratum-1 服务器,例如:
美国国家标准技术研究所(NIST) 中国科学院国家授时中心(NTSC) 日本信息通信研究机构(NICT)
这些机构维护的是 国家级标准时间服务器。
三、真正的核心服务器非常少
全球直接连接原子钟的 Stratum-1 服务器只有几十到一两百台。
它们构成了互联网时间体系的水源地。
全球几十亿设备的时间,最终都可以追溯到这些核心节点。
四、第二层开始指数级扩散
Stratum-1 服务器并不会直接服务全球设备。
它们的主要任务是向下一层提供时间。
下一层叫做:Stratum 2
这一层通常包括:
- 互联网公司
- 云服务商
- ISP 运营商
- 大学和研究机构
例如常见的公共时间服务器:
time.cloudflare.com time.google.com ntp.aliyun.com ntp.tencent.com
这些服务器会从 Stratum-1 同步时间,然后再向外提供公共服务。
五、NTP 的扩展能力非常惊人
从 Stratum-2 开始,时间服务器数量就会迅速增加。
接下来是:Stratum-3 和 Stratum-4
例如:
企业服务器 数据中心内部时间服务器 路由器 交换机
最终再同步到终端设备:
- 手机
- PC
- IoT 设备
- 云服务器
整个结构大致长这样:
Stratum 0
原子钟 / GPS
↓
Stratum 1
国家级时间服务器(几十台)
↓
Stratum 2
互联网公司 / ISP(几千台)
↓
Stratum 3
企业服务器(几十万)
↓
Stratum 4+
终端设备(几十亿)
也就是说少量高精度时间源,通过层级扩散,最终服务整个互联网。
六、为什么这种结构如此高效?
因为时间同步的数据量极小。
一次 NTP 请求的数据包只有几十字节。
这意味着一台服务器可以轻松服务 几十万甚至更多客户端。
再通过层级分发,整个系统就可以无限扩展。
这种设计思想在互联网中非常常见。
例如:
DNS BGP 证书体系
本质都是少量核心节点 + 全球分发网络。
七、很多设备实际上从不访问顶级时间服务器
可能会有人以为自己的电脑在直接连接国家时间服务器。
但实际上,大多数设备访问的都是中间层服务器。
例如:
Windows 默认连接:time.windows.com
Linux 常见配置:pool.ntp.org
手机系统也会连接厂商自己的时间服务器。
这些服务器本身通常只是 Stratum-2 或 Stratum-3。
它们再向更上层同步时间。
八、一个通俗且形象的比喻
如果把互联网时间体系想象成一个供水系统。
原子钟就像 水源地
Stratum-1 像 大型水库
Stratum-2 像 城市供水站
企业服务器像 小区水箱
手机和电脑只是 水龙头
扩展阅读: