張懷玉 韓建波
【摘 要】隨著社會生產力的迅速提高和數字化技術應用的逐漸拓展,越來越多的領域需要使用精確的時間同步技術:如軍事、導航、通信、工業過程控制、測量等各個領域。在通信領域,“同步”概念是指頻率的同步,即網絡各個節點的時鐘頻率和相位同步,其誤差應符合相關標準的規定。鑒于此,本文主要分析基于IEEE1588網絡時間同步系統的研究。
【關鍵詞】IEEE1588;網絡時間;同步系統
中圖分類號:TP39文獻標識碼:A
1、概述
隨著電子信息技術和互聯網的迅猛發展,計算機對信息的處理和傳送起著至關重要的作用。計算機的時鐘精度很低,一天內就有幾秒鐘甚至幾分鐘的時間漂移,已經無法滿足高準確度時間約束業務的要求,因此,如何在網絡系統中實現高準確度時間同步是一個相當重要的問題。
目前傳統的時鐘同步協議如NTP(Network Time Protocol)和簡單網絡時間協議所達到的時鐘精度一般只能達到毫秒級,同步精度較低,對于現階段的一些對時鐘精度要求高的場合并不適用,而IEEE1588協議提高了時鐘同步精度,可以使時鐘精度達到微秒級,解決了一些場合時鐘精度不夠的問題。
IEEE1588的全稱是“網絡測量和控制系統的精密時鐘同步協議標準(IEEE1588 Precision Clock Synchronization Protocol)”,簡稱PTP(Precision Timing Protocol)。IEEE1588標準是通用的提升網絡系統定時同步能力的規范,在起草過程中主要借鑒以太網來編制,使得分布式通信網絡能夠具有嚴格的定時同步,并應用在各種系統中。
2、IEEE1588網絡時間同步協議的技術
2.1、IEEE1588協議規范
IEEE1588標準為網絡測量和控制系統提供了精確時間同步協議即PTP協議,該協議應用于包括一個或多個節點的分布式系統中,這個系統在一系列的通信媒介上進行通信。每個節點包含一個實時時鐘模型,該實時時鐘可用于節點內不同的應用目的:比如為數據報產生時間戳,通過節點管理的事件進行排序等。PTP協議為分布式網絡中實現多個節點之間的高精度同步提供了一種機制。
2.2、最佳主時鐘算法
最佳主時鐘算法BMC(Best Master Clock Algorithm)指明了一種方法,該方法使得本地時鐘能夠決定與它相連的所有時鐘(包括其自身)中,哪一個時鐘是最好的。該算法獨立于系統中的每個PTP端口,即不管端口處于主狀態還是從狀態,只是根據BMC算法計算出自己的狀態。在端口選擇出比較好的時鐘之后,又將這些較好的時鐘進行比較,最后確定出一個最好的時鐘,指定它作為系統中的最佳主時鐘。
2.3、PTP時鐘端口狀態管理
(1)PTP協議引擎狀態機
在PTP系統中,任何時刻,普通時鐘的PTP時鐘端口或邊界時鐘的任意一個PTP時鐘端口,都必處于描述的9種狀態之一。在時鐘節點的初始狀態下,PTP網絡中各個節點的狀態保持的是系統默認狀態或者上一次系統關閉時的狀態,所以,在初始化狀態下確立的主時鐘是PTP系統默認的主時鐘或者系統上一次運行關閉時確立的主時鐘。但是,在系統的實際運行過程中,由于網絡中時鐘節點數目和網絡拓撲結構發生改變,以及網絡中各PTP時鐘自身的狀態變化等多種狀況,使得網絡拓撲結構經常發生變化,必然導致網絡中各PTP時鐘節點的狀態和最佳主時鐘發生變化。因此,在PTP時鐘節點間進行時鐘同步的過程中,PTP時鐘的狀態也必然隨之不斷變化。
(2)觸發PTP時鐘狀態轉換的事件
由特定的事件觸發導致圖1中所有狀態之間進行轉換。所有的觸發事件可歸納為以下9種。
圖1PTP協議引擎狀態機
1)POWERUP:事件必須由設備上電或復位機制觸發。2)INITIALIZE:事件必須由接收到的INITIALIZE管理報文觸發,也等價于報文的initialization Key域值被設定。3)DESIGNATED_ENABLED:事件必須由接收到的ENABLE_PORT管理報文觸發。4)DESIGNATED_DISABLED:事件必須由接收到的DISABLED_PORT管理報文觸發。5)FAULTY_CLEARED:事件必須由清除端口故障操作觸發,或由組織端口校正操作觸發。6)FAULTY_DETECTED:事件必須由內部狀態阻止端口校正的操作觸發。7)STATE_DECISION_EVEN:用接收到的Announce報文的數據決定哪一個是最佳主時鐘的事件,并決定本地時鐘的端口狀態是否需要改變。每個PTP時鐘節點都會按照相應的邏輯關系發生STATE_DECISION_EVEN事件。8)Recommended state:推薦狀態是最佳主時鐘算法的結果,并由STATE_DECISION_EVEN事件觸發。
3、IEEE1588協議的改進方法
3.1、路徑不對稱性
這個時鐘同步機制順利進行的前提是路徑一定要是對稱的,即報文在主時鐘節點到從時鐘節點傳輸時和從時鐘節點到主時鐘節點傳輸的延遲是相同的(上文用Delay代替兩個方向的延遲),分別如下式:
sm_Delay=t2-t1-Offset(1)
sm_Delay=t4-t3+Offset(2)
假設在理想的情況下,也就是當ms_Delay=sm_Delay的時候,上節的同步機制才能保證精確,但是在實際系統中,由于一些網絡上有較大負載,負載越大,兩種傳輸方向上的延遲Delay可能會越來越大,如果不加以改進,那么時鐘精度就會越來越低,嚴重影響設備的使用。所以要盡可能解決路徑不對稱的問題,以維持整個網絡和時鐘同步精度的穩定。
3.2、時間戳
只有獲得準確的時間戳信息,IEEE1588協議才能最大程度的發揮其時間同步精度的優勢。上文所提到的NTP和PTP實現時間同步的方法是類似的,但是NTP的時間同步精度低于PTP的時間同步精度,這是因為NTP和PTP時間戳的生成位置不同。
3.3、透明時鐘的引入
當時鐘節點較多時,容易產生時間誤差的積累,故引入透明時鐘概念,透明時鐘分為端對端透明時鐘和點對點透明時鐘。兩種時鐘都可以將延時的時間加到時間修正域里,以達到減小時間誤差的目的。
總之,隨著分布式系統的廣泛應用,系統對高精度時間同步的要求越來越高,在測控、通信等領域中已經對時間同步提出了微秒級的要求。而現行的網絡時間同步方式NTP/SNTP 等很難滿足以上領域的要求。因此,本文的研究也就顯得十分的有意義。
(作者單位:國電南瑞科技股份有限公司)