APP下载

基于IEEE1588高精度网络时钟同步的研究

2011-03-06李晓珍苏建峰

通信技术 2011年3期
关键词:延时报文时钟

李晓珍,苏建峰

(①中国科学院国家授时中心,陕西 西安 710600;②中国科学院研究生院,北京 100080 )

0 引言

随着网络技术的快速发展和分布式系统的大规模应用,使得各个控制节点之间的时钟同步变得越来越重要,因此对时钟同步精度提出了更高的要求。现有的一些时钟同步协议如NTP并不适用于分布式测控领域,它主要应用于较大规模系统的同步,精度一般只能达到毫秒级[1]。

针对局域网多播环境和更高的同步精度要求,2002年IEEE1588精密时钟同步协议IEEE1588V1.0应运而生。为了解决V1.0中双时钟机制不能独立执行、时间戳表示局限性、全球IP枯竭等问题,2008年颁布IEEE1588V2.0。V2.0比V1.0有较大的改进,下面主要对IEEE1588V2.0所引入的新技术进行分析。

1 IEEE1588时钟同步的基本原理

一套 IEEE1588系统由许多设备(节点)组成,每个设备都有自己的时钟系统,时钟之间通过网络相连,通过周期性地发布带有时间戳的信息包,使各个节点的时钟得到同步。

按照工作原理可以将 IEEE1588的时钟分为两类:普通时钟(Ordinary Clock)和边界时钟(Boundary Clock)。只有一个PTP通信端口的时钟是普通时钟,有一个以上PTP通信端口的时钟是边界时钟,每个PTP端口提供独立的PTP通信。按照通信关系又可将时钟分为主时钟和从时钟,理论上任何时钟都能实现主时钟和从时钟的功能,但一个PTP子网内只能有一个主时钟。主时钟担当时间发布者的角色,从时钟担当接收者的角色。

PTP采用主从(Master-Slve)模式,主要定义了四种多点传送的时钟报文类型:同步报文 Sync、跟随报文Follow_Up、延迟请求报文 Delay_Req和延迟请求响应报文Delay_Resp,其实现原理如图1所示。

在进行时钟同步时,首先子网中的所有时钟通过最佳主时钟算法(BMC,Bestmaster Clock)确定自己的状态,从而确定子网中的主时钟[2]。整个系统中的最优时钟为最高级时钟(GMC,Grandmaster Clock),有着最好的稳定性、精确性、确定性等。

图1 IEEE1588时钟同步基本原理

同步过程分为两个阶段:偏移测量阶段和延迟测量阶段。

第一阶段:偏移测量阶段,修正主时钟和从时钟之间的时间偏差。主时钟周期性(一般为2 s)地给从时钟发送Sync报文,这个同步报文包括该报文离开主时钟的时间估计值。主时钟随后发送Follow_Up报文,该报文携带Sync报文准确的发送时刻t1。从时钟在收到Sync报文后记下报文的精确到达时间t2。根据t1和t2可计算出主时钟和从时钟之间的时间偏差(Offset),由于此时对同步报文的传输延时(Delay)未知,先假设为零[3]。

第二阶段:延迟测量阶段。从时钟向主时钟发送一个延迟请求Delay_Req报文,同时记录该报文的实际发送时间t3。主时钟记录延迟请求报文到达的准确时间t4,然后在延迟请求响应报文Delay_Resp中把t4送回到从时钟。根据t3和t4可计算出报文的传输延时 Delay,再次对本地时钟进行调整。延迟测量是不规则进行的,其测量间隔时间为4~60 s之间的随机值,这样可以使网络的负荷不会太大[3]。

假设报文由主时钟到从时钟所用的时间与报文由从时钟到主时钟所用的时间相同,则:

从式(1)和式(2)计算出主从时钟之间的 Delay和Offset,并根据此调整从设备的本地时钟,完成一次时间同步。

2 IEEE1588V2.0相对于IEEE1588V1.0的改进

因为IEEE1588V2.0在IEEE1588V1.0的基础上从同步原理、同步过程等方面作了改进,使得 V2.0不能向下兼容,所以V1.0和V2.0时钟不能直接进行同步。下面比较两个版本,主要介绍V2.0相对V1.0的一些重要改进。

2.1 增加点延时机制

V1.0提供延迟请求-响应机制,V2.0提供两种机制,延迟请求—响应机制和点延时机制,用于测量一对端口的平均路径延时[4]。与V1.0相比,增加了Pdelay_Req、Pdelay_Resp、Pdelay_Resp_Follow_Up、Announce和Signaling报文,如图2所示。

图2 点延时机制原理

点延时机制用于测量端口到端口的传输延时,如链路延时。此测量应在设备的所有端口中进行,包括被底层协议阻塞的端口。链路延时应独立地在各个端口之间进行。在普通及边界时钟中,点延时机制应根据该端口是主时钟还是从时钟而独立进行。

点延时机制操作步骤如下。

测量开始之后,端口A向被测端口B发送Pdelay_Req报文,记下发送时间t1,端口B在收到Pdelay_Req报文后记下接收时间t2。接着端口B发送Pdelay_Resp报文,记下发送时间t3,端口A在收到Pdelay_Resp报文后记下接收时间t4。端口 B之后将t3与t2的差值 Δt(Δ t=t3-t2)以Pdelay_Resp_Follow_Up报文的形式发送给端口A[2]。

从端口A到端口B的延时为:

从端口B到端口A的延时为:

假设从端口A到端口B的延时和从端口B到端口A的延时相等,即 tAB=tBA,则端口A与端口B之间的网络延时t为:

由式(3)、式(4)、式(5)得:

2.2 时间戳表示方法的改进

线路延时主要由通信栈和物理网络上传输的延时组成。NTP协议在应用层加入时间戳,由于通信栈软件的执行过程中不确定性很大,使通信栈延时的抖动相对较大,对同步精度产生了较大的影响。PTP协议将时间戳下移到MAC层以下,PHY层以上的MII处,有效地提高了精度,如图3所示[4]。

图3 PTP时钟同步模型(在MII处加入时间戳)

V1.0中时间戳的表示为:

Seconds表示时间戳的整秒部分,nanoseconds表示纳秒部分,PTP协议的纪元是1970年1月1日0点0分0秒,只能表示到2106年。

V2.0中时间戳的表示为:

secondsField表示时间戳的整秒部分, nanosecondsField表示纳秒部分, 纳秒的表示范围为0≤| nanosecondsField |≤109,并且,加入了一个新的数据类型——时间间隔数据类型[5]。

它是一个 64位有符号整型数,可以使时间分辨率达到纳秒的 1/216,提高了同步精度。

2.3 通明时钟模型的引入

大多数局域网的物理拓扑结构采用星形结构,当节点与节点通过边界时钟连接起来的时候,容易产生时间误差的累积。为了更好的解决这个问题,在 V2.0中引入了透明时钟模型。

透明时钟模型分为两种:端对端透明时钟模型和点对点透明时钟模型。这两种模型都是让通用报文正常通过,事件报文经过处理,将延迟时间累加到信息包的时间修正域中[6]。

端对端透明时钟:事件报文从主时钟发送到从时钟的过程中,端对端透明时钟接收端口到发送端口的延迟时间累加到时间修正域中。以同步报文为例,如图4所示。

图4 端对端透明时钟同步报文的传送

点对点透明时钟:它是专门针对点延时机制而建立的,能够自动测量每个端口与所连接端口间的平均网络传输延迟时间。事件报文从主时钟发送到从时钟的过程中,除了将报文在透明时钟内的滞留时间累加到修正域外,还将链路延时累加到修正域中。以同步报文为例,如图5所示。

2.4 其他方面的改进

V1.0基于 IEEE802.3 标准支持 UDP/IPV4协议。V2.0在支持原有协议的基础上,支持新的网络协议,如UDP/IPV6、PROFINET、DeviceNet/ControlNet 等。

V1.0采用双时钟同步模型,即发送Sync之后要接着发送Follow_Up,Follow_Up包含Sync发送的精确时间。V2.0增加了单步时钟模型,即在 Sync中直接包含了它本身发送的准确时间,不需要再发送一个跟随报文。

V1.0不支持报文信息扩展,V2.0通过TLV支持报文的信息扩展[7]。

3 结语

V2.0与V1.0相比,有了很大改进。提高了信息交换速率和同步精度,且具有较低的开销,易于实现,V2.0将会逐渐取代V1.0。当然,V2.0中也存在一些尚待进一步研究的问题,如主时钟容错性能,振荡器的稳定性对时钟的影响等,相信今后会更加完善,会有功能更强大,精度更高的新版本被开发出来。

[1] IEEE Std 1588™-2002.IEEE Standard for a precision Clock Synchronization Protocol for Networked Measurement and Control Systems[S].

[2] 戴宝峰,崔少辉,常健.IEEE1588最佳主时钟算法的分析与实现[J].仪表技术,2008(02):29-31,34.

[3] 赵红,周春福,张春,等.IEEE1588在混合网络中性能分析[J].通信技术,2010,43(10):89-91.

[4] IEEE Std 1588™-2008.IEEE Standard for a precision Clock Synchronization Protocol for Networked Measurement and Control Systems[S].

[5] 叶卫东,张润东.IEEE 1588精密时钟同步协议2.0版本浅析[J].测控技术,2010(02):1-4,15.

[6] John Eidson.IEEE1588 Version 2 Tutorial.[EB/OL].(2006-10-01)[2010-10-01].www.ieee802.org/1/files/.../as-garner-1588v2-summary-0908.pdf.

[7] 王璇,杜军.CE/PTN中时钟同步和实现的一种方法[J].通信技术,2009,42(02):88-90.

猜你喜欢

延时报文时钟
基于J1939 协议多包报文的时序研究及应用
别样的“时钟”
基于级联步进延时的顺序等效采样方法及实现
古代的时钟
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
日光灯断电关闭及自动延时开关设计
有趣的时钟
ATS与列车通信报文分析
时钟会开“花”