1、IEEE1588的一些基本概念 IEEE1588的一些基本概念IEEE1588标准的全称是“网络测量和控制系统的精密时钟同步协议标准(IEEE 1588 Precision Clock Synchronization Protocol)”,简称PTP(Precision Timing Protocol),它的主要原理是通过一个同步信号周期性的对网络中所有节点的时钟进行校正同步,可以使基于以太网的分布式系统达到精确同步,IEEE 1588PTP时钟同步技术也可以应用于任何组播网络中。参考标准及网上其他文章,一些总结或翻译的基本概念:1 PTP系统(from 6.3)一个PTP系统是一个分布式的网
2、络系统,它是由PTP设备和一部分非PTP设备组成。PTP设备包括普通时钟(ordinary clocks),边界时钟(boundary clocks),端对端时钟(end-to-end transparent clocks),点对点时钟(peer-to-peer transparent clocks)和管理节点。非PTP设备包括网桥,路桥及其他基础结构设备,也可能包括计算机,打印机和其他应用设备。2 PTP报文类别(from 6.4)PTP定义了事件和通用PTP两种报文,事件报文(event message)需要打上精确的时间戳(timestamp),通用报文(general message)
3、不需要精确的时间戳。事件报文包括: Sync Delay_Req Pdelay_Req Pdelay_Resp 通用报文包括:Announce Follow_Up Delay_Resp Pdelay_Resp_Follow_Up Management Signaling Sync, Delay_Req, Follow_Up和Delay_Resp通过应答机制(delay request-response mechanism)用于产生和通信用于同步普通时钟和边界时钟的时间信息。Pdelay_Req, Pdelay_Resp和Pdelay_Resp_Follow_Up通过peer延时机制(peer
4、delay mechanism)用于测量两个时钟port之间的链接延时。链接延时被用来更正在Sync和Follow_Up报文中的时间信息。Annouce用于建立同步层次关系。Management用于查询和更新时钟所维护的PTP数据集。Signaling用于其他的目的,例如在主从之间协调单播报文的发送频率。3 PTP设备类型(from 6.5)包括:a) Ordinary clock 普通时钟一个普通时钟通过基于一个物理端口上的两个逻辑接口在网络上通信。事件接口用于发送和接收事件报文,通用接口用于发送和接受通用报文。在一个PTP的域内,普通时钟只能处于唯一的一种状态,可以是主钟,也可以是从钟。
5、一个普通时钟维护两种类型的数据集:时钟数据集和端口数据集。 协议引擎负责:发送和接受PTP报文,维护数据集,执行与端口关联的状态机,根据接收到的PTP时间报文和产生的时间戳计算主机时间(如果端口处于从状态)。b) Boundary clock 边界时钟边界时钟通常会有多个物理端口,每个物理端口有两个逻辑接口:时间和通用。边界时钟的每个端口与普通时钟基本一致,除了:边界时钟所有的端口的时钟数据集是公用的,公用一个本地时间。每个协议引擎会有额外的功能来解析所有端口的状态,从而决定哪个端口用来提供时间信号来同步本地时钟。c) End-to-end transparent clock 端对端透明时钟端
6、对端透明时钟象一个普通的桥、路由器或中继器那样转发所有的报文。但对于PTP事件报文,resident time bridge会测量PTP事件报文的停留时间(esidence times:报文穿越透明时钟所需要的时间)。这个时间会写入到这个PTP事件报文或者其后续 follow up报文(Follow_Up或者Pdelay_Resp_Follow_Up)的特定字段中(correctionField)。这个更正值是基于事件报文进入和离开透明时钟时的时间戳的差值。d) Peer-to-peer transparent clock点对点透明时钟点对点透明时钟与端对端透明时钟主要区别在于它更正和处理PT
7、P时间报文的方式,除此以外,两者是一样的。 点对点透明时钟对于每一个端口有一个额外的模块,这个模块用来计算每个端口和与它分享这条链接的另一端(也要支持点对点透明时钟)的链路延时。这个链路的延时计算是基于与其链路端交换Pdelay_Req,Pdelay_Resp和可选的Pdelay_Resp_Follow_Up报文过程的。端对端透明时钟是更正所有的PTP Event 时间报文,而点对点只更正Sync和Follow_Up报文,因为延时已经确定了。这些报文中的correctionField字段会被Sync报文的 Residence时间和链路延时时间更新。由于链路之间的延时已经包含在correctio
8、nField中,所以点对点透明时钟中的Master时钟不用对每个slave时钟的Delay_Req作出回应。e) Management node有一条或者多条物理链接到网络上;作为一个通向PTP管理报文的人机或编程接口;可以与任何时钟类型组合。4 同步概况(from 6.6)建立主从层次关系:在一个域中,普通时钟和边界时钟的每个端口都有一个独立的协议状态机,每个端口检查其接受到的所有的Annouce报文,利用最佳主时钟算法(Best Master Clock,BMC),决定时钟端口的状态:Master,Slave还是Passive。 最佳主时钟算法通过比较描述两个时钟的数据来决定哪个数据描述了
9、更好的时钟。这个算法有两个分离的算法组成:数据集比较算法和状态决定算法。数据集比较算法是基于相关属性的逐队比较的,这些属性包括有:priority1, clockClass, clockAccurary, offsetScaledLogVariance, priority2, clockIdentity.状态决定算法依据数据集比较算法的结果决定该端口的下一个状态。普通时钟和边界时钟的同步:基本的同步报文交换过程:报文交换过程:1. Master发送Sync报文,记下该报文的本地发送时间t1。2. Slave接收到Sync报文,并记下其接收到该报文的本地时间t2。3. Master有两种方式告诉
10、Slave该Sync报文的发送时间t1。 1) 将t1时间嵌入到Sync报文中,这需要某种硬件处理以获得高精度。 2)在后续的Follow_Up报文中发送4. Slave发送Delay_Req报文往Master,并记下发送时间t3。5. Master接收到Delay_Req,并记下该报文到达时间t4。6. Master发送Delay_Resp报文告知Slave t4。利用这四个时间可以算出从钟与主钟之间的offset,以及两个钟之间的平均延时,(如上图即为t-ms and t-sm的平均值 )计算的前提是假设主钟到从钟和从钟到主钟的时延是相同的。Offsett2-t1Meanpathdelay
11、=(t2 - t1) + (t4 - t3)/2在支持peer-to-peer路径更正中测量连接延时:这里没有主从之分Port-1:发送一个Pdelay_Req报文,并记下该时间t1。Port-2:接收到Pdelay_Req报文,记下接收时间t2,然后返回一个Pdelay_Resp报文,记下该报文的发送时间t3。(收到报文到发送报文的时间间隔要尽可能的短以减小由于两个端口之间的频率偏移引起的误差。)然后Port-2可以:1. 在Pdelay_Resp中返回t2和t3的差值。2. 在Pdelay_Resp_Follow_Up报文中返回t2和t3的差值。3. 在Pdelay_Resp和Pdelay
12、_Resp_Follow_Up报文中分别返回t2和t3。Port-1:接收到Pdelay_Resp后,记下时间t4。利用这四个时间可以计算平均链路延时。Meanpathdelay=(t2 - t1) + (t4 - t3)/2如果链路传输不对称会引起链路传输延时误差。5 PTP的epoch(from 7.1)epoch时间起源PTP epoch is 1 January 1970 00:00:00 TAI, 也就是 31 December 1969 23:59:51.999918 UTC. 6 通信路径非对称性(from 7.4),delayAsymmetry = (tms + tsm)/2t
13、ms = + delayAsymmetry,tsm = delayAsymmetry. delayAsymmetry的测量不在这个标准范围内。普通时钟和边界时钟的offset计算(from 11.2)对于单步的时钟,即只有sync没有follow up报文,slave做如下计算 = correctionField of Sync message.对于两步的时钟,即sync和follow up报文都有,slave做如下计算 = correctionField of Sync message correctionField of Follow_Up message.这里,offsetFromMas
14、ter是slave与master的时间偏移,syncEventIngressTimestamp即slave收到的时间t2, originTimestamp是master发给slave sync报文自带的时间信息源t1,preciseOriginTimestamp master发给slave follow up报文自带的时间信息源t1 meanPathDelay 即平均路径延时,可以通过the Delay request-response mechanism和 the peer delay mechanism两种机制来计算。7 延迟问答机制Delay request-response mecha
15、nism(from 11.3)1)如果只收到sync报文, = (t2 - t3) + (receiveTimestamp of Delay_Resp message originTimestamp of Sync message) correctionField of Sync message correctionField of Delay_Resp message/2. 2) 如果收到sync报文及Follow up报文, = (t2-t3) + (receiveTimestamp of Delay_Resp message preciseOriginTimestamp of Follo
16、w_Up message) correctionField of Sync message correctionField of Follow_Up message correctionField of Delay_Resp message/2.8 Peer 延时机制Peer delay mechanism(from11.4)3) 如果只有Pdelay_Resp 报文 = (t4 t1) correctionField of Pdelay_Resp/2 4) 如果有 Pdelay_Resp和Pdelay_Resp_Follow_Up = (t4 t1) (responseOriginTimes
17、tamp requestReceiptTimestamp) correctionField of Pdelay_Resp correctionField of Pdelay_Resp_Follow_Up/29 PTP报文格式(from 13) 图一 通用报文头1, transprotSpecific(半个字节)2, messageTYPE3, versionPTP (UInteger4)PTP版本号4, messageLength报文长度5, domainnuamer 域6,flag7, 7 correctionField8 sourcePortIdentity9 sequenceId 10 controlField11 logMessageInterval10 1588组播地址
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1