一、概念

  1. NTP(Network Time Protocol),互联网时间协议。
  2.  UTC(Coordinated Universal Time),协调通用时间。根据原子振荡周期所计算的物理时钟,这种计算方式对于时间的计算误差时很小的。
  3. GMT(Greenwich Mean Time),表示的是格林尼治时间,是根据地球的自转周期计算的标准时间,由于各种不稳定因素的影响,计时不是很理想。
  4. 软件时钟:表示的是操作系统从1970/01/01开始计算的秒数。
  5. 硬件时钟:主机硬件上面的时钟,主要是BIOS内部时间的记录了。


二、原理

  1. NTP是为实现高精确度的时间同步,而设计的网络时钟同步协议,基于IP和UDP,相关标准在RFC1305中有定义。
  2. NTP客户端按照规定的时间间隔内向时钟源发出探测报文,一次发出8份报文,报文中记录了进行时间同步需要的所有信息。如果当前客户端和时钟源之间的时差和同步距离在容忍之内,则进行平滑同步(不允许时间跳变),若超出容忍值,则认为该时钟源不可信,返回400标识,不同步。
  3. NTP工作室可以构建树形结构进行时间同步。

ntp yes_ntp yes

 
NTP共有四种工作模式:client/server、对等体模式、广播模式、组播模式。

 

NTP数据报文

ntp yes_ntp yes_02

这里仅对常用的模式简单介绍一下:

  • VN:NTP版本号。
  • Mode:NTP工作模式。
  • Stratum:时钟层数,表示时钟精确度。取值1-15,精确度递减。
  • Poll:发送探测报文的最小间隔时间。
  • Precision:时钟精度,由多个计算量经一系列算法计算得到(时差、网络拥塞等)。
  • Root Delay:到主参考时钟的总往返时间。
  • Root Dispersion:本地时钟相对于主参考时钟的最大误差。
  • Reference Timestamp:本地时钟最后一次被设定或更新的时间。如果值为0表示本地时钟从未被同步过。
  • Originate Timestamp:NTP报文离开本地NTP客户端的时间戳(T1)。
  • Receive Timestamp:NTP报文到达对端时钟源(server)的本地时间(T2)。
  • Transmit Timestamp:应答报文离开对端时钟源(server)的本地时间(T3)。

 

上述几个报文字段有如下关系:先假设应答报文到达本地的时间为T4,则,

  • 报文往返时延Delay=(T4-T1)-(T3-T2)
  • 客户端与时钟源的时间差offset=((T2-T1)+(T3-T4))/ 2

我们在分析问题时一般不会直接管制NTP的数据报文,除非要定位系统底层问题。当NTP同步状态异常时,分析控制报文往往会事半功倍。

NTP控制报文

ntp yes_时间同步_03