一种基于改进型NTP的高精度网络授时方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于改进型NTP的高精度网络授时方法
摘要:本文介绍了网络时间协议的基本工作原理,简要分析了在网络路径对称和不对称两种情况下的网络时延问题。本文结合最小二乘法,提出一种改进型ntp算法,先对信息包进行总时延计算,将大于阈值的信息包过滤掉,将合格的信息包进行累积,采用最小二乘法进行时差和时延估算,将互联网上时间同步精度提高到
10~1ms量级。
关键词:网络时间协议最小二乘法网络授时
中图分类号:tp393.04 文献标识码:a 文章编号:
1007-9416(2012)02-0123-03
1、概述
随着internet和电子信息技术的快速发展,电子商务、电子政务等高时间约束业务对时间同步的要求越来越严格,其中计算机对信息的处理和传送起着关键的作用。通常,计算机的时钟精度很低,一天内就有几秒钟甚至几分钟的时间漂移,这显然无法满足高时间约束业务的要求,由此人们提出了基于internet的网络授时技术[1,2,3]。该技术采用网络时间协议(network time protocol,ntp),通过internet将计算机客户或服务器的时间同步到另一个服务器或参考时钟源。目前,在局域网内,其同步精度一般可以达到10~1ms量级,在广域网上同步精度一般为几十ms[1,2]。
对10000次校时请求进行计算,时差统计如图1所示。由图中可
以看出,时差值相对于其均值大约分布在±50ms区间范围内,形成
一条单一斜率的曲线。本文结合最小二乘法,提出一种改进型ntp 算法,采用最小二乘法进行时差和时延估算,将互联网上时间同步精度提高到10~1ms量级。
2、改进型ntp算法
2.1 ntp工作原理
当客户方a要向服务器方b请求时间服务时,a首先要生成一个标准的ntp查询信息包,通过网络发送给b。当b收到查询信息包后,根据自己的本地时间,再生成一个标准的ntp时间信息包,通过网络发回到a,具体过程如图2所示。
其中,t1为a发送查询请求时间,t2为b收到查询请求时间,t3为b回复时间信息包时间,t4为a收到时间信息包时间,t1、t2、t3和t4以a时间系统为参照,δ1为请求信息在网上传播所消耗的时间,δ2为回复信息在网上传播所消耗的时间[4,5,6]。
因此,a就拥有4个时间t1、t2、t3、t4,并通过他们算出a与b 之间时间上的差值,用以调整客户方a时钟。
假定a与b之间时差值为θ,a和b之间网络传输的往返延时和为δ,则有
这里网络时延分两种情况,对称与不对称。当网络路径对称时有,即查询信息包和回复时间信息包在网上传播的时间相同,则由式(1)可得:
但是大部分的时候是不对称的[7,8]。无法由公式1计算出时差。因此,网络时延δ及其不对称性对时差的影响是主要的。
2.2 对时延进行阈值滤波
对10000次校时请求进行统计,往返网络时延δ如图3所示。由图中可以看出,90%以上的网络时延小于到1ms,引起的网络延时误
差小于±1ms。然而在实际测量中,系统时间的测量误差一般为±
10ms。因此,测量误差也是影响结果的主要因素,但是测量误差是随机正态分布的,可以通过随后的统计计算减小影响。另一方面,对于偶然出现的网络时延较大的情况,包括时延严重不对称的情况,通过在程序中设定网络时延阈值δ0,即当δ>δ0时,丢弃该时间信息包,重新发送校时请求,从而起到保证校时精度的作用。
2.3 采用最小二乘法估算时差
对信息包进行了时延阈值滤波以后,再采用最小二乘法进行时差和时延的处理。改进型ntp的传输模型如图2所示,假设a为客户端,b为服务器端,它们的本地时钟分别为和,ab之间的同步时差为b,传输时延分别为和,可得到关系公式:
由于往返传输时延和往往不相等,通过这样的一组数据不能准确计算出同步时差。在式3中,,,,均为已知值,且可以取得多组值。因此,为了准确估算出同步时差b,先假定和为一个随机时延变量,为了使对b的影响最小,取多组数据,再采用最小二乘法进行和b 值的估计。假设a节点接收m个数据包,b节点接收n个数据包,
令:
最终解方程组得
根据公式5,以a为参考,n1表示客户端接收到的信息个数,t1表示客户端接收n1个报文的累计传输时延,n2表示服务器接收到的信息个数,t2表示服务器接收n2个报文的累计传输时延。则a 相对于b的时钟差值为:
2.4 改进型ntp算法步骤
改进型ntp算法主要分为两个部分,客户端的计算处理和服务器端的计算处理,这两部分软件是独立的,互不影响,分别实现本地计算机作为客户方和服务器方的功能。
当本地计算机作为客户方时,先产生合乎协议标准的ntp查询信息包,再发送给服务器,并对服务器返回的时间信息包进行检查、分析,然后计算ntp时间与本地时间的差值,进而对本地计算机时间进行调整。当本地计算机作为服务器方时,先接收ntp查询数据包,再按ntp协议规范,从本地时间产生ntp信息数据包并发回给查询方。具体处理步骤如下,客户方如图5,服务器方如图6。
3、实验数据
为了对算法进行验证,在ibm t510i笔记本上,基于windows xp,采用microsoft visual basic进行编程实现,对中国计量科学研究院的网络授时服务器(ip地址:220.231.55.106)进行访问并校准时间。中国计量科学研究院时间频率中心的时间服务器采用原子
钟输出的标准频率信号来运行,其频率准确度为5×10-14,相当于三百万年不差一秒。
进行15000次实验,获得实验数据如下图7所示,图a是客户端接收数据的原始时延值,图b是经过滤波处理的时延值,图c是采用传统ntp测量获得的时差统计值,图d是采用本文算法获得的时差统计值。从图a中可以看出,客户端接收到数据包时延不稳定,有时达到几百毫秒,在采用传统算法进行时差计算,达到将近10
毫秒;而采用本文算法,对其进行滤波,将时延大的数据包滤除,再采用最小二乘法进行时差估算,得到的时差值同步精度为2毫秒。
4、结语
本文针对ntp网络非对称延时情况下的时差进行分析检测,通过对不同时延的数据包进行阈值滤波,再采用最小二乘法进行估算,实验验证,采用本文算法得到的时差测量精度达到了2毫秒,大大提高了网络校时的精度。
参考文献
[1]赵科佳,张爱敏,宁大愚.基于ntp协议的网络时间服务系统的实现[j].电子测试,2008,7:13-16.
[2]李德河.网络时延对网上高时问约束业务影响的讨论[j].时
间频率学报,2003,26(2):126-135.
[3]周炜,冯文江,郭文超.基于ntp的adhoc网络时隙同步算法[j].计算机应用,2010,30(1):111-113.