首页 > 范文大全 > 正文

局域网环境的网络时间协议性能测试

开篇:润墨网以专业的文秘视角,为您筛选了一篇局域网环境的网络时间协议性能测试范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:网络时间协议(NTP)能够实现多节点时间和频率同步,具有简单、经济和高效等特点,但在性能测试方面的相关研究不多,使得在实际系统中是否采用NTP时缺乏参考数据。针对这一问题,开展了局域网环境下的NTP性能测试,分析了系统负载和网络负载对NTP性能的影响。在实际系统中,通过比较IRIG.B时码卡和GetLocalTime Windows API返回的时间,近似获取了计算机基准时钟信号的频率偏差,该误差值与NTP测算的结果基本一致,表明本地一级NTP服务器时间同步和频率同步性能良好。对NTP的实际应用和Windows平台下时间敏感应用程序的设计提供了参考。

关键词:网络时间协议;时间同步;频率同步;性能测试;线性拟合

中图分类号: TP393.04 文献标志码:A

Network time protocol performance evaluation in LAN environment

CHEN Chao.fu1,2*, WANG Lei1(

1.Institute of Applied Electronics, China Academy of Engineering Physics, Mianyang Sichuan 621900, China;

2.Graduate School, China Academy of Engineering Physics, Mianyang Sichuan 621900, ChinaAbstract:

Network Time Protocol (NTP) is a simple, economic and efficient way to accomplish time and frequency synchronization of multiple nodes, while performance evaluation related work is hard to find in literature, making whether to use NTP in application an uneasy task. Aiming at this problem, local network NTP performance, and impact of system / network load, are measured and analyzed on Windows platform. By comparing time value obtained from IRIG-B time code reader and GetLocalTime Windows API, frequency skew of computer clock signal is approximated. The skew value is close to the value calculated by NTP. These conclusions can provide reference for NTP practice and time-sensitive application design on Windows platform.

Network Time Protocol (NTP) is a simple, economic and efficient way to accomplish time and frequency synchronization of multiple nodes, while relevant study on the performance evaluation is hard to find in literature, which makes it a question whether to use NTP in application. Concerning this problem, the local network NTP performance and impact of system / network load were measured and analyzed on Windows platform. By comparing time value obtained from IRIG.B time code reader and GetLocalTime Windows API, frequency skew of computer clock signal was approximated. The skew value was close to the value calculated by NTP. These conclusions can provide reference for NTP practice and time.sensitive application design on Windows platform.

Key words:

Network Time Protocol (NTP); time synchronization; frequency synchronization; performance evaluation; linear fit

0引言

对于许多分布式应用,精确的时间同步是整个系统正常工作的基本条件之一。例如控制系统、金融实时交易系统、交通运输调度系统等,都要求不同程度的时间同步。网络时间协议(Network Time Protocol,NTP)提供高精度的时间校正和频率同步,目前已在许多领域得到了广泛应用。

在实际系统中决策是否以NTP作为时间同步手段时,首先关心的是给定应用环境中NTP能够达到何种性能。通常认为,广域网中NTP对时精度为1ms~50ms,局域网环境下则可达1ms[1-2];使用改进型NTP,在物理层产生和处理时戳标记,减少了协议处理延迟,时间精度可达10μs量级[3];赵英等[4]开发了基于Java的NTP客户端,对服务器运行状态和网络链路状态进行了测量和评估;Wolfgang等[5]分析和评估了离线情况下环境温度变化对NTP性能的影响。这些文献为评估NTP性能提供了一些依据,但未涉及系统启动特性,以及在系统负载或网络负载环境下NTP性能是否降级等问题。本文集中讨论了局域网环境下的NTP性能问题,并在实际应用中结合IRIG.B时码卡近似获取了计算机时钟频率偏差,进一步验证了NTP性能。测试数据和结论为NTP的实际应用和性能评估提供了参考。

1计算机时钟模型和NTP原理普通计算机时钟通过对精度不高的时钟基准信号(通常来自成本低廉的晶体振荡器)进行计数获得。这样的时钟C可用初始时间偏差o,频率偏差s和频率漂移d三个参数描述,其与理想时钟t的关系可表为:

C(t)=(1+s)×t+o其中频率偏差s是产生时间偏差的主要因素。以频率偏差100PPM(Parts Per Million)计算,24h的累积时间偏差将达到8.64s。频率漂移d与元器件老化、工作环境温度变化等因素有关,较短时间内对时间偏差的贡献可以忽略不计。除了由于频率偏差和漂移给上述时钟模型造成的固有缺陷,操作系统提供的时间相关编程接口(Application Program Interface,API)能够达到的实际精度不高,也对时间敏感应用提出了挑战。例如,Windows平台的GetLocalTime、GetSystemTimeAsFileTime的实际精度仅为10ms~15ms[6]。

NTP进行时间同步的核心为频率偏差的测算。基于网络传输延迟对称的假设,通过NTP数据报文交换和对报文收发时间戳的计算,可以获得对频率偏差的较好估计。假设节点A以节点B作为参考时间源,一次数据报文交换过程如图1所示。

图片

图1NTP一次数据报文交换过程

当A收到从B返回的数据包时,A得到了四个时间戳t1~t4(NTP在Windows系统上的实现采用了插值算法来克服系统API精度问题[7],Johan设计实现的高精度时间供应器也采用了类似的思路[8]),由此可以计算A与B的网络传输延迟δ以及B相对于A的时间偏差计算值θ[1]: δ=(t4-t1)-(t3-t2)

θ=(t2-t1)+(t3-t4)2

可以推算出B相对于A的时间偏差真实值和时间偏差计算值θ、网络传输延迟δ满足式(1)[1]:

θ-δ2≤≤θ+δ2 (1)

即B相对于A的时间偏差真实值落在以时间偏差计算值为中心、宽度为网络传输延迟的区间内。在局域网环境中,传输延迟并不大(低负载情况下通常小于1 ms),因此时间偏差的计算结果也比较接近真实值,即NTP可以获得较为可靠的同步效果。第4期

陈朝福等:局域网环境的网络时间协议性能测试计算机应用 第32卷2本地一级NTP服务器性能测试

2.1测试环境和方法

Windows操作系统自带的W32Time服务也支持NTP,但其实现并没有完全遵循NTP标准,甚至无法保证达到1s~2s 同步精度[9]。因此,测试中选用了NTP的官方版本,版本号为4.2.4.p7。测试环境如图2所示,NTP一级服务器运行定制的Linux系统,测试计算机A、B运行Windows XP操作系统。

图2中,计算机A和计算机B通过NTP同步到NTP一级时间服务器,后者通过NTP与GPS模块输出的时间(NMEA.0183时码+秒脉冲同步信号)同步。NTP以系统服务的方式运行,通过NTP软件包中的网络时间协议查询(Network Time Protocol Query, NTPQ)程序查询系统运行状态。在以下各项测试中,通过循环调用NTPQ(间隔10s)并提取输出中的“delay”和“offset”字段并记录和处理。

2.2启动特性测试

图3中显示了计算机A首次运行NTP时,与参考时间源的时间偏差随时间变化的情况。可以看到在测试开始后的1h内,时间偏差迅速减小,随后基本保持稳定。这是由于首次运行NTP需要进行频率偏差的测算,测试结束后在计算机A打开ntp.drift发现测算出的频率偏差为-32(即该计算机时钟信号的误差为-32PPM,每秒产生的时间偏差为32μs)。

图片

图3首次运行NTP时间偏差曲线

与此相对照的是,计算机B之前已长时间运行过NTP,即已经过较充分的时钟频率偏差测算,因此测试之初时间偏差就比较小,并且在随后的测试中一直稳定在-6ms~-5ms。

2.3频率偏差测试从NTP的工作原理和2.2节测试可知,NTP能否稳定工作依赖于对频率偏差的测算是否准确。为了观察错误的频率偏差值对NTP运行的影响,本项测试中故意修改了计算机A的ntp.drift文件,将记录值由-32改为0,而计算机B则不作任何改动,随后启动NTP运行测试约45 min。图4显示了两个节点测得的时间偏差对比结果。可以看到计算机A的时间偏差有很大的波动,而计算机B的时间偏差则保持稳定。由此说明,频率偏差测算对NTP性能影响重大。由于石英晶体振荡器的频率会随环境温度的变化而产生一定变化,因此在对时间非常敏感的应用中,保持较为稳定的工作环境温度也成为一个需要考虑的因素。

2.4系统负载测试

虽然NTP无需占用很多CPU资源[2],但在CPU非常繁忙的情况下NTP的性能如何依然是本文关心的一个问题。本项测试中,在两个测试节点运行能够大量占用CPU时间的程序,测试时间持续45min。从图5可以看到,计算机B的时间偏差测量值和低系统负载环境下的测量值相比变化不大,计算机A的时间偏差测量值在NTP重启动后依然能够呈现出递减的趋势。表1显示高系统负载下网络传输延迟略有增加,与低系统负载环境下测量值的均值比为1.17,这说明高系统负载环境下,或在较差的硬件配置下,NTP依然可以工作得很好。图片

图5高系统负载下NTP节点时间偏差曲线2.5网络负载测试

本项测试旨在观察网络负载对NTP的性能影响。测试中,在两个测试节点间进行大流量UDP数据收发,测试时间持续15 min。图6所示的测试结果和低网络负载环境下的测量值相比变化不大,但是网络传输延迟却显著增加了(见表2),约为低网络负载环境下的3.4倍。根据式(1),时间偏差测量值的误差也增大了,这将影响NTP时间同步的可靠性。如果长时间处于这种环境,时间偏差测量的误差必然影响到频率偏差的测算,由此造成NTP同步的稳定性下降。表2不同网络负载下计算机B到NTP服务器网络传输延迟比较。3结合IRIG.B时码卡对比测试

实际应用中,在某系统中部署了NTP时间同步系统,使用本地一级时间服务器,参考时钟为NMEA.0183时码+秒脉冲同步信号。

为了进一步检验NTP的性能,在时间同步网络中的其中一台计算机安装了IRIG.B时码卡(提供读取当前时间的API,标称精度为0.1ms),并接收外部输入的IRIG.B码信号。在停用或启用NTP的情况下,分别采集计算机时间(通过GetLocalTime调用读取)和IRIG.B时码卡时间并取差值(间隔100ms,样本数64000),对比情况如图7和图8所示。

图2中,计算机A和计算机B通过NTP同步到NTP一级时间服务器,后者通过NTP与GPS模块输出的时间(NMEA.0183时码+秒脉冲同步信号)同步。NTP以系统服务的方式运行,通过NTP软件包中的网络时间协议查询(Network Time Protocol Query, NTPQ)程序查询系统运行状态。在以下各项测试中,通过循环调用NTPQ(间隔10s)并提取输出中的“delay”和“offset”字段并记录和处理。

2.2启动特性测试

图3中显示了计算机A首次运行NTP时,与参考时间源的时间偏差随时间变化的情况。可以看到在测试开始后的1h内,时间偏差迅速减小,随后基本保持稳定。这是由于首次运行NTP需要进行频率偏差的测算,测试结束后在计算机A打开ntp.drift发现测算出的频率偏差为-32(即该计算机时钟信号的误差为-32PPM,每秒产生的时间偏差为32μs)。

图片

图3首次运行NTP时间偏差曲线

与此相对照的是,计算机B之前已长时间运行过NTP,即已经过较充分的时钟频率偏差测算,因此测试之初时间偏差就比较小,并且在随后的测试中一直稳定在-6ms~-5ms。

2.3频率偏差测试从NTP的工作原理和2.2节测试可知,NTP能否稳定工作依赖于对频率偏差的测算是否准确。为了观察错误的频率偏差值对NTP运行的影响,本项测试中故意修改了计算机A的ntp.drift文件,将记录值由-32改为0,而计算机B则不作任何改动,随后启动NTP运行测试约45 min。图4显示了两个节点测得的时间偏差对比结果。可以看到计算机A的时间偏差有很大的波动,而计算机B的时间偏差则保持稳定。由此说明,频率偏差测算对NTP性能影响重大。由于石英晶体振荡器的频率会随环境温度的变化而产生一定变化,因此在对时间非常敏感的应用中,保持较为稳定的工作环境温度也成为一个需要考虑的因素。

图片

图4频率偏差测算值对NTP性能的影响

2.4系统负载测试

虽然NTP无需占用很多CPU资源[2],但在CPU非常繁忙的情况下NTP的性能如何依然是本文关心的一个问题。本项测试中,在两个测试节点运行能够大量占用CPU时间的程序,测试时间持续45min。从图5可以看到,计算机B的时间偏差测量值和低系统负载环境下的测量值相比变化不大,计算机A的时间偏差测量值在NTP重启动后依然能够呈现出递减的趋势。表1显示高系统负载下网络传输延迟略有增加,与低系统负载环境下测量值的均值比为1.17,这说明高系统负载环境下,或在较差的硬件配置下,NTP依然可以工作得很好。图片

图5高系统负载下NTP节点时间偏差曲线2.5网络负载测试

本项测试旨在观察网络负载对NTP的性能影响。测试中,在两个测试节点间进行大流量UDP数据收发,测试时间持续15 min。图6所示的测试结果和低网络负载环境下的测量值相比变化不大,但是网络传输延迟却显著增加了(见表2),约为低网络负载环境下的3.4倍。根据式(1),时间偏差测量值的误差也增大了,这将影响NTP时间同步的可靠性。如果长时间处于这种环境,时间偏差测量的误差必然影响到频率偏差的测算,由此造成NTP同步的稳定性下降。表2不同网络负载下计算机B到NTP服务器网络传输延迟比较。3结合IRIG.B时码卡对比测试

实际应用中,在某系统中部署了NTP时间同步系统,使用本地一级时间服务器,参考时钟为NMEA.0183时码+秒脉冲同步信号。

为了进一步检验NTP的性能,在时间同步网络中的其中一台计算机安装了IRIG.B时码卡(提供读取当前时间的API,标称精度为0.1ms),并接收外部输入的IRIG.B码信号。在停用或启用NTP的情况下,分别采集计算机时间(通过GetLocalTime调用读取)和IRIG.B时码卡时间并取差值(间隔100ms,样本数64000),对比情况如图7和图8所示。图片

图6高网络负载下NTP节点时间偏差曲线

表格(有表名)

表1不同系统负载下计算机B到NTP服务器网络传输延迟比较

ms

CPU占用率网络传输延迟统计值

最大最小平均

接近100%

0.50 0.29 0.48 0.49 0.49 0.48

0.31 0.49 0.27 0.48 0.21 0.320.50 0.21 0.401

接近0%

0.35 0.23 0.27 0.31 0.35 0.24

0.28 0.50 0.27 0.51 0.50 0.310.51 0.23 0.343

表格(有表名)

表2不同网络负载下计算机B到NTP服务器网络传输延迟比较

ms

网络IO网络传输延迟统计值

最大最小平均

接近100%

1.29 1.60 1.05 1.23 1.42 1.01

1.75 1.17 1.34 1.45 1.33 1.571.75 1.01 1.351

接近0%

0.49 0.50 0.22 0.49 0.48 0.31

0.49 0.52 0.33 0.25 0.50 0.20

0.52 0.20 0.398

图片

图7停用NTP时GetLocalTime与IRIG.B时码卡时间差值曲线图片

图8启用NTP时GetLocalTime与IRIG.B时码卡时间差值曲线

图7显示了停用NTP时,GetLocalTime与IRIG.B时码卡时间差值随时间变化的曲线。以IRIG.B时码卡时间为基准,理想情况下(测试计算机无频率偏差)时间差值曲线应接近水平(在某个值附近波动),实际情况中由于频率偏差的存在,时间差值持续减小,通过线性拟合曲线近似满足:

y=0.000662x-685.40(2)其中:x的单位为100ms,y的单位为ms,物理意义为测试计算机的时钟每100ms比基准时钟快0.000662ms,可换算为每秒快6.62×10-6 s,即频率偏差为6.62PPM。在测试计算机查看ntp.drift文件发现由NTP计算出的频率偏差为7.055PPM,两者是非常接近的。图8中,在启用NTP并达到同步状态后,GetLocalTime与IRIG.B时码卡时间差值的平均值为3.39ms,99%以上的时间差值分布在[-1,9]ms内,对比停用NTP时的情况,表明NTP对计算机时钟频率偏差的校正是有效的。

4结语

实验环境测试结果和在实际系统中结合IRIG.B时码卡获得的测试数据表明,NTP对计算机时钟的频率偏差计算和校正具有良好的性能,通过校正频率偏差实现连续和稳定的时间同步,因此在将NTP投入最终应用之前应进行充分的试运行(如持续运行NTP一到两天时间),使NTP获得较好的频率偏差测算结果。高系统负载测试表明NTP只需要很少的系统资源就可以运行,即使在硬件配置较差的情况下也能运行得很好。而在高网络负载下,网络传输延迟显著增大,则时间同步的误差范围也随之增大,给NTP性能的稳定性带来不利影响。

参考文献:[1]

MILLS D L. Internet time synchronization: The network time protocol [J]. IEEE Transactions on Communications, 1991,39(10):1482-1493.

[2]

MILLS D L. Network Time Protocol (NTP) general overview [EB/OL]. [2011-07-19]..

[8]

JOHAN N. Implement a continuously updating, high.resolution time provider for Windows [J/OL]. MSDN Magazine,(2004-03-10)[2011-07-19]. msdn.省略/en-us/magazine/cc163996.aspx.

[9]

MICROSOFT. Support boundary to configure the Windows time service for high accuracy environments [EB/OL].[2011-07-19]. support.省略/kb/93932.