![](https://img.haomeiwen.com/i4894851/3c50e3b2e5f592b4.gif)
PTP之所以非常精确, 就是因为
hardware timestamping
offset的计算:
问题来了,
- 如何确保传输时的delay是稳定的, 不受router或者距离的限制,
其实delay不可怕, 只要来回的delay是一致的就可以.
- 如何确保回程的delay是一样的?
首先要看forward和back两个方向的误差是怎么产生的, 主要因为是router或者switch中的queue
如果一个方向很快, 另一个的方向阻塞了, 就会一来一回的时间就会不同, 就会有很大的误差.
![](https://img.haomeiwen.com/i4894851/26168449590f7c5e.gif)
解决方案如下:
- 时间延迟的不确定性一般产生在MAC层以上, 比如route.
- 时间戳打在MAC层以下 (MAC-PHY之间)就可以使delay稳定.
- 当然这就需要硬件的支持. 至少硬件能做到以下几点
- 硬件级别识别PTP报文;
PTP协议一个UDP协议, 报文的拆包和打包都需要在router层以上. 但如果在会话层才能识别出PTP报文并处理就太晚了.
- 在入口和出口的硬件级别都打时间戳 (hardware timestamp), 不需要在协议层打timestamp
网友评论