本文目录
- 1、主时钟和从时钟之间的消息交互流
- 2、延时delay和偏移offset的计算
- 2.1、延时delay的计算
- 2.2、偏移offset的计算
主时钟和从时钟之间,通过sync, follow up, delay request, delay response这四条消息,完成时钟同步过程。PTP时钟同步系统能工作的网络有二个隐藏的假设:
- 主时钟和从时钟之间双向的延时是相等
- 网络上的延时是稳定的,意味着延时抖动不大,更准确的说网络延时不会快速变化。
1、主时钟和从时钟之间的消息交互流
2、延时delay和偏移offset的计算
2.1、延时delay的计算
延时指的是主时钟和从时钟之间报文传输所需要的时间,如上图所示
- 主时钟发送sync消息时,记录下发送时的本地时间t1
- 从时钟收到sync消息时,记录下收到时的本地时间t2
- 从时钟发送delay request消息时,记录下发送时的本地时间t3
- 主时钟收到delay request消息时,记录下收到时的本地时间t4
我们可以注意到,此时主从时钟时间是没有同步起来的,所以只有属于同一个时钟的时间才可以相减。t4和t1是属于同一个时钟的,可以相减, 而t3和t2也是属于同一个时钟的,可以相减。
我们知道
- (t4-t1)包括了SYNC的传输延时、从时钟处理时间、delay request的传输延时三部分
- (t3-t2)是从时钟的处理时间
- 那么((t4-t1) - (t3-t2)) 就是:SYNC的传输延时 + delay request的传输延时
- PTP假设双向延时相等,且延时抖动很小,所以((t4-t1) - (t3-t2))/2就是单向传输延时
从时钟可以从sync或者follow up里得到t1, 从delay response得到t4。所以我们可以推导出:delay = [(t4-t1) - (t3-t2)]/2 = [(t2-t1) + (t4-t3)]/2,从时钟通过这个公式可以计算出延时delay。
2.2、偏移offset的计算
偏移offset指的是从时钟和主时钟之间的时间差,这个时间差可以是正值也可以是负值。正值表示从时钟的时间在主时钟时间之后,负值则表示从时钟的时间在主时钟的时间之前。这个偏移offset的计算也非常好理解:
在从时钟的t2时刻,主时钟的时间是t1+delay,所以
offset = t2- (t1+delayt) = t2- t1 - delay