IEEE1588的一些基本概念
- 格式:docx
- 大小:508.61 KB
- 文档页数:23
IEEE_1588协议IEEE1588协议,也称为精密时钟同步协议,是一个用于实时系统中精确同步时钟的网络协议。
它的目标是提供亚微秒级的时钟同步精度,以满足高精度和高同步性能的实时应用需求。
IEEE1588协议主要用于工业自动化、电力系统、通信系统等领域,能够实现在分布式系统中所有时钟设备之间的同步。
IEEE 1588协议的原理是基于主从模式,其中一个设备是主时钟(Master Clock),该设备通过发送同步消息来广播时间信息,其他设备则是从时钟(Slave Clock),它们通过接收同步消息来校正自身的时钟。
主从模式可以实现网络中所有设备的时间同步,但是主时钟设备需要提供高精准的参考时钟。
IEEE1588协议的消息格式如下:1. Sync消息(同步消息):主时钟设备通过此消息广播时间信息,从时钟设备通过解析此消息来校正自身的时钟。
2. Delay_Req消息(延迟请求消息):从时钟设备通过向主时钟设备发送此消息来计算时钟矫正的延迟。
3. Follow_Up消息(跟随消息):主时钟设备通过此消息回复Delay_Req消息,包含时钟矫正延迟的信息。
4. Delay_Resp消息(延迟响应消息):主时钟设备通过此消息回复Delay_Req消息,包含时钟矫正延迟的信息。
5. PDelay_Req消息(精确延迟请求消息):用于测量主从时钟之间的延迟。
6. PDelay_Resp消息(精确延迟响应消息):用于回复PDelay_Req消息,包含主从时钟之间的延迟信息。
7. Announce消息(通告消息):用于通知网络中的设备主时钟的更改。
IEEE 1588协议的核心算法是时钟同步算法,该算法通过计算往返时延(Round-Trip Delay)来实现时钟同步。
往返时延包括主时钟设备发送Sync消息到从时钟设备接收到Follow_Up消息的时间,以及从时钟设备收到Delay_Resp消息到主时钟设备接收到的时间。
IEEE1588协议简介IEEE1588协议,又称PTP(precise time protocol,精确时间协议),可以达到亚微秒级别时间同步精度,于2002年发布version1,2008年发布version2。
IEEE1588协议的同步原理,所提出的Delay Request-Response Mechanism(延时响应机制)如图1所示。
图1 PTP协议延迟响应机制图中所描述的PTP报文为以下几种:(1)sync同步报文(2)Follow_up跟随报文(3)Delay_req延迟请求报文(4)Delay_resp延迟请求响应报文延迟响应同步机制的报文收发流程:1.主时钟周期性的发出sync报文,并记录下sync报文离开主时钟的精确发送时间t1;(此处sync报文是周期性发出,可以携带或者不携带发送时间信息,因为就算携带也只能是预估发送时间戳originTimeStamp)2.主时钟将精确发送时间t1封装到Follow_up报文中,发送给从时钟;(由于sync报文不可能携带精确的报文离开时间,所以我们在之后的Follow_up报文中,将sync 报文精确的发送时间戳t1封装起来,发给从时钟)3.从时钟记录sync报文到达从时钟的精确时到达时间t2;4.从时钟发出delay_req报文并且记录下精确发送时间t3;5.主时钟记录下delay_req报文到达主时钟的精确到达时间t4;6.主时钟发出携带精确时间戳信息t4的delay_resp报文给从时钟;这样从时钟处就得到了t1,t2,t3,t4四个精确报文收发时间。
时钟偏差&网络延时offset:时钟间偏差(主从时钟之间存在时间偏差,偏离值就是offset,图1中主从时钟之间虚线连接时刻,就是两时钟时间一致点)delay:网络延时(报文在网络中传输带来的延时)从时钟可以通过t1,t2,t3,t4四个精确时间戳信息,得到主从时钟偏差offset和传输延时delay:从时钟得到offset和delay之后就可以通过修正本地时钟进行时间同步。
IEEE1588的一些基本概念1PTP系统(from 6.3) (2)2PTP报文类别(from 6.4) (2)3PTP设备类型(from 6.5) (3)4同步概况(from 6.6) (4)5PTP的epoch(from 7.1) (6)6通信路径非对称性(from 7.4) (7)7延迟问答机制Delay request-response mechanism(from 11.3) (8)8Peer 延时机制Peer delay mechanism(from11.4) (9)9PTP报文格式(from 13) (10)101588组播地址 (13)IEEE1588标准的全称是“网络测量和控制系统的精密时钟同步协议标准(IEEE 1588 Precision Clock Synchronization Protocol)”,简称PTP(Precision Timing Protocol),它的主要原理是通过一个同步信号周期性的对网络中所有节点的时钟进行校正同步,可以使基于以太网的分布式系统达到精确同步,IEEE 1588PTP时钟同步技术也可以应用于任何组播网络中。
参考标准及网上其他文章,一些总结或翻译的基本概念:1PTP系统(from 6.3)一个PTP系统是一个分布式的网络系统,它是由PTP设备和一部分非PTP设备组成。
PTP设备包括普通时钟(ordinary clocks),边界时钟(boundary clocks),端对端时钟(end-to-end transparent clocks),点对点时钟(peer-to-peer transparent clocks)和管理节点。
非PTP设备包括网桥,路桥及其他基础结构设备,也可能包括计算机,打印机和其他应用设备。
2PTP报文类别(from 6.4)PTP定义了事件和通用PTP两种报文,事件报文(event message)需要打上精确的时间戳(timestamp),通用报文(general message)不需要精确的时间戳。
IEEE1588协议IEEE 1588协议是一种用于时钟同步的网络通信协议,其全称为"Precision Clock Synchronization Protocol for Networked Measurement and Control Systems"。
该协议是由IEEE所制定的,旨在解决分布式系统中设备时钟同步问题。
在分布式系统中,设备之间的时钟同步是至关重要的。
准确的时钟同步能够确保系统中的各个设备在不同节点上以一致的时间进行操作,从而实现更可靠的协调和协同工作。
此外,在一些需要严格时间同步的应用领域,如工业自动化、电力系统等,时钟同步则是成功实现系统任务的基础。
传统的时钟同步方法中,基于GPS(Global Positioning System)的时间同步方案是一种常见的解决方法。
然而,GPS无法完全适用于所有场景,尤其是对于移动设备、室内场景等。
IEEE 1588协议的出现,则为这类应用场景的时钟同步问题提供了有效的解决方法。
IEEE 1588协议基于主从(Slave)的建模方式,其中主时钟(Master Clock)负责向从时钟(Slave Clock)广播时钟信号。
具体而言,协议通过周期性发送时间戳消息来实现主从时钟之间的同步。
在主时钟发送时间戳消息时,从时钟会接收该消息,并通过与其内置的本地时钟进行比较,进而进行时钟校正。
这样,从时钟就可以根据主时钟的参考进行同步,从而实现各个设备间的时钟同步。
IEEE 1588协议定义了两个核心消息:Sync(同步)和Delay_Req(延迟请求)。
Sync消息用于主时钟广播当前的时间信息,而Delay_Req消息用于从时钟向主时钟请求延迟信息。
协议还提供了一些附加消息,如Follow_Up(回应)、Delay_Resp(延迟回应)和Pdelay_Req(对称延迟请求),用于进一步优化时钟同步过程。
除了时钟同步外,IEEE 1588协议还提供了一种高级特性,即时钟精度统计(Clock Accuracy Estimation)。
1588协议1588协议是一种用于精确时间同步的网络协议,广泛应用于工业自动化领域,以及其他需要对网络设备进行时间同步的应用场景。
该协议由IEEE(Institute of Electrical and Electronics Engineers)提出,并于2008年正式发布。
1588协议主要用于解决网络设备之间的时钟同步问题。
在许多实时应用场景中,如电力系统、工业控制等,设备之间的时钟同步至关重要。
而1588协议通过网络中的时间同步客户端和时间同步服务器之间的协作,使网络设备能够达到亚微秒级的时钟同步精度。
1588协议的基本工作原理是在网络中定义一个主时钟(Master Clock)和多个从时钟(Slave Clock),主时钟提供准确的时间信号,从时钟根据主时钟的时间信号进行同步。
主时钟和从时钟通过1588协议进行通信,主要包括消息的传输和同步算法。
1588协议的消息传输基于以太网,具体采用了一种称为“半透明时间戳”的技术。
该技术通过在以太网数据帧中添加时间戳信息,实现对数据帧的时间戳同步。
使用半透明时间戳技术,可以消除网络延迟对时钟同步精度的影响,提高同步性能。
1588协议的同步算法主要分为两个阶段,首先是粗同步(Coarse Synchronization),然后是精细同步(Fine Synchronization)。
粗同步阶段主要用于快速同步从时钟的相对时间,通过对主时钟发出的时间同步消息进行计算来实现。
在精细同步阶段,从时钟通过与主时钟的时间差进行反馈,逐步调整自己的时钟频率和相位,实现对主时钟信号的精确同步。
1588协议还支持多个从时钟同时同步的场景,可以通过对从时钟进行分级管理,组织多级时间同步网络。
每一级的从时钟都可以同步上一级的主时钟,实现全局的时间同步。
总之,1588协议是一种通过网络实现设备时钟同步的协议,具有高精度、高性能的特点。
在工业自动化领域,该协议被广泛应用于实时控制系统、电力系统等场景。
IEEE1588的一些基本概念IEEE1588的一些基本概念1PTP系统(from 6.3) (4)2PTP报文类别(from 6.4) (5)3PTP设备类型(from 6.5) (6)4同步概况(from 6.6) (9)5PTP的epoch(from 7.1) (13)6通信路径非对称性(from 7.4) (14)7延迟问答机制Delay request-response mechanism(from 11.3) (16)8Peer 延时机制Peer delay mechanism (from11.4) (18)9PTP报文格式(from 13) (20)101588组播地址 (23)IEEE1588标准的全称是“网络测量和控制系统的精密时钟同步协议标准(IEEE 1588 Precision Clock Synchronization Protocol)”,简称PTP(Precision Timing Protocol),它的主要原理是通过一个同步信号周期性的对网络中所有节点的时钟进行校正同步,可以使基于以太网的分布式系统达到精确同步,IEEE 1588PTP时钟同步技术也可以应用于任何组播网络中。
参考标准及网上其他文章,一些总结或翻译的基本概念:1PTP系统(from 6.3)一个PTP系统是一个分布式的网络系统,它是由PTP设备和一部分非PTP设备组成。
PTP设备包括普通时钟(ordinary clocks),边界时钟(boundary clocks),端对端时钟(e nd-to-end transparent clocks),点对点时钟(p eer-to-peer transparent clocks)和管理节点。
非PTP设备包括网桥,路桥及其他基础结构设备,也可能包括计算机,打印机和其他应用设备。
2PTP报文类别(from 6.4)PTP定义了事件和通用PTP两种报文,事件报文(event message)需要打上精确的时间戳(timestamp),通用报文(general message)不需要精确的时间戳。
事件报文包括:SyncDelay_ReqPdelay_ReqPdelay_Resp通用报文包括:AnnounceFollow_UpDelay_RespPdelay_Resp_Follow_UpManagementSignalingSync, Delay_Req, Follow_Up和Delay_Resp 通过应答机制(delay request-response mechan ism)用于产生和通信用于同步普通时钟和边界时钟的时间信息。
Pdelay_Req, Pdelay_Resp和Pdelay_Resp_F ollow_Up通过peer延时机制(peer delay mec hanism)用于测量两个时钟port之间的链接延时。
链接延时被用来更正在Sync和Follow_Up 报文中的时间信息。
Annouce用于建立同步层次关系。
Management用于查询和更新时钟所维护的P TP数据集。
Signaling用于其他的目的,例如在主从之间协调单播报文的发送频率。
3PTP设备类型(from 6.5)包括:a) Ordinary clock 普通时钟一个普通时钟通过基于一个物理端口上的两个逻辑接口在网络上通信。
事件接口用于发送和接收事件报文,通用接口用于发送和接受通用报文。
在一个PTP的域内,普通时钟只能处于唯一的一种状态,可以是主钟,也可以是从钟。
一个普通时钟维护两种类型的数据集:时钟数据集和端口数据集。
协议引擎负责:发送和接受PTP报文,维护数据集,执行与端口关联的状态机,根据接收到的PTP时间报文和产生的时间戳计算主机时间(如果端口处于从状态)。
b) Boundary clock 边界时钟边界时钟通常会有多个物理端口,每个物理端口有两个逻辑接口:时间和通用。
边界时钟的每个端口与普通时钟基本一致,除了:边界时钟所有的端口的时钟数据集是公用的,公用一个本地时间。
每个协议引擎会有额外的功能来解析所有端口的状态,从而决定哪个端口用来提供时间信号来同步本地时钟。
c) End-to-end transparent clock 端对端透明时钟端对端透明时钟象一个普通的桥、路由器或中继器那样转发所有的报文。
但对于PTP事件报文,resident time bridge会测量PTP事件报文的停留时间(esidence times:报文穿越透明时钟所需要的时间)。
这个时间会写入到这个PTP事件报文或者其后续follow up报文(Follow_Up 或者Pdelay_Resp_Follow_Up)的特定字段中(correctionField)。
这个更正值是基于事件报文进入和离开透明时钟时的时间戳的差值。
d) Peer-to-peer transparent clock点对点透明时钟点对点透明时钟与端对端透明时钟主要区别在于它更正和处理PTP时间报文的方式,除此以外,两者是一样的。
点对点透明时钟对于每一个端口有一个额外的模块,这个模块用来计算每个端口和与它分享这条链接的另一端(也要支持点对点透明时钟)的链路延时。
这个链路的延时计算是基于与其链路端交换Pdelay_Req,Pdelay_Resp和可选的Pdelay_Resp_Follow_Up报文过程的。
端对端透明时钟是更正所有的PTP Event 时间报文,而点对点只更正Sync和Follow_Up报文,因为延时已经确定了。
这些报文中的correctionField字段会被Sync报文的Residence时间和链路延时时间更新。
由于链路之间的延时已经包含在correctionField中,所以点对点透明时钟中的Master时钟不用对每个slave时钟的Delay_Req 作出回应。
e) Management node有一条或者多条物理链接到网络上;作为一个通向PTP管理报文的人机或编程接口;可以与任何时钟类型组合。
4同步概况(from 6.6)建立主从层次关系:在一个域中,普通时钟和边界时钟的每个端口都有一个独立的协议状态机,每个端口检查其接受到的所有的Annouce报文,利用最佳主时钟算法(Best Master Clock,BMC),决定时钟端口的状态:Master,Slave还是Passive。
最佳主时钟算法通过比较描述两个时钟的数据来决定哪个数据描述了更好的时钟。
这个算法有两个分离的算法组成:数据集比较算法和状态决定算法。
数据集比较算法是基于相关属性的逐队比较的,这些属性包括有:priority1, clockClass, clockAccurary, offsetScaledLogVariance, priority2, clockIdentity.状态决定算法依据数据集比较算法的结果决定该端口的下一个状态。
普通时钟和边界时钟的同步:基本的同步报文交换过程:报文交换过程:1. Master发送Sync报文,记下该报文的本地发送时间t1。
2. Slave接收到Sync报文,并记下其接收到该报文的本地时间t2。
3. Master有两种方式告诉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的平均值)计算的前提是假设主钟到从钟和从钟到主钟的时延是相同的。
Offset=t2-t1Meanpathdelay=((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_Resp_Follow_Up 报文中分别返回t2和t3。
Port-1:接收到Pdelay_Resp后,记下时间t4。
利用这四个时间可以计算平均链路延时。
Meanpathdelay=((t2 - t1) + (t4 - t3))/2如果链路传输不对称会引起链路传输延时误差。
5PTP的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)<meanPathDelay>,delayAsymmetry<meanPathDelay> = (tms + tsm)/2tms = <meanPathDelay> + delayAsymmetry, tsm = <meanPathDelay> ─ delayAsymmetry.delayAsymmetry的测量不在这个标准范围内。
普通时钟和边界时钟的offset计算(from 11.2)对于单步的时钟,即只有sync没有follow up报文,slave做如下计算<offsetFromMaster> = <syncEventIngressTimestamp> ─ <or iginTimestamp> ─<meanPathDelay> ─ correctionField of Sync message.对于两步的时钟,即sync和follow up报文都有,slave做如下计算<offsetFromMaster> = <syncEventIngressTimestamp> ─ <preciseOriginTimestamp> ─<meanPat hDelay> ─ correctionField of Sync message ─ correctionField of Follow_Up message.这里,offsetFromMaster是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两种机制来计算。