IEEE1588 協議,又稱 PTP( precise time protocol,精確時間協議),可以達到亞微秒級別時間同步精度,於 2002 年發布 version 1,2008 年發布 version 2。
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 報文的存在
# 請尊重他人勞動成果,轉載請注明出處:http://www.cnblogs.com/AdaminXie
# 如有問題請留言或者聯系郵箱 coneypo@foxmail.com