1588 P2P链路延迟测量机制

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线。

E2E和P2P

上一篇文章介绍了1588的E2E链路延迟测量机制,本文顺带把P2P的链路延迟测量机制也一起介绍一下,这也便于以后介绍E2E透明时钟和P2P透明时钟。E2E就是End-to-End,它是由Slave clock发起的测量链路延迟的机制,而P2P(Peer-to-Peer)则是把每一个clock看作是对等的,每一个clock都会发起的链路延迟测量机制。说白了就是E2E的机制下,只有slave clock测量链路延迟,而P2P的机制下,每个clock都会测量链路延迟。

P2P链路延迟测量机制

P2P链路延迟的测量,使用了和E2E不同的报文。E2E使用的是Delay_req和Delay_resp,而P2P使用了Pdelay_req,Pdelay_resp和Pdelay_resp_follow_up。看下图。
P2P链路延迟测量机制
整个过程是这样的:

  1. 发起端发送报文Pdelay_req,并记录发送时间戳t1。响应端收到后,记录接收时间戳t2。
  2. 响应端立即回复报文Pdelay_resp,把t2写在Pdelay_resp报文上,告诉发起端。同时记录发送时间戳t3。
  3. 发起端收到Pdelay_resp,记录接收时间戳t4。
  4. 紧随Pdelay_resp报文,响应端又发送一个叫作Pdelay_resp_follow_up的报文,将t3写在该报文上,告诉发起端。

完成整个过程后,发起端已经知道t1,t2,t3和t4这四个时间戳。和E2E类似,我们又得到两个等式。

t2 - t1 = delay - offset
t4 - t3 = delay + offset

t2和t1的时间差值包含了链路延迟delay和两个clock的时间偏差。t4和t3的时间差值包含了链路延迟delay和刚提到的时间偏差的相反数。于是链路延迟和时间偏差可以被计算出来了。

2 * delay = (t2 - t1) + (t4 - t3)
2 * offset = (t4 - t3) - (t2 - t1)

时钟同步的实现

通过上面的介绍我们又学习到了P2P链路延迟的测量机制,上面的两个等式可以计算出链路延迟和时间偏差。然而真正的1588软件就是用这个时间偏差值来调整clock的吗?答案并不是这样。不要忘了,P2P机制下,1588同步还有Sync和Follow_up报文的参与。
Sync报文
对于P2P机制下的时钟同步,1588软件通常是怎么做的呢?重点来了。1588软件通常把时钟同步解耦成两个任务:

  1. 第一个任务是通过P2P机制测链路延迟。
  2. 第二个任务就是通过Sync/Follow_up报文同步时钟。

这两个任务独立执行,并可以以不同的周期定时运行。第一个任务周期性的测量链路延迟,并可以辅助一些滤波算法,降低一些偶然的抖动带来的影响。第二个任务中,Slave clock收到Sync/Follow_up后,即可利用第一个任务最新计算出的链路延迟的值delay,来计算时间偏差offset,调整Slave clock与Master clock同步。别忘了下面等式。同样,对offset的值也可以使用一些滤波算法。

t2 - t1 = delay + offset

结束语

至此,P2P的链路测量机制也介绍完了,是不是就是这么回事,就是这么简单。其实越深入越复杂,以后了解到报文的格式,P2P透明时钟,尤其是不局限于1588还想了解802.1AS协议的Time-aware bridge,你就不这么想了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值