网络时间协议(network time protocol,简称ntp)是用来在整个网络内发布精确时间的tcp/ip 协议,其本身的传输基于udp。Ntp协议基本原理如下:
上图所示的是ntp 协议基本工作原理,路由器gwa 和gwb 通过网络相连,它们都有自己独立的系统时钟, 要实现各自系统时钟的自动同步,作如下假设:
1 在gwa 和gwb 的系统时钟同步之前, gwa 的时钟设定为10:00:00am,gwb 的时钟设定为11:00:00am。
2 以gwb 为ntp 时间服务器,即gwa 将使自己的时钟与gwb 的时钟同步。
3 数据包在gwa 和gwb 之间单向传输所需要的时间为1 秒。
系统时钟同步的工作过程如下:
1 gwa 发送一个ntp 消息包给gwb,该消息包带有它离开gwa 时的时间戳,该时间戳为10:00:00am(t1)。
2 当此ntp 消息包到达gwb 时,gwb 加上自己的时间戳,该时间戳为11:00:01am(t2)。
3 当此ntp 消息包离开gwb 时,gwb 再加上自己的时间戳,该时间戳为11:00:02am(t3)。
4 当gwa 接收到该响应消息包时,加上一个新的时间戳,该时间戳为10:00:03am(t4)。
至此,gwa 已经拥有足够的信息,来计算两个重要的参数:
5 ntp 消息来回一个周期的时延delay=(t4-t1)-(t3-t2)。
6 gwa 相对gwb 的时间差offset=((t2-t1)+(t3-t4))/2。
这样,gwa 就能够根据这些信息,来设定自己的时钟,使之与gwb 的时钟同步。这只是ntp 工作原理的一个粗略描