什么是NTP(网络时间协议)?

NTP,即“网络时间协议”,是一种用于将联网设备的时钟与准确时间同步的协议。它在OSI参考模型的应用层(第7层)运行,由互联网工程任务组(IETF)在“RFC 1305”中定义。

使用NTP同步时间时,NTP客户端会向NTP服务器发送请求。底层传输协议为UDP,服务器端口为UDP 123。NTP服务器返回协调世界时(UTC)。UTC是一种以铯原子钟所维持的国际原子时为基础的时间标准。此外还有其他世界时间基准,例如根据地球自转速度确定的格林尼治标准时间(GMT),但UTC的应用更为广泛。由于UTC与UT1之间可能存在偏差,因此偶尔会在UTC中加入闰秒,使时间与地球自转更准确地保持一致。

NTP服务器在互联网上按层级组织。顶层NTP服务器称为Stratum 1,每降低一个层级,Stratum数值就会增加。NTP服务器通过多个更高层级的服务器同步时钟。Stratum 1服务器从“Stratum 0”获取精确时间;Stratum 0包括GPS和原子钟等高精度时间源。Stratum 0时间源的误差小于1微秒(1/1,000,000秒),并直接连接到Stratum 1服务器。

由于NTP通过网络传输时间数据,因此必须测量通信延迟并进行相应调整。NTP会计算通信往返时间,并据此校正网络延迟。不过,这种方法假设两个方向的延迟对称。如果正向和返回路径的延迟不同,两者差值的一半将计入误差范围。