高精度网络对时技术及其应用

2013-02-27 02:23中国卫星海上测控部张建飞
数字通信世界 2013年1期
关键词:客户机交换机报文

中国卫星海上测控部 丁 广 邵 健 张建飞

江苏省江阴广播电视集团 栾雁踪

一、引言

时间统一系统(简称时统)是远洋科学考察船(科考船)上的重要组成部分。目前,科考船时统的时间比对(简称对时)主要以卫星导航对时校频为主,GPS和铷守时钟对时为辅,实现岸船时间同步。科考船时统设备输出时间信号采用专线或者光纤方式传送至用户设备。这种传输方式稳定可靠、抗干扰能力强且时间精度损失很小,但也存在一些局限性,如通过人工报时来验证时间的准确性,增加了工作量,同时需要一台B码解码显示终端,故障点增多,操作维护不便。科考设备计算机终端同步时钟最简便的方法是网络授时,通过同步以太网技术实现时钟同步,是一种切实可行的解决方法。局域网授时不存在路由器路径延迟问题,因而授时精度理论上可以提到亚毫秒级。本文对局域网对时技术进行分析研究,提出了改进精度方法,给出一个基于计算机网络同步的时钟实现方案,该方案可以有效提高岸船间数据传输的时钟同步精度。

二、网络时间协议及对时精度分析

1.NTP授时原理及分析

网络时间协议NTP(Network Time Protocol)用于将计算机客户或服务器的时间与另一服务器同步,使用层次式时间分布模型。在配置时,NTP可以利用冗余服务器和多条网络路径来获得时间的高准确性和高可靠性。即使客户机在长时间无法与某一时间服务器相联系的情况下,仍可提供高准确度时间。

实际应用中,还有确保秒级精度的简单的网络时间协议SNTP,它主要用于那些不需要较高NTP精度网络时间同步客户机。SNTP协议已减少了网络延时对校对准确的影响,但没有冗余服务器和校正时钟频率误差功能。

除了认证符字段在SNTP中一般被忽略外,SNTP的报文格式与RFC-1305中所描述的NTP格式是一致的。NTP/SNTP服务端使用固定的UDP端口号是123。表1是NTP/SNTP报文格式。

表1 NTP协议数据请求和应答报文格式

NTP一般采用是Client/Server方式。如图1所示,客户机使用时钟偏差来调整本地时钟,以使其时间与服务器时间一致。T1为客户发送NTP请求时间戳(以客户时间为参照);T2为服务器收到NTP请求时间戳(以服务器时间为参照);T3为服务器回复NTP请求时间戳(以服务器时间为参照);T4为客户收到NTP回复包时间戳(以客户时间为参照);客户机用上述4个时间参数就能够计算出2个关键参数:NTP包的往返延迟d和客户机与服务器之间的时钟偏差t。d1为NTP请求包传送延时;d2为NTP回复包传送延时;t为服务器和客户端之间的时间偏差;d为NTP包的往返延迟时间。

图1 Clint/Server方式下NTP授时原理

现已知T1,T2,T3,T4,希望求得t以调整客户时钟

假设NTP请求和回复包传递时延相等,即d1=d2,则可解得

根据式(1),t也可表示为

可以看出,t,d只与T2,T1及T3,T4差值相关,而与T2,T3差值无关,即最终的结果与服务器处理请求所需的时间无关。据此,客户端即可通过T1,T2,T3,T4计算出时差去调整本地时钟。

NTP授时精度与NTP服务器与用户间的网络状况有关,主要取决于NTP包往返路由的延时对称程度,往返路由的延时不对称值最大不超过网络延时。式(2)是在假设NTP请求和回复包在网上传送延时相等,即d1=d2=d/2的情况下得出的,而d1,d2的取值范围在(0…d)间,由式(3)可以得出最大授时误差是±d/2。一般广域网的网络延时在10ms~500ms之间;局域网的网络延时在计时操作系统内核处理延迟的情况下通常小于1ms。

假定局域网内NTP延时小于1ms,理论上授时误差小于0.5ms,但对于Windows操作系统内置的NTP客户和NTP服务,并不能达到此精度。Windows NTP时钟分辨率因操作系统和硬件不同而有所不同,时钟分辨率通常为10ms或15ms。基于Windows操作系统内置的NTP授时精度最高不超过10ms。

2.高精度以太网授时PTP协议

为了解决测量和控制应用的分布网络定时同步的需要,2000年底成立网络精密时钟同步委员会通过IEEE1588标准。IEEE1588的全称是“网络测量和控制系统的精密时钟同步协议标准”,IEEE1588协议是通用提升网络系统定时同步能力的规范,在起草过程中主要参考以太网来编制,使分布式通信网络能够具有严格的定时同步,并且应用于工业自动化系统。基本构思是通过硬件和软件将网络设备(客户机)的内时钟与主控机的主时钟实现同步,提供同步建立时间小于10μs的运用,整个网络的定时同步指标有显著的改善。在这里简要说明IEEE1588的特点:

早期的网络时间协议(NTP)只有软件,而IEEE1588既使用软件,也同时使用硬件和软件配合,获得更精确的定时同步;一个1588精密时钟(PTP)系统包括多个节点,每一个都代表一个时钟,时钟之间经由网络连接。按工作原理,时钟可以分为普通时钟和边界时钟两种。二者的区别是普通时钟只有一个PTP端口,而边界时钟包括多个PTP端口。在网络中,每一个时钟都可能处于下面3种状态:从属时钟(SLAVE)、主时钟(MASTER)和原主时钟(PASSIVE)。每个时钟所处的状态是根据最优化的时钟算法决定的。

PTP体系结构的特别之处在于硬件部分与协议的分离,以及软件部分与协议的分离,因此,运行时对处理器的要求很低。如图2所示,PTP的体系结构是一种完全脱离操作系统的软件结构。

图2 PTP协议体系结构

IEEE 1588是一种主从式的时间同步技术,通过定义基于消息的精确时间同步协议(PTP),提供了一种解决以太网实时性不足的有效方法。其原理是主时钟周期性的向网络中所有从时钟发送同步消息报文;从时钟以主时钟为参照,通过解析接收到的同步消息报文计算与主时钟之间的时间差异,并进行同步校正,实现系统同步。PTP协议能够把时间源Master的时间精确地传送到用时设备Slave,两者之间同步误差能够达到亚微秒级。Peer-to-Peer模式下PTP的基本原理如图3所示。

图3 PTP授时原理

首先做如下两个设定:一是假定主时钟到交换机的链路时延为d1,报文在交换机中的驻留时延为d2,交换机到从时钟的链路时延为d3。二是假定主时钟的时间原点为A,交换机的时间原点为B,从时钟的时间原点为C。主时钟与交换机之间时间偏差为Q1,交换机与从时钟的时间偏差为Q2,这样,主时钟与从时钟的时间偏差为Q1+Q2。

时延计算如下:

(1)时延d1的计算

交换机在t1a时刻发出Pdelay_req报文,这个报文在t2a时刻被主时钟收到;主时钟在时刻t3a发送Pdelay_resp报文,该报文在时延t4a时刻被交换机收到

(2)sync报文穿过交换机的驻留时延d2的计算

(3)时延d3的计算

交换机在t1b时刻发出Pdelay_req报文,这个报文在t2b时刻被从时钟收到;从时钟在时刻t3b发送Pdelay_resp报文,该报文在时延t4b时刻被交换机收到

(4)交换机与主时钟之间时间偏差

(5)从时钟与交换机之间的时间偏差

(6)综合式(7)~式(8)进行推算

式中,t1为sync报文从主站发出的时间;t2为sync报文被从时钟收到的时间。

只要计算出了Q1+Q2,主时钟和从时钟的偏差就知道了。通过调整从时钟的时间,就可以达到主从时间统一的目的。

从推导可以看出,PTP授时精度取决于时间戳的精度。而提高时间戳精度的方法就是利用专用硬件电路打时间戳。目前,市场上已经出现了能够支持IEEE1588的以太网PHY和嵌入式处理器。为采用IEEE1588标准规定的PTP(Precision Time Protocol)网络精确对时技术的应用,提供广阔的拓展空间。

三、提高授时精度的方法

1.减少计算机时钟偏差

通用PC机自带两类时钟源:硬件时钟和软件时钟(或称为系统时钟)。不论是硬件时钟还是软件时钟,都是由石英晶体振荡器驱动的,通过累计石英晶体振荡器输出脉冲数,换算出时间。所以计算机时钟的准确度取决于晶振频率准确度。受温度变化、电压、芯片老化等因素影响,晶振频率会发生小幅度波动,其中温度对晶振频影响最大。由于工艺和材料的原因,同一生产线上标称频率相同的石英晶体,其实际频率是不同的,实际频率与标称频率偏差率从10-4量级到10-9量级不等。以10-4量级为例,时钟每天至少误差8.64s。

时钟频率偏差是时钟长期计时累积误差的主要原因,要提高时钟长期计时精度,必须补偿时钟频率偏差。联网的计算机可采用NTP方式,可非常方便地校准时钟频率偏差,其原理如图4所示。以NTP服务器时钟为标准时间,在某一时刻设置NTP客户机时间为NTP服务器当前时间T0,经过一段时间后,NTP服务器时间为T0+tsn,NTP客户端时间为T0+tcn。因为存在时钟频率偏差,tsn与tcn并不相等。NTP客户端时间tcn需乘以时钟频率偏差系数k才等于tsn,即tsn=k×tcn,所以k=tsn/tcn。

图4 计算时钟频率偏差k原理

任何晶振实际工作频率都是不稳定的,只是程度不同而已。即使温度补偿的晶振,在常温范围内(摄氏10℃~35℃)也有大约5×10-7~2×10-6的误差。晶振实际频率是受外界多种因素(温度、电压、老化等)影响而改变的。因此,时钟频率偏差系数k并非恒定不变的。每隔一定时间,NTP客户机要对时钟频率偏差系数k进行校正,才能保证计时精度。为了减少温度引起晶振频率漂移对时钟准确度的影响,可以采用数字温漂补偿方法,提高时钟长期计时准确度。先测出工作温度范围内温度对应的温漂补偿系数,工作时每隔一定时间,根据实际温度查出对应补偿系数动态地修正时间。

2.采用高分辨率时钟提高授时精度

局域网内100MB以太网帧在百兆网络物理层单向延时理论值约8μs,要精确测量NTP包网络延时,提高授时精度,时间分辨率必须达到或高于μs级。Windows系统常用的多个与时间有关的API,其时间分辨率最高精度只能达到ms级。其中,time,gmtime,localtime的时间值精确到s级;函数GetTickCount返回值时间精确到10ms或15ms。

Windows计算机系统有一个高精度性能定时器。函数QueryPerformanceFrequency可得到这个定时器的频率。函数QueryPerformanceCounter可得到定时器的当前值。利用2次获得的计数之差及时钟频率,就可以计算出事件经历的精确时间。缺点是:读取速度相对慢,与CPU速度关系不大。在使用时要注意它的实用分辨率大约只有2μs。

计算机CPU中,有一个称为“时间戳(Time Stamp)”的部件,它以64bit无符号整型数的格式,记录了自CPU上电以来所经过的时钟周期数,提供了1条机器指令RDTSC(Read Time Stamp Counter)来读取这个时间戳。但实际执行约需200个时钟周期,对于1GHz处理器实用分辨率约0.2μs。

用高精度性能定时器或RDTSC均可为网络延时测量提供μs级计时,但要根据系统的具体情况选择一个最合适的。

3.进一步提高授时精度的方法

局域网络时延相对较大的原因在于时间戳一般都是在应用层加戳。为减少操作系统内核处理延时的影响提高NTP授时精度,发/收NTP包时间戳应尽量接近主机真实发/收包时刻。在不改变硬件的条件下,一个可行的办法是修改网卡驱动程序,将记录NTP包发/收时间戳从应用程序移至网卡驱动程序处,可消除操作系统内核处理延时不确定而引入的误差。

四、基于PTP协议的科考船网络时间系统

对于科考船,时间传递技术主要是指船内时间传递,其主要的传递技术包括基于PTP协议网络时间传递和光纤时间传递。主要由岸船对时、定时校频、时间统一、时间服务器和时频传输网络等子系统组成,系统组成如图5所示。

图5 时频服务子系统设计

科考船对时方案可通过同步以太网技术,基于EEE 1588技术实现时间同步。时钟振荡器随时间产生漂移,需要标准授时系统作校准,校准过程要简短和安全可靠。目前常用的有GPS(全球定位系统)和IRIG-B(国际通用时间格式码),IRIG-B每秒发送一个帧脉冲和10MHz基准时钟,实现主控机/客户机的时钟同步。IEEE1588采用时间分布机制和时间调度概念,客户机可使用普通振荡器,通过软件调度与主控机的主时钟保持同步,过程简单可靠,节约大量时钟电缆。岸船对时子系统中,科考船定时校频以岸船卫星双向对时为主用手段,北斗/GPS为辅用手段,实现岸船高精度时间同步,对时精度优于10ns。在提高两点间的岸船对时的精度的基础上,通过建立岸船多点编队对时网络,进一步提高岸船对时精度。定时校频子系统在科考船安装高精度频率源,并通过岸船对时信号对高稳频率源进行定时校频。时间统一子系统以高稳频率源为基础,产生含有同步信息和时间信息的IRIG-B时间码、1pps信号以及相关高稳频率信号。时间服务器子系统接收本地时统IRIG-B时间码校准、1pps以及10MHz频标信号,采用PTP协议通过IP承载网络为用户提供亚微秒级的时间信息服务。

五、结束语

综上所述,科考船采用基于同步以太网技术的同步技术,以太网通过物理层芯片从串行数据码流中恢复出发送端的时钟。同步以太网采用实时报文方式(RTP)在主从结点间提供网络连接和基于信息报的同步服务,网络时间服务器以时间报文方式向用户发布时间信息,终端节点进行时频同步,并产生IRIG-B时码,送给所需服务的设备;时频信号传输范围广,可利用率高;网络中可利用时间信号用于网络维护、控制与管理,因此应用可扩展性强。

见www.dcw.org.cn

猜你喜欢
客户机交换机报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
修复损坏的交换机NOS
使用链路聚合进行交换机互联
ATS与列车通信报文分析
PoE交换机雷击浪涌防护设计
罗克韦尔自动化交换机Allen-Bradley ArmorStratix 5700
瘦客户机:安全与便捷的选择
升腾瘦客户机借神码翱翔“云端”