14. 简单网络时间协议 (SNTP)
简单网络时间协议 (Simple Network Time Protocol, SNTPv4) 是 NTP 的一个子集, 面向不需要完整缓解算法 (mitigation algorithms) 的主服务器和客户端. SNTP 与 NTP 完全互操作, 可以在 NTP 子网中混合部署.
使用场景
SNTP 适用于:
- 只有单个参考时钟 (reference clock) 的主服务器.
- 只有单个上游服务器且没有下游依赖客户端的客户端.
完整 NTP 适用于:
- 具有多个上游服务器的二级服务器.
- 具有多个下游服务器或客户端的服务器.
SNTP 主服务器
SNTP 主服务器实现第 8 节中的线上协议 (on-wire protocol). 除单个参考时钟外, 它没有上游服务器. 收到客户端请求后, 它将系统变量映射到分组字段, 并构造回复分组.
SNTP 客户端
SNTP 客户端只有一个服务器, 且没有依赖它的客户端. 最简单的做法只使用服务器的发送时间戳 (transmit timestamp). 由于额外复杂度很小, 建议实现完整的线上协议.
互操作性
SNTP 和 NTP 的服务器/客户端完全互操作. 主要区别在于: SNTP 不实现缓解算法, 包括选择 (selection), 聚类 (cluster) 和组合 (combine) 算法.