最近在学习IEEE 1588这方面的基础理论知识,好像论坛上关心的人并不是很多,我觉得还是很有意思的,最近这段时间我就把我的学习心得放到博客里边,感兴趣的朋友可以一起来学习IEEE 1588.
IEEE 1588PTP提供了一种联网的计算机系统与主时钟参考时间保持一致且从时钟依据主时钟可以估算出它们的偏差的方法。
这个文档主要就是一种软件实现PTP的方法。PTP精确时间上的同步主要就是依赖于主从之间交换带有时间戳的消息的精确估计。高精度的时间戳可以通过网络物理层的特定的硬件接口来支持而实现。没有特定硬件支持的PTP实现被称为software-only implementation.这些实现就必须靠网络层的上层来加上时间戳,这样在时间戳上就造成了大量不可确定的延迟,就是所谓的jitter。在PTP纯软件实现中最大的阻碍就是要在震动的时间戳上完成精确的主从时间同步。
PTP简介
A.主和从
在PTP,主时钟为一个或更多的从时钟提供参考时间,方法是通过在网络中交换信息。协议采用Best Master Clock(BMC算法)在一组时钟中确定一个唯一的主。BMC选择最稳定和最精确的时钟。
B. 同步消息
PTP 主机(暂且这么说容易理解,说主时钟不好理解)发送同步消息。主机记录发送同步消息的时刻t1,从机记录接收时刻t2。它们之差称为主从延迟dm2s:
dm2s = t1 – t2.
同步消息每隔--同步间隔(一般2s)--发送一次。这样(主到从)延迟时间采样周期为
Tm2s = Tsync = 2 s.
C.延迟请求消息
PTP从机发送延迟请求消息。从机记录发送时刻t3,且主机记录接受时刻t4.这样(从到主)的延迟时间ds2m:
ds2m = t3 – t4.
延迟请求消息发送间隔一般分布在2到30倍的同步消息间隔。这样从到主延迟采样周期为:
Ts2m = Tsync * U[2,30]
D.单向延迟
PTP计算出消息传播延迟的一个估计值。这个计算假设对称传输延迟,所以主到从和从到主延迟的平均值就抵消了主和从之间的时间偏差。这样就得到了信息的传播延迟,在IEEE 1588规范中称为单向延迟:
dprop = (dm2s + ds2m)/2.
假设对称传播延迟大部分情况下有效,但这并不总是有效的。不对称的传播延迟在规范中并没有考虑进来。这样在单向延迟中会造成一个恒定的偏差,以至在整个时间同步上也会造成偏差。这个偏差等于不对称度延迟的一半。
假设在不对称延迟中是一个常值,不对称延迟偏差可以同过添加一个延迟来修正主到从和从到主延迟从而抵消不对称。然而,假设不对称延迟常值也可能无效。
E.来自主机的偏差
PTP估算出了主机和从机之间的时差。这是修正主到从消息传播延迟,也就是称为的Offset From Master:
△t = dm2s – dprop.