Loading...
墨滴

jasonj333

2021/03/27  阅读:33  主题:红绯

PTP协议

最近在接触诊断功能时,碰到有两个DTC是关于以太网时钟同步的,它的协议是PTP协议,大概了解下

PTP

网络通信中,有的时候会要求主机和其他主机保持时钟同步,或者说是在可接受的误差范围内

网络时钟同步分为时间同步频率同步

  • 左半部分就是时间同步,任何时刻A和B的时间都是相等的
  • 右半部分就是频率同步,任何时刻A和B的时间的差值是相等的

PTP

Precise Time protocol,PTP遵循IEEE1588协议,采用硬件时间戳,一般用在工业以太网上较多

我们将设备上运行了PTP的设备的端口称为PTP端口,PTP端口分为三种:

  • 主端口(Master Port):发布同步时间的端口
  • 从端口(Slave Port):接收同步时间的端口
  • 被动端口(Passive Port):既不发布也不接收,只作为转发所用

主从关系

主从关系是相对而言的

发布同步时间的节点称为主节点,而接收同步时间的节点则称为从节点

主节点上的时钟称为主时钟,而从节点上的时钟则称为从时钟 发布同步时间的端口称为主端口,而接收同步时间的端口则称为从端口

PTP同步原理

在系统的同步过程中,主时钟周期性发布PTP时间同步协议及时间信息,从时钟端口接收主时钟端口发来的时间戳信息,系统据此计算出主从线路时间延迟及主从时间差,并利用该时间差调整本地时间,使从设备时间保持与主设备时间一致的频率与相位。IEEE1588可以同时实现频率同步和时间同步

请求应答机制

请求应答机制用于测量端到端的延时时间

  • 主时钟向从时钟发送Sync报文,并记录时间T1。从时钟收到Sync后,记录接收时间T2
  • 主时钟发送完Sync,紧接着发送一个带有T1值的Follow_Up报文给从时钟
  • 从时钟向主时钟发送Delay_Req报文,记录发送时间T3,主时钟收到后记录接收时间T4
  • 主时钟向从时钟发送携带T4的报文Delay_Resp

Sync和Follow_Up要成对出现(sequenceId相同),且sequenceId要是连续的

由此从时钟拿到了T1,T2,T3,T4的所有时间,并能计算出往返的时间差,然后再取其平均值,[(T2 - T1) + (T4 - T3)] / 2

由此从时钟相对于主时钟的时钟偏差为:Offset = (T2 - T1) - [(T2 - T1) + (T4 - T3)] / 2

怎么理解?

就是主时钟发给从时钟的报文在网络中的花费的时间的标准值是[(T2 - T1) + (T4 - T3)] / 2,它是一个标准,然而实际上主时钟发给从时钟的报文在网络中花费的时间是 (T2 - T1),那么就必须把实际的和标准去进行比较,它们的差值就是从时钟相当于主时钟频率的偏差值。如果它们的差值为0,说明它们频率是同步的

端延时机制

没用到,没研究,自己看,别问我

PTP报文结构

PTP报文结构很简单,就是二层报头+PTP报头,没有什么ip层、传输层之类的


jasonj333

2021/03/27  阅读:33  主题:红绯

作者介绍

jasonj333