NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。 使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。 对于运行NTP的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。 NTP工作原理 NTP的基本工作原理如图所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设: 在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10:00:00am,Device B的时钟设定为11:00:00am。 Device B作为NTP时间服务器,即Device A将使自己的时钟与Device B的时钟同步。 NTP报文在Device A和Device B之间单向传输所需要的时间为1秒。 系统时钟同步的工作过程如下: Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00am(T1)。 当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。 当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。 当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。 至此,Device A已经拥有足够的信息来计算两个重要的参数: NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2秒。 Device A相对Device B的时间差offset=((T2-T1)+(T3-T4))/2=1小时。 这样,Device A就能够根据这些信息来设定自己的时钟,使之与Device B的时钟同步。 |