一种基于NTP的伪卫星时间同步方法
2018-05-10赫美琳高明惠祝瑞辉杨开伟
赫美琳,高明惠,祝瑞辉,杨开伟
(1.中国人民解放军92941部队,葫芦岛 125001;2.海军航空大学,烟台 264001;3.中国电子科技集团公司第54研究所,石家庄 050081;4.卫星导航系统与装备技术国家重点实验室,石家庄 050081)
1 引言
1988年,美国特拉华大学教师DavidL.Mills主持开发了网络时间协议(Network Time Protocol,NTP)的第一个版本,并在RFC-1059中完整描述了NTP的规范和相关算法[1],之后随着电子商务,作战系统等民用、军用技术的发展和需要,经过20余年的研究,NTP向着更高精度、更强兼容性和多平台的适应性方向发展,大大增加了应用范围,目前已有了第四个版本。
伪卫星是一种类卫星的地面导航信号发射设备[2],布设在地面上,可使用户不修改接收机硬件,只更改软件就可实现导航定位的功能,特别在卫星信号受遮挡或微弱的情况下能增强接收机的定位精度,既可以同卫星组网联合定位,也可独立组建定位系统,是一种对GNSS卫星导航增强的相对独立定位系统。当伪卫星不具有时钟计时功能时,无法向用户发射包含周内秒和周计数信息。
本文结合NTP原理,将网络时间同步应用到伪卫星开发设计中,针对伪卫星对时间精度要求在秒级的特点,提出一种简化的伪卫星网络同步方法(Sample Pseudolite Network Time Protocol,SPNTP),精度可到达10ms,满足伪卫星系统的需求。
2 NTP原理简介
网路时间协议(NTP),规范了网络传输报文格式和相关时间处理算法,使用具有精确、稳定时间源对时间精度较低的设备进行精确校时,避免因每个设备安装高精度时钟硬件而提高成本,即提高经济效益又保证了精度。
2.1 NTP组成
NTP通过其规范的网络传输报文可简单的计算出网络传输延时和计算机时间差。协议规范如图1所示[3]。
NTP头包含48个字节,从左到右,从上到下依次为:闰秒标识器(2 bits)、版本号(2 bits)、模式(3 bits)、层(8 bits)、测试间隔(8 bits)、精度(8 bits)、根延时(32 bits)、根离散(32 bits)、参考时钟标识符(32 bits)、参考时间戳(64 bits)、原始时间戳(64 bits)、接收时间戳(64 bits)、传送时间戳(64 bits)。
图1 NTP字段组成
NTP的报文规范保证了校时所需的全部信息。NTP有三种功能模式,分别为对称模式、客户端/服务器模式、广播模式,本文根据伪卫星的特点和实际工作情况选用客户端/服务器模式和广播模式进行了研究实验,客户端/服务器模式是客户端(待校时设备)向服务器(精确时间源)发送请求报文,服务器接收到请求报文后,发送一个应答报文,客户端接收并解析应答报文后计算时间延迟和时间差;在广播模式中,由一台或多台时间源向联入网络中的所有待校时设备发送校时报文,待校时报文可选择接收。广播网络中,任何一个客户端和上级服务器都可组成客户端/服务器模式,因此以客户端/服务器模式为例来阐述本文提出的方法。
2.2 SNTP工作原理
NTP对时架构包括四个层次的时钟,第二层是主服务器,经上一层的参考时间源(GPS、电话调制器等)校时,对下一层的从服务器或客户端进行校时,第四层全部是客户端,NTP规定最后可有16层。当主服务器直接与客服端相连,且主服务器只有一个时,系统简化为简单网络时间协议(Sample Network Time Protocol,SNTP)[4],如图2所示 :SNTP方法系统构造简单,只需要一个稳定、精确的服务器,时间差和网络延时参数计算方便,适用于对时间精度要求不高的时间待校正系统。
3 简化的伪卫星校时方法
3.1 NTP校时方法
经典的NTP校时方法认为系统中存在多个服务器和多个客户端,客户端在一次本地时钟校正时与所有服务器进行数据交互和过滤,通过交集和聚类算法选择符合要求的时钟源来校正客户端时间,方法流程如图3所示:
图2 SNTP对时构架
图3 NTP校时流程
该方法需要多个稳定、精确的服务器,系统结构复杂,数据处理繁琐,代价较高,对于有多个精确、稳定时钟源和对时间精度要求较高的场合,该方法能取得较高的精度。
3.2 SPNTP校时方法
客户端打包一个标准的NTP查询报文发送给服务器,发送时间为T1,服务器接收到该查询报文时间为T2,服务器回复信息报文时间为T3,T4为客户端受到服务器的回复报文时间。δ1为查询报文的网络传输时间,δ2为回复报文的网络传输时间,θ为客户端与服务器的时间差,当主服务器直接和客户端相连,且服务器只有一台时,不再需要交集和聚类算法,当对时间精度要求不高时,进一步简化,可有下式估算:
假设δ1,δ2相等,即网络延时对称,则有
当伪卫星没有时钟机制时,无法向服务器提供参考时间T1,同样也无法得到接收回复报文时间T4,因此上述的计算方法将不再适用,此时,对精度要求只有秒级的伪卫星可直接采用T3作为当前时刻的时间,忽略网络传输延时时间,即可得到周内秒,周计数。SPNTP数据交互如图4所示。
图4 SPNTP数据包交互时序图
在伪卫星与时间服务器组成的广播网络中,伪卫星首先接收服务器广播的NTP报文,提取传送时间戳信息,作为伪卫星的T1时刻,当向服务器发送查询报文时,可将T1打包成参考时间戳,以后每当接收到服务器的回复报文时,提取传送时间戳更新伪卫星的T1时间,同时作为伪卫星当前时刻的时间,用于生成周内秒,周计数电文信息。当系统工作在客户端/服务器模式时,客户端首先向服务器发送查询报文,其中参考时间戳可估计一个大概值,当收到服务器的回复信息时,同广播模式处理方法相同。
4 实验分析
采用无计时功能的XXX型伪卫星,两根1.5m长度2M网线,型号为S2700-9TP-PWR-EI华为交换机,服务器选用经精确时间原不断同步的计算机,分别在客户端/服务器模式和广播模式进行试验。在服务器上编写一个延时测试程序,向伪卫星发送测试报文,记下发送时刻时间,伪卫星接收到测试报文后在下一条语句向服务器发送回复报文,服务器再记录下接收到客户端回复报文时的时刻,每种模式进行20次试验,步长为1s,试验结果如表1、表2所示。
表1 客户端/服务器模式下网络延迟情况
表2 广播模式下网络延迟情况
由表1和表2可以看出,两种模式下,往返一次的网络延时大都在毫秒级以下,少数延时伪0.001s,对于精确要求为秒级的伪卫星而言,可以完全忽略掉网络延时的问题,这就证明了本文提出的基于NTP的简单时间同步方法的可行性,即可直接才用服器的transmit timestamp(传送时间戳)作为伪卫星当前时刻来打包周内秒,周计数信息电文。
5 结束语
本文结合NTP校时原理,针对伪卫星不具有时钟计数功能的特点,提出了一种基于NTP的简单伪卫星校时方法,使伪卫星能够不断获取服务器回复报文时刻的时间,为周内秒,周计数电文的打包提供准确的时间信息,同时保证伪卫星同步工作,精度可达到秒级,满足伪卫星工作需要。
[1] Mills,D.L.Network Time Protocol(version 1)-specification and implementation.DARPA Network Working Group Report RFC-1059,University of Delaware,July 1988.
[2] 耿建平,唐先红,栾慎杰.CAPS中伪卫星技术研究与实现[M].西安电子科技大学出版社,2012:1-10.
[3] 王圣懂,方建勇,刘新友.基于NTP协议的一种校时的实现及相关算法[J].2011,33(1):101-107.
[4] Mills,D.,D.Plonka and J.Montgomery.Simple network time protocol(SNTP)version 4 forIPv4,IPv6 and OSI.Network Working Group Report RFC-4330,University of Delaware,December 2005,27 pp.