资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,3/12/2012,#,IEEE,1588协议,基础篇,Contents,一、时钟同步模型,二、消息字段,三、数据集,四、数据类型,一、时钟同步模型,IEEE,1588,又叫网络化测量及控制系统的精确时钟,同步协议,PTP(精,确时钟协议),使用硬件和软件配合,不需要额外的,时钟线,仍然使用原,来以太网的数据线传送时钟信号,使组网连接简化和,降低成本。,1.1,PTP,消息类型,分为两类:事件消息、普通消息。事件消息是在发,送和接收端都要打精,确的时间戳,普通消息不需要打时间戳。,(1)事件消息:SYNC、Delay_Req、Pdelay_Req、,Pd,l,R,1.2,消息时间戳的产生,当发送和接收任何事件消息时,都会产生时间戳。,当消息的时间戳点经,过节点与网络的边界时,时间戳事件发生,时间戳产,生模型如下图所示:,上图中A,B,C为打时间戳的点,这个点越靠近,1.3,两种同步机制,延时请求响应机制(Delay,Request-Response,Mechanism),对等延时机制(Peer,Delay,Mechanism),(1)延时请求响应机制,使用Sync、Delay_Req、Follow_Up,Delay_Resp消息进行消息,同步,测量,一对PTP端口的,模型为,t,2,t,1,=,Delay,+,Offset,t,4,t,3,=,Delay,Offset,Delay,=,(,t,2,t,1,),+,(,t,4,t,3,),2,Offset,=,(,t,2,t,1,),(,t,4,t,3,),2,在算法校正过程中,对从时钟的校正是通过校正offset实现的,Delay通,常影响Offset的值,因此要通过测量这个延迟值来修正Offset。,(2)对等延时机制,对等延时机制用来测量端到端传输时间,如支持对等延时,机制的通信端口的链路延时。用Pdelay_Req,,Pdelay_Resp,Pdelay_Resp_Follow_Up消息进行同步。,对于普通和边界时钟,对等延时机制与端口是master还是,slave没有关系。,=,(,t,2,t,1,),+,(,t,4,t,3,),2,1.4,设备类型,有5中基本的设备类型,(1)普通时钟(Oridinary,clock),(2)边界时钟(Boundary,clock),(3)端到端透明时钟(End-to-end,transparent,clock),(4)对等透明时钟(Peer-to-Peer,transparent,clock),(5)管理节点(Management,node),普通和边界时钟的端口,两种机制都可以使用,端到,端透明时钟与这两个,机制无关,对等透明时钟使用对等延时机制。,(1)普通时钟,通过以一个物理端口为媒介的两个逻辑接口和网络通信,事,件接口用来发,送和接收事件消息,包括两类数据集,分别是时钟数据集和,端口数据集。,端口数据集包含端口属性,包括PTP状态。,Protocol,engine,:,(1)发送和接收PTP消息,(2)维护数据集,(3)执行与端口相关的状态机,(4)如果端口在slave状态,基于接收到的PTP,定时消息和产生的时,间戳,计算Master的时间。,Local,clock,:,当普通时钟端口在slave状态时,本地时钟的控制,环路调节时钟,使它,的时钟与它的主一致。如果端口在master状态,本,地时钟在freerun状态,(2)边界时钟,边界时钟模型,如图,所示,有多个物理端口,每个端,口和一个普通时钟的端,口类似,但有一些例外:,1)时钟数据集对边界时钟的所有端口共用;,2)local,clock也对边界时钟的所有端口共用;,3)每一个协议引擎需要附加功能,它需要处理所有,端口的状态,决定,利用哪个端口提供的时间信号来同步本地时钟。,与同步、建立主从层次和信令相关的信息终止在一,个边界时钟的协议引,擎,不再向前转发,管理消息由边界时钟的其它端口,转发,服从限制一个系,统的消息传输时间的约束,(3)End-to-End透明时钟,设备模型,如图,所示,像一个网桥、路由器和转发器一样,端,到端透明时钟,发送所有的消息。对于PTP事件消息,驻留时间桥测量PTP事件,消息的驻留,时间。驻留时间在一个特殊的域correctionField累积。这些校,正是当事件消,息进入和离开透明时钟产生的时间戳的不同。校正值计算如下,图所示,注意,用来计算驻留时间的时间戳是基于本地时间产,a)RC(Rate,Control),利用延时请求响应机制校正本地时钟频率等于,master的时钟频率。这个方,法的关键是它的操作是一个闭环,这意味着在一个节,点的本地振荡器调节会,影响下面的节点。,b),RE(Rate,Estimation),不控制本地振荡器,让其自由运行,用本地时间计,算的驻留时间加到Sync,或者Follow_Up消息中,比较接收到的sync和,Follow_Up的驻留时间,计算本,地自由运行时钟与上一级时钟之比。,当驻留时间相对于时钟比值的足够大,一连串透明,时钟的最差相位误差累,(,4)Peer_to_Peer,透明时钟,设备模型,如图,所示,与End_to_End透明时钟不同在,于:它校正和处理,PTP定时消息的方式上。对等透明时钟有一个block,,这个block用来计算每,个端口与其它端口的链路延时。通过交换,Pdelay_Req,Pdelay_Resp和,Pdelay_Resp_Follow_Up消息来计算。,对等透明时钟和链路延时的校正模型如下图所示。,(5)管理节点,管理节点的设备特征是:,a)可以有一个或者多个物理连接连接到网络中;,b)PTP管理消息的手动或可编程接口。,c)能结合所有的时钟类型。,1.5,同步,在协议的执行过程中又来那个阶段:,(1)建立主从层次;,(2)同步时钟,1.5.1,建立主从层次,PTP的状态有:Master、Slave和Passive。利用最佳主时,钟算法来找最好的时,钟,包含两个独立算法:(1)数据集比较算法,(2)状态决策算法,数据集比较算法以下列这些优先属性比较算法:,(1)priority1:用户可配置的指定,指这个时钟是否是固,定的可选时钟;,(2)clockClass:详细说明时钟的TAI可跟踪性属性;,(3)clockAccuracy:定义一个时钟精度的属性;,(4)offsetScaledLogVariance:定义时钟稳定性属性;,(5)Priority2:是否是备选的主时钟;,(6)clockIdentity:基于独特标志符的附加表示规则。,最佳主时钟算法清楚地选择两个时钟中的一个更优。,简单的主从层次如下图所示:,只有普通和边界时钟维持这种状态形式,同时也只有边界时钟能在主从层次中建立分,支点。,二、消息字段,PTP协议根据发送和接收到的消息来计算时间偏,差和延迟,每个消息都,由一个消息头(header),消息体(body)和消息,后缀(suffix)组成。,2.1,消息头,2.1.1,transportSpecific(Nibble),根据传输的媒介有不同的说明。,2.1.2,MessageType(Enumeration4),2.1.3,versionPTP(UInteger4),是发送消息节点的数据集portDS.versionNumber的值。,2.1.5,domainNumber(UInteger8),此消息的发出节点不同,domainNumber的值不同。,2.1.6,flagField(Ocet2),一些标志位,表示的意义如下表,2.1.7,correctionField,(,Integer64,),它的值是ns数诚意2,16,,如2.5ns表示成,0 x0000000000028000,它的值依赖于消息,类型,2.1.8,sourcePortIdentity(PortIdentity),sourcePortIdentiy,的值是发送消息端口数据集的,portDS.portIdentity,的,值,。,2.1.9,sequenceId(UInteger16),除了Follow_Up、Delay_Resp、Pdelay_Resp、,Pdelay_Resp_Follow_Up、,management消息外,所有的消息都有sequenceId序列池,对,于从同一个时钟的同,一个端口发出同一个消息,后一个消息的sequenceId是前一个,的值1,采用循环计,数的方式。,2.1.10,controlField(UInteger8),主要是为兼容V1版本而设置的一组值,接收方不使用这组消息。,2.1.11,logMessageInterval(Integer8),的值决定于消息类型,如,2.2,Announce,消息域如表:,2.2.1,originTimestamp(Timestamp),当Announce消息发送时,这个的值置为0或者是与发送节点,的本地时间相差在,1s之内。,2.2.2,currentUtcOffset,2.2.3,grandmasterPriority1(UInteger8),发送节点数据集成员的parentDS.grandmasterPriority1的值。,2.3.4,grandmasterClockQuality(ClockQuality),发送节点数据集成员的parentDS.grandmasterClockQuality的,值。,2.3.5,grandmasterPriority2(UInteger8),发送节点数据集成员的parentDS.grandmasterPriority2的值。,2.3.6,grandmasterIdentity(ClockIdentity),数据集成员的parentDS.grandmasterIdentity的值。,2.3.7,stepsRemoved(UInteger16),发送消息的时钟数据集的currentDS.stepsRemoved的值。,2.3,Sync和Delay_Req消息,2.3.1,originTimestamp(Timestamp),对于Sync消息,当为One-step时钟时,OriginTimestamp的,值应该是Sync的,,不包括小数ns,Sync消息,correctionField的值和,originTimestamp的值应该是真实的,。当为Two-,step时钟时,originTimestamp的值还是,,不包括小,数ns,但是correctionField的值是0,由对应的Follow_Up消息,来表示,2.4,Follow_Up消息,2.4.1,preciseOriginTimestamp(Timestamp),Follow_Up消息的preciseOriginTimestamp是与对应的Sync,消息的,Follow_Up消息和,Sync消息的correctionField,的和与preciseOriginTimestamp相加,就是同步消息发送的精确,时间。,2.5,Delay_Resp消息,2.6,Pdelay_Req消息,注意:这里的reserved域是为了使得Pdelay_Req消息的长度,等于Pdelay_Resp消,息的长度,因为在一些网络或者网桥中,长度不同的消息有不,同的传输时间,这样,会引来不对称误差。,2.7,Pdelay_Resp消息,2.9,管理消息,2.9.1,domainNumber,of,the,header,domainNumber应该是目标domain,2.9.2,sequenceId,of,the,header,如果是一个响应management消息,sequenceId是接收到的,管
展开阅读全文