先来了解一下 NTP 的工作原理:
Client C 和 Server S 通过网络相连,需要通过NTP实现 C 与 S 系统时钟的自动同步。
假设 C 的时钟设定为10:00:00am,S 的时钟设定为11:00:00am。
NTP报文 在 C 和 S 之间单向传输所需要的时间为1秒。
系统时钟同步的工作过程如下:
C 发送一个 NTP报文 给 S,该报文带有它离开 C 时的时间戳,该时间戳为10:00:00am(T1)。
当此 NTP报文 到达 S 时,S 加上自己的时间戳,该时间戳为 11:00:01am(T2)。
当此 NTP报文 离开 S 时,S 再加上自己的时间戳,该时间戳为 11:00:02am(T3)。
当 C 接收到该响应报文时,C 的时间为10:10:03am(T4)。
至此,C 已经拥有足够的信息来计算两个重要的参数:
NTP报文 的往返时延 Delay = (T4 - T1) - (T3 - T2) = 2S。
C 相对 S 的时间差 offset = ((T2 - T1) + (T3 - T4) / 2 = 1h。
这样,C 就能够根据这些信息来设定自己的时钟,使之与 S 的时钟同步。
网友评论