T M B

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(层数、级别).

Tags: , , ,

Leave a Reply