NTP 概述

NTP(Network Time Protocol,网络时间协议)是由 RFC 1305 定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP 基于 UDP 报文进行传输,使用的 UDP 端口号为 123。

使用 NTP 的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于运行 NTP 的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。

NTP 的基本工作原理如图所示:

Device A 和 Device B 通过网络相连,它们都有自己独立的系统时钟,需要通过 NTP 实现各自系统时钟的自动同步。

为便于理解,作如下假设:

  1. 在 Device A 和 Device B 的系统时钟同步之前,Device A 的时钟设定为 10:00:00 am,Device B 的时钟设定为 11:00:00 am。
  2. Device B 作为 NTP 时间服务器,即Device A 将使自己的时钟与 Device B 的时钟同步。
  3. NTP 报文在 Device A 和 Device B 之间单向传输所需要的时间为 1 秒。

系统时钟同步的工作过程如下:

  1. Device A 发送一个 NTP 报文给 Device B,该报文带有它离开 Device A 时的时间戳,该时间戳为 10:00:00am(T1)。
  2. 当此 NTP 报文到达 Device B 时,Device B 加上自己的时间戳,该时间戳为 11:00:01am(T2)。
  3. 当此 NTP 报文离开 Device B 时,Device B 再加上自己的时间戳,该时间戳为 11:00:02am(T3)。
  4. 当 Device A 接收到该响应报文时,Device A 的本地时间为 10:00:03am(T4)。

至此,Device A 已经拥有足够的信息来计算两个重要的参数:

  1. NTP 报文的往返时延 Delay=(T4 – T1)-(T3 – T2)= 2 秒。
  2. Device A 相对 Device B 的时间差 offset=((T2 – T1)+(T3 – T4))/ 2 = 1 小时。

这样,Device A 就能够根据这些信息来设定自己的时钟,使之与 Device B 的时钟同步。

设备可以采用多种 NTP 工作模式进行时间同步:

  1. 客户端/服务器模式
  2. 对等体模式

对于这两种关系比较好的描述:An NTP server relationship is when a client gets time from the server. An NTP peering relationship is when two devices can get time from each other depending on which device has the lower stratum(层数、级别).

No related posts.

  1. 没有评论

  1. 没有通告