NTP原理

NTP原理

2023年6月30日发(作者:)

NTP简介

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

使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。

对于运行NTP的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以喝其他设备互相同步。

NTP工作原理

NTP的基本工作原理如图1-1所示。Device A和Device B通过网络相连,他们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,

作如下假设:

➢ 在Device A和Device B的系统时钟同步之前,DeviceA的时钟设定为10:00:00am,DeviceB的时钟设定为11:00:00am。

➢ 设备B作为NTP时间服务器,即设备A将使自己的时钟与设备B的时钟同步。

➢ NTP报文在设备A和设备B之间单向传输所需要的时间是1秒

NTP原理图 系统时钟同步过程如下:

➢ 设备A发送一个NTP报文给设备B,该报文带有它离开设备A时的时间戳,该时间戳为10:00:00am(T1)。

➢ 当此NTP报文到达设备B时,设备B加上自己的时间戳,该时间戳为11:00:01am(T2)。

➢ 当此NTP报文离开设备B时,设备B再加上自己的时间戳,改时间戳为11:00:02(T3)。

➢ 当设备A接收到该响应报文时,设备A的本地时间为10:00:03am(T4)。

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

T4

T3-t

T1

设备A

d/2

d/2

设备B

T1+t

T2 T3

时间序列图

➢ NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2 秒。

➢ 设备A相对设备B的时间差offset=((T2-T1)+(T3-T4))/2=1小时。

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

以上内容只是对NTP工作原理的一个粗略描述,更详细的资料可以参阅RFC 1305。

NTP工作模式

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

 客户端/服务端模式

 对等体模式

 广播模式

 组播模式

用户可以根据需要选择合适的工作模式。在不能确定服务器或对等体IP地址、网络中需要同步的设备很多等情况下,可以通过广播或组播模式实现时钟同步;服务器和对等体模式中,设备从指定的服务器或对等体获得时钟同步,增加了时钟的可靠性。

1. 客户端/服务器模式 图1-1 客户端/服务器模式

在该模式下,客户端能同步到服务器,而服务器无法同步到客户端。Mode3客户模式,mode4服务模式,适用于一台时间服务器接收上层时间服务器的时间信息,并提供时间信息给下层的用户。

2. 对等模式

图1-2 对等模式

主动对等体和被动对等体可以互相同步。如果双方的时钟都已经同步,则以层数小的时钟为准。Mode1是主对等体模式,mode2被对等体模式,mode3客户模式,mode4是服务模式

3. 广播模式

图1-3 广播模式

在广播模式中,服务器端周期性地向广播地址255.255.255.255发送时钟同步报文,报文中的Mode字段设置为5(广播模式)。客户端侦听来自服务器的广播报文。流程如图1-4所示。Mode3客户模式,mode4服务模式

4. 组播模式

图1-4 组播模式

在组播模式中,服务端周期性地向组播地址发送时钟同步报文。报文中的mode5是组播模式,mode4是服务器模式,mode3是客户模式。

Cryptosum

Authenticator(Optional)

0 2 5 8 16 24

LI:闰秒标示器 Root Delay:根时延

32

VN:版本号 Root Dispersion:根时误LI

VN

ModStrat

PoPrec

Root Delay

Mode:工作模式 时钟标识

Stratum:时钟层

Root Dispersion

Poll:测试间隔

Reference Identifier

NTP 时间戳 (64 bits)

Reference Timestamp (64)

Originate Timestamp (64)

Seconds (32) Fraction (32)

Receive Timestamp (64)

NTPv4 Extension Field

Transmit Timestamp (64)

Field Length Field Type

Extension Field 1 (optional)

Extension Field

(填充至 32-bit)

Extension Field 2… (optional)

最后一个扩展域( field)填充至 64-bit

Key/Algorithm Identifier(32)

NTP v3 and v4

NTP v4 only

Message Hash (64 or 128)

authentication only

网络时间协议(NTP,Network Time Protocol)是典型的网络授时协议,用于互联网中的时间同步。NTP协议机制严格、实用、有效,网络开销少。改进算法的采用,使NTP可以在互联网 上获取精确和可靠的时间同步。精度和稳定性提高后,可以满足物联网和云计算中的时间同步。

传统的基于NTP协议的时间同步算法达到同步目的的前提是,服务器与客户机通信过程中,请求报文与应答报文往返时延相等。但实际网络中,由于网络拥塞原 因,往返时延并不相等,甚至往返路径也不相同,因此导致NTP时间同步算法在广域网环境中有数十毫秒的时延差。本文对NTP协议做了改进,降低了网络抖动 影响,增强了授时稳定性,提高了时间同步的精度。

NTP时间延时的精确测量

NTP算法试图通过上述静态方法来提高时间同步的精确度,却不能消除报文单向延时的抖动造成的影响,而使NTP算法变得更加复杂。

报文在网络传输过程中,经过路由器的排队等待转发的时间延时是造成网络时延的主要方面,为了使网络的传输延时会直接反映在时间差的测量中,实验采用一个高精度时钟(具有一级或二级时间服务器精度)的PC机,并能够在微秒级精度以下处理时间,作为客户端来接收来自外部的高精度时钟信号,用一个带有铯原子钟信号的高精度PC机作为服务器端。图2和图3是客户端和服务器9天内对时间延时偏差测量[5]数据,前者是在报文没有经过路由器转发的情况下,对时间延时的统计。后者是在网络阻塞的情况下,数据报文经过一个路由器转发时,对时间延时的统计。从测量结果可以看出,数据报文延时的波动是被网络阻塞造成的,经过路由器转发引起的时延变化在100微秒左右,这是在没有路由器转发情况下时延的5倍。下面我们讨论数据报文通过一个路由器转发的时钟同步情况,提出了数据报文通过路由器转发和不经过路由器转发获得相同时钟精度的方法。

图2 时间延时测量数据时间延时(微秒)1007550250-25-50-75-10测量时间(天)图3 时间延时测量数据时间延时(微秒)1007550250-25-50-75-10测量时间(天)

利用网络仿真软件(NS2)验证了报文在经过路由器转发时的自我丢包技术在处理时间延时的有效性,确定数据报经过路由器转发时时延的概率,来估算路由器对网络延时的影响。本方法对时间延时的测量过程中,采用在客户端和服务器之间FTP数据流量来影响数据报文在路由器中的转发时间延迟。通过改变FTP数据流来比较时间延时的变化。设定网络带宽是100Mbps,路由器缓冲器中能够最大存放等待转发的数据报文是300,图6是网络仿真结构图。

数据流 FTP

路由器1

图6网络仿真结构

路由器2

时间报文

100Mbps

FTP数据流

[6]首先,在1000FTP 数据访问流量情况下,数据报文经过一个路由器转发和经过二个路由器转发造成的网络时间延迟分布情况如图7和图8所示。两图表明:增加一台路由器将会影响数据报文转发时间延迟增加近100微秒的概率。因此我们得出结论,当MTU(最大传输单元)长度的数据报以120微秒的流速通过高速以太网(100Mbps)时,增加一个路由器转发过程,此时队列延时的概率就增加一倍。图9表明在FTP

数据流量发生变化的情况下,数据报在路由器转发过程中网络时延的概率变化。从这些数据我们可以看出,仿真网络中两个路由器在1000FTP数据流量情况下,数据报文无时延转发的概率要比只有一台路由器时降低45%。 图7 数据报文经过一个路由器时网络时延概率分布时延概率(%)54321001000网络时延(微秒)

图8 数据报文经过二个路由器时网络延时概率分布54321001000网络时延(微秒)时延概率(%)

图9 在FTP数据流量变化下无延时概率统计通过一个路由器通过二个路由器无延时概率(%)140FTP数据流量9001000

数据报经过一个路由器转发比没有经过路由器转发所产生的时延是100微秒的范围变化。并提出了数据报文自我丢包技术来提高同步算法处理时延的精确度,通过仿真实验表明这种方法是有效和可行的,今后的工作是把这种技术应用到现有的和将来的IPv6网络时间同步算法中去。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688119020a84795.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信