基于IEEE1588的高精度时间同步技术分析与性能测试
2019-12-23郑翊
郑 翊
(中国电子科学研究院,北京 100041)
0 引 言
电子信息时代网络化、智能化飞速发展,系统各个节点之间对时间同步的需求也日益增高,为统一各系统间的时间基准,许多时钟同步协议应运而生。“精密时钟同步协议标准” IEEE1588(IEEE standard for a precision clock synchronization protocol)作为新的时间同步标准[1],可以实现物理层的时间同步,IEEE1588标准采用PTP (Precision Time Protocol)精密时钟同步协议,其精度可达亚微秒级别。
系统中各设备之间通信传输和各类事件的执行顺序都需要精确的时间同步,才可以准确完成各项指令和任务,因此在以太网传输系统中增加时间同步、时间触发等服务,来满足系统的实时性需求。
网络时间协议NTP(Network Time protocol)是当前网络中应用最广泛的同步协议,NTP协议采用在应用层获取报文时间戳的方式,可以提供百毫秒级的时间同步精度[2],NTP协议通过估算往返路由的时延差来缩小误差,该协议通过在互联网上指定多个时钟源来对整个系统进行授时,精度虽然可达毫秒级别,却难以满足对时间精度有更高需求的传输网络。
PTP协议报文相对于NTP协议而言能获得亚微秒级的时间同步精度,精度更高,PTP协议的时间戳加在物理层,其根本目的是在靠近网口的位置记录时间标记,保证写入的时钟速率与接收的时钟速率在同一个误差范围内,从而降低信号传输的频率偏移,来保证数据的正确传送和处理[3]。PTP协议设计用于精确同步分布式网络通信中各个节点的实时时钟,其基本构思为通过硬件和软件将网络设备的内时钟与主控机的主时钟实现同步。PTP较NTP占用更少的网络资源,同时具有和以太网兼容的特性,因此更适合在通过以太网传输的通信系统中使用。
1 PTP协议原理
1.1 PTP时间同步过程
IEEE1588标准的目的是为了精确地把网络系统中分散、独立运行的时钟同步起来,IEEE1588系统中包括多个节点,各节点通过网络相连接。在以太网中采用PTP技术首先是要形成一个主时钟(master)和多个从时钟(slave)的架构,将系统按主从关系建立起来,系统中最精确的时钟(即主时钟)通过传输PTP协议报文来同步所有节点(即从时钟)的时间,通过主从设备间传递PTP报文来计算时间偏移(Offset)和路径时延(Delay),最终实现整个系统的时间同步[4]。
PTP系统的特点是主从时钟之间传递消息遵循唯一路径原则,在主从时钟之间通过交换已经定义好的报文来实现时间同步,这些报文在物理层被打上时间戳,用以计算时间偏移和路径时延,具体原理如图1所示:
图1 PTP协议同步过程
PTP协议主从设备之间报文传递过程为:
(1)t1时刻主时钟发送时间同步(sync message)报文,该报文带t1时刻信息,t1的时刻值由Master通过MAC层以下的逻辑直接填充;
(2)t2时刻从时钟接收到sync message报文;
(3)t3时刻从时钟发送延迟请求(Delay Req message)报文;
(4)t5时刻主时钟发送延迟请求响应(Delay Resp message)报文,带t4时刻信息。
通过PTP报文传递过程可进一步计算出时间偏移和路径时延:
(1)t2-t1=Delay-Offset
(2)t4-t3=Delay+Offset
(3)Offset=((t4-t3)-(t2-t1))/2
(4)Delay=((t4-t3)+(t2-t1))/2
在理想环境下网络延迟是对称的,通过计算时间偏移和延迟请求响应得出时间同步精度,同时也是实现时间同步的过程。
1.2 PTP精度影响因素以及时钟模型修正
与理想情况相比较,实际环境中对时间同步精度产生影响的主要因素是:
(1)PTP协议是通过PTP报文传递来实现的,传递过程中存储转发设备的延迟会对同步精度产生影响;
(2)主、从时钟之间的网络延时不完全对称会对同步精度产生影响;
(3)另外,系统中时钟本身的漂移也会对同步精度产生影响。
这些对时间同步精度产生的影响因素可以通过时钟模型来进行修正, PTP时钟模型主要包括普通时钟(OC)、边界时钟(BC)和透明时钟(TC)[5]。
(1)普通时钟
普通时钟模型最显著的特点是各个系统节点某一时刻只能充当主时钟或者从时钟,当某个系统节点作为主时钟的时候,可作为系统中最精确的时钟源与外界时钟进行同步;当某个系统节点作为从时钟的时候,则与系统主时钟进行时间同步。各节点设备作为普通时钟时只有一个端口可作为通信接口与各节点开展报文交换,普通时钟模型对应于系统中的时钟源。
(2)边界时钟
边界时钟与普通时钟最大的区别在于可以允许多个端口同时开展时间同步,这些端口共享同一个本地时钟,并且边界时钟既可以充当主时钟也可以充当从时钟。边界时钟模型相当于对时过程中的中继,既可以恢复时钟又可以作为时钟源向下传递时间,边界时钟对应于系统中的中间网络节点。
(3)透明时钟
透明时钟可以校正主、从时钟之间的延迟,但透明时钟本身不恢复时间和频率,只是对同步报文进行转发。透明时钟通过记录PTP报文传输时的时间戳来计算出时延,从而进行修正。系统网络中自身不需要时钟同步的设备(诸如配合处理PTP报文的设备等)可以使用透明时钟逻辑模型。
2 PTP协议实现模型
2.1 测试平台搭建
本文通过搭建PTP测试平台来测试PTP协议在实际以太网传输过程中所能达到的精度,测试设备包括PTP测试平台、以太网背景流量注入设备、千兆以太网交换机、IEEE1588测试设备和示波器。PTP测试平台硬件使用的是PHY芯片DP83867,在物理层加时间戳,并且PTP测试平台分Master和Slave两种状态,Master状态试验件具备PTP主节点功能,同时也具备PTP从节点功能;Slave状态试验件具备PTP从节点功能,能够通过以太网与PTP主节点交换符合PTP协议的报文,实现自身时间对PTP主节点时间的跟踪。该环境下除包含PTP协议功能的设备之外的配试设备包括以太网背景流量注入设备,用以生成不同程度的流量,模拟近似真实情况下的网络;千兆以太网交换机用以模拟网络中经过交换设备对同步精度的影响;通过IEEE1588测试设备来测量主时钟和从时钟之间的时间差;最后通过示波器来观测实验结果。具体测试环境如图所示。
图2 IEEE1588测试环境
2.2 测试过程
通过对PTP时间同步原型的设计,具体测试过程如下:
(1)按照图2搭建测试环境;
(2)启动以太网背景流量注入设备,测试模式选择“IEEE1588”,点击启动测试按钮,以从节点为目的地址通过以太网接口注入背景数据流,模拟多种典型网络背景流量(分别采用615 Mbps、305 Mbps、744 Mbps、 606 Mbps、612 Mbps等,具体设置情况见表1);
(3)主节点已上电工作,从节点加电,等待从节点指示与主节点锁定;
(4)从节点指示与主节点锁定后,利用示波器“延迟测量”功能,每1~2 s读取一次主节点输出1PPS上升沿与从节点输出1PPS上升沿之间的时间差,共测量10次,求均方根用以形成同步精度测试结果;
(5)主节点保持上电工作、从节点断电;
(6)重复第1至第5步骤对不同以太网包长(分别采用64 B、256 B、512 B和1024 B以太网包长)情况下的时间同步进行测试,使用示波器观测时间同步效果。
2.3 时钟校正与算法
在该实验当中PTP主节点和PTP从节点相当于系统中对时的发起端和接收端,主从时钟之间传输延迟的一致性对系统精度起着至关重要的作用,当系统中存在诸如交换机等网络设备时,会对传输路径的对称性产生影响,该实验中的交换机就给对时精度带来了一定影响,因此,在该试验当中PTP协议采用透明时钟(TC)模型用以解决报文在中间站点驻留引起的时延问题,消除网络设备内部的时延不确定性。
表1 测试背景流量注入情况
为避免同时出现多个时钟源或者没有时钟源,试验过程中采用了最佳主时钟BMC(Best Master Clock)算法。BMC算法的原理是各端口定期发送报文来通告时钟信息,每单板上的各端口收到时钟信息,得出这个单板的最佳时钟源,时钟板比较各单板选出的最佳时钟源后最终选择出一个并下发给各端口进行同步,同时,根据最佳时钟源和其它相关信息,BMC算法和端口状态机共同决定出端口的状态[6]。BMC算法通过报文宣告各端口上的时钟源信息,通过维护本地获得的时钟数据组,按严格时钟等级选择出最佳时间源,并确定端口状态。该算法对整个网络的时钟生成时钟树,产生不同等级的主从关系,从时钟同步主时钟,从而消除时钟环路。
3 PTP协议测试结果分析
通过上述试验测得PTP协议在不同以太网包长度下的性能,测试结果如下表所示。
当以太网包长为64 B时测试结果如表2所示(测试剖面1、测试剖面2是分别基于表1中测试剖面1、测试剖面2的包长度和数据率的前提):
当以太网包长为256 B时测试结果如表3所示(测试剖面3、测试剖面4是分别基于表1中测试剖面3、测试剖面4的包长度和数据率的前提):
表2 以太网包长64 B时测试结果
表3 以太网包长256 B时测试结果
当以太网包长为512B时测试结果如表4(测试剖面5是基于表1中测试剖面5的包长度和数据率的前提):
表4 以太网包长512B时测试结果
当以太网包长为1024 B时测试结果如表5(测试剖面6是基于表1中测试剖面6的包长度和数据率的前提):
表5 以太网包长1024 B时测试结果
从使用角度考虑,用户对于PTP最关注的两项指标之一是对时精度,对时精度可以从试验测试结果的RMS数据得出结论;另外一项指标是失锁率,即PTP对时机制在使用过程中的稳定性,可以从试验测试结果的标准差数据得出结论。对表2~表5中的RMS值和标准差值进行分析可以得出以下结论:
(1)时间同步精度与注入的背景数据流包长度、有效数据率相关性显著:相同包长度条件下,有效数据率越大,主从节点同步精度越差。
在以太网包长为64 B情况下,表2中测试剖面1是基于615 Mbps的数据率来开展测试的,而试剖面2是基于305 Mbps的数据率,对比表2中测试剖面1和测试剖面2的测试结果,可以看出测试剖面1情况下的RMS值明显高于测试剖面2情况下的RMS值,即测试剖面2情况下的同步精度优于测试剖面1情况下的同步精度。在以太网包长为256 B情况下,对比表3中测试剖面3和测试剖面4也可以得到同样的结论。
(2)保持锁定的能力与注入的背景数据流包长度、有效数据率相关性显著:相
同包长度条件下,有效数据率越大,主从节点失锁的概率越大。
在以太网包长为64 B情况下,表2中测试剖面1是基于615 Mbps的数据率来开展测试的,而试剖面2是基于305 Mbps的数据率,对比表2中测试剖面1和测试剖面2的测试结果,可以看出测试剖面1情况下的失锁次数多于测试剖面2情况下的失锁次数(在实验中RMS值大多稳定在300 μs左右,RMS值明显高于500 μs 即被视为失锁)。在以太网包长为256 B情况下,对比表3中测试剖面3和测试剖面4也可以得到同样的结论。
(3)在实验中的典型网络流量条件下,主从节点可保持稳定同步,排除表2~表5中的几处失锁情况之外,由测试数据可以看出:同步精度优于359.5 μs,抖动优于37.9 μs。
(4)按照IEEE 802.3以太网协议,相同有效数据率情况下,包长度越短,发包数量越多、传输效率越低、由交换机引入的传输延时不确定性越大,对主从节点时间同步的综合性能影响也就越大。
对比表2和表3、表4、表5测试数据可知,在包长度64 B、有效数据率大于600 Mbps的极端情况下,主从节点锁定后同步精度显著变差、失锁概率显著变大,当网络规划中包长度设置在256 B以上时主从节点时间同步的综合性能相对稳定。
4 结 语
在以太网标准中没有定义发送端时钟与接收端恢复出来的时钟关系,缺乏全网时钟同步机制,采用IEEE 1588协议可以在以太网上进行时钟同步。本文针对以太网数据传输时高精度对时的需求,对IEEE 1588协议进行了深入的分析,开发了基于IEEE 1588协议的PTP时钟节点的设计,搭建了测试平台,以PTP时钟节点作为同步系统的核心组成,验证了PTP协议在以太网传输环境下的性能,对PTP时间同步误差来源进行了分析并采取了误差补偿措施,将时间同步提高到了亚微秒级。