NTP 概述
NTP(Network Time Protocol,网络时间协议)是由 RFC 1305 定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP 基于 UDP 报文进行传输,使用的 UDP 端口号为 123。
使用 NTP 的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于运行 NTP 的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。
NTP 的基本工作原理如图所示:
Device A 和 Device B 通过网络相连,它们都有自己独立的系统时钟,需要通过 NTP 实现各自系统时钟的自动同步。
为便于理解,作如下假设:
- 在 Device A 和 Device B 的系统时钟同步之前,Device A 的时钟设定为 10:00:00 am,Device B 的时钟设定为 11:00:00 am。
- 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 的时钟同步。
设备可以采用多种 NTP 工作模式进行时间同步:
- 客户端/服务器模式
- 对等体模式
对于这两种关系比较好的描述: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(层数、级别).




