Skip to content

NTP

Network Time Protocol,网络时间协议,用于客户端和服务端的时间同步

  1. 客户端首先向服务端发送一个NTP请求报文,其中包含了该报文离开客户端的时间戳t1;
  2. NTP请求报文到达NTP服务器,此时NTP服务器的时刻为t2。当服务端接收到该报文时,NTP服务器处理之后,于t3时刻发出NTP应答报文。该应答报文中携带报文离开NTP客户端时的时间戳t1、到达NTP服务器时的时间戳t2、离开NTP服务器时的时间戳t3;
  3. 客户端在接收到响应报文时,记录报文返回的时间戳t4。

则NTP报文在客户端和服务端之间往返的时延为delay = (t4 - t1) - (t3 - t2)

然后设客户端和服务端的时间差为offset就有方程组

  • t2 = t1 + offset + delay / 2
  • t4 = t3 - offset + delay / 2

可以解出来时间差为`offset = ((t2 - t1) + (t3 - t4)) / 2