IEEE1588协议,又称PTP(precise time protocol,精确时间协议),可以达到亚微秒级别时间同步精度,于2002年发布version1,2008年发布version2。
IEEE1588协议的同步原理,所提出的Delay Request-Response Mechanism(延时响应机制)如图1所示。
图1 PTP协议延迟响应机制
图中所描述的PTP报文为以下几种:
(1)sync同步报文
(2)Follow_up跟随报文
(3)Delay_req延迟请求报文
(4)Delay_resp延迟请求响应报文
延迟响应同步机制的报文收发流程:
1.主时钟周期性的发出sync报文,并记录下sync报文离开主时钟的精确发送时间t1;
(此处sync报文是周期性发出,可以携带或者不携带发送时间信息,因为就算携带也只能是预估发送时间戳originTimeStamp)
2.主时钟将精确发送时间t1封装到Follow_up报文中,发送给从时钟;
(由于sync报文不可能携带精确的报文离开时间,所以我们在之后的Follow_up报文中,将sync报文精确的发送时间戳t1封装起来,发给从时钟)
3.从时钟记录sync报文到达从时钟的精确时到达时间t2;
4.从时钟发出delay_req报文并且记录下精确发送时间t3;
5.主时钟记录下delay_req报文到达主时钟的精确到达时间t4;
6.主时钟发出携带精确时间戳信息t4的delay_resp报文给从时钟;
这样从时钟处就得到了t1,t2,t3,t4四个精确报文收发时间。
时钟偏差&网络延时
offset:时钟间偏差(主从时钟之间存在时间偏差,偏离值就是offset,图1中主从时钟之间虚线连接时刻,就是两时钟时间一致点)
delay:网络延时(报文在网络中传输带来的延时)
从时钟可以通过t1,t2,t3,t4四个精确时间戳信息,得到主从时钟偏差offset和传输延时delay:
从时钟得到offset和delay之后就可以通过修正本地时钟进行时间同步。
PTP报文分类
IEEE1588把所涉及到的报文分为事件报文和通用报文,分类依据是:是否在收发报文时需要记录精确时间戳,根据上文中所描述的几种报文,可以进行如下分类:
事件报文<收发时候需要记录精确时间戳>:sync报文,delay_req报文
通用报文<收发时候不需要几率精确时间戳>:follow_up报文,delay_resp报文
*note: 1.因为需要高同步精度,选取的时间都是精确时间戳
2.sync同步报文是周期性从主时钟向从时钟以广播的形式发出
3.时钟偏差延时的计算在从时钟中进行,所以需要把 t1,t2,t3,t4四个时间戳信息都发往从时钟,所以需要 follow_up报文和 delay_resp报文的存在