跳到主要内容

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) 算法.