NTP服务器的响应阈值测试软件设计

2017-05-25 00:56:14吴鹏1华宇张旭海1
时间频率学报 2017年1期
关键词:线程报文数据包

吴鹏1,华宇,张旭海1



NTP服务器的响应阈值测试软件设计

吴鹏1,2,3,华宇1,2,张旭海1,2,3

(1. 中国科学院 国家授时中心,西安 710600;2. 中国科学院 精密导航定位与定时技术重点实验室,西安 710600;3. 中国科学院大学,北京 100049)

时间同步技术是现代网络应用的核心技术,网络时间协议NTP(network time protocol)是时间同步的重要工具。在广域网和局域网中,处在较高层级或重要节点的NTP服务器对整个网络的时间同步都起到了重要作用,对服务器的运行状态进行评估则变得尤为重要。设计了一款检测NTP服务器响应能力的软件,并进行了测试。对测试结果的分析证实了该软件的有效性和实用性。

时间同步;NTP;响应阈值测试

0 引言

网络时间协议NTP(network time protocol)是设备在互联网中进行时间同步的标准协议[1-2],它的用途是将计算机的时间同步到某些时间标准,适应在各种规模、速度和连接通路状况的互联网环境下工作,因此NTP是公认的互联网上的时间同步工具。然而,随着NTP服务需求的增加[3],对NTP服务器的性能提出了更高的要求,也需要对NTP服务器性能进行合理的评估。本文通过软件设计实现了对NTP服务器单位时间内响应阈值的测试与评估。

1 NTP工作原理

NTP是由美国Delaware大学的D. L. Mills教授设计提出的[4]。NTP基于UDP报文传输,使用UDP端口号为123,在其报文中包含4个重要的时间戳,,,,其中,分别为客户端发送和接收报文的时间点(以客户端时间为参照),,分别为服务器接收和发送报文的时间点(以服务器时间为参照)[5]。其工作原理如图1所示。为原始时间戳(Originate timestamp),为接收时间戳(Receive timestamp),为传送时间戳(Transmit timestamp),为到达时间戳(Destination timestamp),为数据包上行传送时延,为数据包下行传送时延,为数据包往返传送时延,为客户端与服务器之间的时间偏差。

图1 客户端/服务器方式下NTP工作原理

假设数据包上行与下行时延相等,即可得

。 (2)

NTP报文中,Leap indicator(LI)为闰秒指示,长度为2 bits,值为“11”时警告时间未被同步,其他数值时本身不做处理。Version number(VN)为NTP版本号,长度为3 bits。目前最高版本为版本4,但是还没有一个正式描述这个版本的RFC文件。本设计基于版本3。Mode为NTP的工作模式,长度为3bits,在客户端/服务器模式中,当客户端发送请求时设定为3,服务器回复请求时设定为4;在广播/组播模式中,服务器设定为5。Stratum为系统时钟的层数,取值范围为1~16,数值越小表示层数越高,即时间的准确度越高。Poll为轮询时间,设定相继两个消息的最大时间间隔,单位为秒,以2的幂数表示,理论上的范围为4(16 s)~14(16 284 s),大多数实际应用范围为6(64 s)~10(1 024 s)[6]。Precision为系统时间精度,表示本地时钟的精确性。Root delay为根延迟,表示报文从本地到参考时钟源的往返时间。Root dispersion为根差量,表示本地时钟相对于主参考时钟源的最大时间偏差。Reference identifier为参考时钟标识,识别特殊的参考时间源。Reference timestamp为参考时间戳,表示系统最后一次被设定或校正的时间。Originate timestamp为原始时间戳,表示NTP报文离开客户端时客户端的本地时间。Receive timestamp为接收时间戳,表示NTP报文达到服务器时服务器的本地时间。Transmit timestamp为发送时间戳,表示NTP报文离开服务器时服务器的本地时间。Authenticator为验证信息。NTP报文格式如图2所示。

LIVNModeStratum(8 bits)Poll(8 bits)Precision(8 bits) Root delay (32 bits) Root dispersion(32 bits) Reference identifier(32 bits) Reference timestamp(64 bits) Originate timestamp(64 bits) Receive timestamp(64 bits) Transmit timestamp(64 bits) Authenticator(optional 96 bits)

2 NTP服务器响应阈值测试软件设计

NTP服务器的性能主要体现在短时间内对大量访问请求的应答能力。可以通过软件模拟这一过程,主要流程为在短时间内创建并向服务器发送大量NTP请求包,同时监测服务器的响应,根据发包数量与响应数量定量地确定服务器的性能指标。下面介绍软件具体实现方法。

软件采用C语言编写,调用C标准库,运行于2.6内核的Linux平台上。软件通过多线程方式在某一时间段内对目标NTP服务器发出若干个NTP请求,并接收其返回的数据包,通过返回数据包形式判断通信成功与否,以此方式探测目标服务器的抗压能力,结束后返回在设定时间内产生的链接数与响应数,实现对目标服务器抗压能力的评估。

软件主流程如图3所示。

图3 软件主流程

按照NTP协议构建数据包,建立UDP通信,程序内限定发送时间为1 s,在限定时间内通过循环不断创建线程,超出限定时间后停止创建线程。

创建新线程的流程如图4所示。

图4 创建新线程流程

通过线程向目标服务器发送NTP包,并采用阻塞超时的方式等待响应,收到有效响应返回为有效结果,超时返回为无效结果。

软件输入及输出的命令行如图5所示。

图5 请求输入命令行

命令格式为NTP_Stress_Test[IP Address][Connection Number],如图6所示。

图6 结果输出命令行

结果显示在End time与Start time之间的最大有效连接数与创建的线程数。

3 测试结果

本文所述的软件,其设计意义在于测定服务器在实际工作中的响应阈值,若要求其对报文的处理能力保持正常,应将用户数量控制在某一个阈值之下,或者通过更换硬件设备加大响应阈值。由于测试环境中构建的链接关系越简单直接,越能减少链路环境对应答次数的影响,因此测试环境的设备连接关系较为简单,如图7所示。

测试平台      路由器      被测服务器

测试程序运行于一台安装Linux系统,包含4GB系统内存的主机上,设置系统线程栈空间最大值为256kbytes。被测对象为由Microsemi公司生产的型号为SyncServer S350的NTP服务器,该服务器采用 OCXO(oven controlled crystal oscillator恒温晶体振荡器)保持时钟准确,可以采用GPS卫星进行校时。路由器采用H3C公司的er3100,该路由器传输速率为10/100mbit/s,采用500MHz主频的CPU和64MB内存。

实验中使用该软件对NTP服务器进行了3组测试,每组测试为1 s内对服务器发送固定数量的服务请求并记录下有效响应次数,每组连续采样20次,每次间隔10 s。3组测试的请求数量分别为500次/s、5 000次/s、10 000次/s。每组测试获得的响应次数数据分别如图8,图9和图10所示。

图10 请求数为10 000次/s的服务器响应状态

图8至图10中,横坐标代表采样次数,纵坐标代表收到NTP服务器有效响应次数。多组测试结果表明,当访问并发数较小的情况下,被测NTP服务器在单位时间内返回的有效响应次数能够稳定地维持在90%左右,然而当测试并发数设置进一步增加后,服务器的抗压能力阈值最终被定格在每秒5 500次左右。

经多次实验及结果分析得出,在测试过程中每组数据丢失的响应次数,与链路及连接设备的复杂程度有关。随着复杂程度增加,即在实验中增加路由器的个数甚至通过连接广域网进行测试,网络通信的性能会随之降低,响应丢失的比率也随之增高。因此使用该软件进行测试时,连接关系应保持相对的简单。

4 结论

本论文在分析NTP协议的基础上,介绍了一种NTP服务器响应阈值测试的方法,并通过程序设计实现并对时间服务器进行了测试和分析。通过实际运行表明该软件有效,满足测试需求,并为进一步全面评估NTP服务器的服务质量提供了参考依据。

[1] MILLS D L. Network time protocol (Version 3) specification[S]. United States: Implementation and Analysis-RFC1305,1992.

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

[3] 费振豪. 基于NTP的地铁综合监控系统时钟同步技术的研究[D]. 西安: 西南交通大学, 2004.

[4] MILLS D L. Adaptive hybrid clock discipline algorithm for the network time protocol[J]. IEEE/ACM Transactions on Networking, 1998, 6(5): 505-514.

[5] 赵英, 刘冬梅, 郭树印, 等. 基于NTP的网络时间服务测量[J]. 计算机工程与应用, 2006(S1): 99-100, 119.

[6] 宋妍, 朱爽. 基于NTP的网络时间服务系统的研究[J]. 计算机工程与应用, 2003, 36(39): 147-149, 152.

Design of software for testing response threshold of NTP server

WU Peng1,2,3, HUA Yu1,2, ZHANG Xu-hai1,2,3

(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China; 2. Key Laboratory of Precision Navigation and Timing Technology, National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China; 3. University of Chinese Academy of Sciences, Beijing 100049, China)

Time Synchronization Technology is the core technique of modern network application, and NTP (network time protocol) is an important tool for time synchronization. In LAN and WAN, the NTP server at high level or key node plays an important role in time synchronization, so the assessment for the state of server is particularly important.A software is designed to test the response capability of NTP server, and the test is completed. The analysis of the test results confirms the validity and practicability of the software.

time synchronization; NTP; response threshold test

TP393

A

1674-0637(2017)01-0036-07

10.13875/j.issn.1674-0637.2017-01-0036-07

2016-05-16

中国科学院“西部之光”人才培养计划资助项目(2012LH01)

吴鹏,男,硕士,主要从事NTP网络时间服务器授时质量的测量与评估的研究。

猜你喜欢
线程报文数据包
基于J1939 协议多包报文的时序研究及应用
汽车电器(2022年9期)2022-11-07 02:16:24
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
中国外汇(2019年11期)2019-08-27 02:06:30
SmartSniff
浅谈linux多线程协作
环球市场(2017年36期)2017-03-09 15:48:21
ATS与列车通信报文分析
基于Libpcap的网络数据包捕获器的设计与实现
视觉注意的数据包优先级排序策略研究
Linux线程实现技术研究
移动IPV6在改进数据包发送路径模型下性能分析