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