全部
  • 全部
  • 解决方案
  • 技术问答
  • 视频中心
  • 知识分享
  • 技术资讯
  • SEED产品
400-048-1230
订阅
  • 首页
  • 解决方案
  • 技术问答
  • 视频中心
  • 知识分享
  • 技术资讯
  • SEED产品
带你读懂时间敏感网络 (TSN) 中的时间同步协议 gPTP(二)
来源:Arrow 发布:2024/05/30 浏览量:560

继上一期带你读懂时间敏感网络 (TSN) 中的时间同步协议 gPTP(一),这期为您带来该系列的第二篇。

多端口实例、中继实例 

 

多端口PTP实例的每个端口都具有收发PTP报文的能力,当其成为GrandMaster时会向所有支持802.1AS的链路发送Announce报文与Sync报文。当PTP实例不是中继实例且成为Slave时会选择可获得最高同步精度的端口作为Slave端口,其他端口收到的Sync报文将被忽略,忽略Sync的端口称为Passive端口。BMCA算法首先使用systemIdentity判断哪个实例是最佳GrandMaster,当多个端口收到相同systemIdentity时,BMCA算法选取连接到至GrandMaster经转发最少链路的端口成为Slave端口。gPTP通过stepsRemoved识别报文被转发的次数,它和GrandMaster信息一起在Announce报文中传输,每经过一个PTP节点该值会加一。

 

中继实例(Relay Instance)是指拥有转发和处理时间同步消息功能的PTP实例,通过中继实例时间同步消息能够准确传播到网络中的多个设备上。典型的中继实例有支持gPTP的交换机、路由器等。相对于非中继实例,中继实例会同时拥有MasterSlavePassive端口。

 

中继实例选择Slave端口的逻辑与多端口实例的逻辑相同,都是收到包含最佳systemIdentitystepsRemoved参数Announce报文的端口成为Slave端口。若实例当前GrandMastesystemIdentity优于端口收到的systemIdentity端口将成为Master端口,其他端口成为Passive端口。以下为PTP实例的Master/Slave层次结构:   

 

注意:本文为方便读者理解将多端口实例、中继实例、单端口实例的BMCA算法进行了拆分解释,实际上各种PTP实例使用的BMCA算法相同。

 

sync转发

如前文所属,当GrandMasteSlave实例直连时Slave实例通过以下数据计算本地时钟与Master时钟的偏移:

  • Slave端口收到Sync报文的本地时间戳
  • GrandMaster发出Sync报文的Master时钟时间戳

 

链路延迟   

而当Slave端口与中继实例相连时,Pdelay报文不会被转发而是由中继实例直接响应,Slave端口测得的链路延迟为到中继节点的延迟而非到GrandMaste的延迟。另外中继实例对Sync报文的处理、转发操作也会增加Sync报文从GrandMaste到达Slave的时间,按照前文中的方法将无法得出正确的时钟偏移量。实际上每个gPTP报文的包头都带有correctionField字段,在与Sync对应的Followup报文中该字段表示对应的Sync报文从被GrandMaster发出,到被最后一个中继实例发出经过的时间,有了该变量即使GrandMasterSlave间存在中继实例,Slave依然可求得与Master时钟的正确偏移量。

 

correctionField由中继实例计算,每个中继实例会将以下值相加得出correctionField

  • 自身处理、转发Sync报文的耗时
  • 自身Slave端口到相连Master端口链路延迟
  • 收到Sync报文的correctionField

 

中继实例转发Sync报文时会使用新计算的correctionField替换原报文中的correctionField