IEEE1588定義了為網絡測量和控制系統提供精確時鐘同步協議的標準,運營商、電力、制造、運輸等各大行業的部分系統都需要一個能在低成本、易部署的以太網上為其提供高精度時鐘同步的方法,IEEE1588能滿足此需求。可以預見,IEEE1588將是這些業務系統的重要組成部分,在部署它之前需要對設備能力進行充分的測試,以確保滿足業務要求。
IEEE1588分為兩個版本,本文參照版本2——IEEE Std 1588-2008。
2 IEEE1588基本原理
2.1 IEEE1588幾個基本概念
●域(Domain)是一個邏輯概念,屬于同一個域的設備之間進行信息同步,不同域之間不需要同步。
●普通時鐘(Ordinary Clock),在一個域中只有一個運行PTP協議的端口,既可以是主時鐘,也可以是從時鐘。
●邊界時鐘(Boundary Clock),在一個域中有多個運行PTP協議的端口,可以同時是主時鐘和從時鐘。
●端到端(End-to-end)E2E透明時鐘,位于主從時鐘之間,計算自身的駐留時間并累加到報文的修正域中。
●點到點(Peer-to-peer)P2P透明時鐘,位于主從時鐘之間,計算點到點鏈路時延和自身的駐留時間并累加到報文的修正域中。
2.2 主從關系的建立
在一個域中,普通時鐘和邊界時鐘的每個端口都有各自獨立的狀態,各個端口通過最佳主時鐘算法(BMC,Best Master Clock algorithm),比較收到的宣告(Announce)報文內容以及自身配置,計算端口狀態,狀態包括主、從、消極(既不是主時鐘,也不向主時鐘同步,出現在環路情況下),BMC算法在一個網段上只會選擇一個主設備。此外,一個域中還存在一個超級主時鐘(Grandmaster Clock),其它設備的都直接或間接向其同步。一個域中會達到一個相對穩定的狀態,具體參見圖1。
圖1 主從關系的建立
2.3 PTP協議報文交互
PTP協議是IEEE1588的核心協議,設備之間通過運行PTP協議,交互PTP報文,實現時間和頻率的同步。普通的PTP協議交互步驟如下(見圖2):
圖2 PTP協議報文交互
●主設備會發送sync報文,如果報文中包括發送此報文的時間戳且不再發Follow_up報文則稱作一步時鐘,如果隨后再發送個Follow_up報文記錄發送Sync報文的精確時間戳則稱為兩步時鐘(一步時鐘對芯片的精度要求更高),從設備收到這一個或兩個報文后記錄下兩個時間t1(Sync發出時間),t2(從設備收到Sync報文時間)。
●從設備在t3時刻發送時延請求報文,主設備在t4時刻收到此報文,并將此時間戳放在時延響應報文中發給從設備,從設備此時又記錄下了t3和t4。
2.4 同步計算方法
IEEE1588有個前提:主從設備之間的雙向時延需要相對穩定(IEEE1588支持雙向時延不同,可以通過異步時延(Delay Asymmetry)進行修正,但仍要求雙向時延穩定,Delay Asymmetry的測量不在IEEE1588標準中規定,需要通過其它方法測出雙向的時延。在普通以太網的鏈路上基本能夠滿足此要求,但以太網設備如路由器交換機等則很難滿足,在設備出現擁塞時會將一部分報文緩存,引入了不確定的報文在設備內駐留的時間,但報文從相反方向進入設備時可能沒有擁塞,這樣雙向時延有可能相差很大,所以PTP協議最好不要跨越不感知PTP報文的路由器或交換機來同步時鐘。
當從設備知道了4個時間后就計算出了從設備與主設備之間的傳輸時延,Delay=[(t2-t1)+(t4-t3)]/2。從設備與主設備的時間偏差為Offset=t2-(t1+Delay)=[(t2-t1)-(t4-t3)]/2。從設備根據計算出來的偏差修改本地時間,完成了時鐘同步。
在多跳組網環境中通過,相連的兩臺設備建立主從關系,將時鐘一跳一跳同步下去,這樣精度會隨著跳數增加顯著降低,積累誤差逐漸增加,而PTP跨越不感知PTP報文的設備也會使精度降低,這樣就產生了一個問題,如何在多跳的大型網絡中進行高精度的同步時鐘,解決方法就是引入透明時鐘。透明時鐘用來減少網絡抖動的影響,進行非對稱性修正,透明時鐘沒有主從狀態,能夠減少大型網絡中的積累誤差。透明時鐘包括端到端(E2E)透明時鐘和點到點(P2P)透明時鐘。
2.5 E2E透明時鐘
E2E可以理解為對直連模式的擴展,允許主設備和從設備之間有多臺設備,但這些設備需要感知PTP報文,即作為E2E透明時鐘。E2E透明時鐘設備需要在報文中將該報文在設備里的駐留時間累加到修正域中,對所有經過的PTP報文都進行此操作。在普通PTP報文交互的基礎上,增加了兩個數值,一個是報文從主設備到從設備的時間修正值c1(可以經過任意跳E2E透明時鐘,最終得到的值),另一個是反向時間修正值c2,此時Delay=[(t2-t1-c1)+(t4-t3-c2)]/2,從設備與主設備的時間偏差為Offset=t2-t1-Delay-c1(此處只介紹了一步時鐘的情況,兩步時鐘參見標準)。簡單的說E2E模式下把主設備和從設備之間的不穩定的駐留時間扣除,利用穩定的雙向傳輸時間之和除以二來計算Delay,之后再進行同步。
2.6 P2P透明時鐘
P2P對協議流程進行了優化,不只計算駐留時間,還計算出了鏈路時延,并把二者加在一起放到修正域中,逐跳傳播累加,直到從設備。當從設備收到Sync報文時已經知道了總的傳輸時間和駐留時間,這樣就可以直接計算出Offset并同步了,不用再發送時延請求,主設備也不用再回應時延應答了。P2P透明時鐘通過和其相連的PTP設備交互對端時延請求報文和對端時延響應報文,能夠知道4個時間t1,t2,t3,t4,通過Delay=[(t2-t1)+(t4-t3)]/2的計算方法算出鏈路時延(見圖3)。
圖3 P2P透明時鐘
E2E透明時鐘會修正和轉發所有的PTP報文,P2P透明時鐘只修正和轉發Sync和Follow_up報文。P2P時鐘的特點是Sync和Follow_up報文只需單向(主設備向從設備)傳播,不需要反向(從設備向主設備)的時延請求和確認,網絡中兩臺設備之間的鏈路時延已經計算出,這樣網絡路徑切換后從時鐘能夠快速在新路徑上完成時鐘同步。
2.7 各種時鐘模式適用的網絡拓撲
時鐘模式適用的網絡拓撲并不是絕對的,需綜合考慮網絡特點、設備支持的IEEE1588功能等,在降低管理維護難度的同時,確保時鐘同步準確、穩定。
(1)層次化網絡拓撲
這種拓撲的網絡結構扁平,邊界時鐘數量少,普通時鐘數量多,時鐘同步的級數少,不需要引入透明時鐘,用普通的主從時鐘方式即可(見圖4)。
圖4 層次化網絡拓撲
(2)線性網絡拓撲
這種拓撲的網絡層級較多,但是為線性結構,此時中間設備可以作為E2E透明時鐘,邊界時鐘或普通時鐘設備和每個普通時鐘設備之間均需要建立主從關系(見圖5)。
圖5 線性網絡拓撲
(3)多鏈接網絡拓撲
這種拓撲為網狀或部分網狀結構,存在很多冗余鏈路(PTP協議不能防止也不支持環路,需要依賴路由或生成樹協議提供一個單路徑環境),此時中間設備可以作為P2P透明時鐘,邊界時鐘或普通時鐘設備和每個普通時鐘設備之間均需要建立主從關系。此網絡拓撲部署P2P透明時鐘能夠利用其快速完成重計算的優點(見圖6)。
圖6 多鏈接網絡拓撲
3 測試方法
(1)測試內容
●精度測試:包括主從時鐘精度測試、點到點透明時鐘精度測試和端到端透明時鐘精度測試。需要在多種線路時延環境下測試精度,包括異步時延環境下,模擬真實網絡環境。
BMC測試,在多個時鐘設備環境中確定主從時鐘狀態,動態修改時鐘參數,主從時鐘重新選擇測試。
多域測試和標準中的其它一些參數測試。
●性能測試:主時鐘設備支持多個從時鐘設備的能力,透明時鐘修正多個主從設備之間時鐘同步的能力。
●負面測試:在正常處理流程中對PTP報文進行丟棄、亂序、重復、抖動、延時發送、修改內容。
(2)測試方法
思博倫(Spirent)公司提供兩種產品用于測試IEEE1588——Anue和TestCenter,兩種產品可以獨立或組合使用,能夠滿足不同用戶的測試需求,提供全面的IEEE1588測試解決方案,測試組網參考圖7。
圖7 測試組網示意圖
(3)Anue測試IEEE1588的方法
Anue本身不生成PTP協議報文,不參與協議報文交互,可以對被測設備或系統進行精度和負面測試,適用于測試帶有T1/E1時鐘輸入輸出接口的設備,能夠直接給被測系統或設備輸入參考時鐘,并可以產生漂移,通過接收其輸出時鐘,直接進行比較。
測試主時鐘輸出時鐘的精度,即測試主時鐘的漂移。Anue通過T1/E1將參考時鐘輸入給主時鐘,在100M/1G/10G以太端口上接收報文,比較時鐘信息,測量精度。此時,可以用TestCenter與主時鐘設備之間進行路由發布/撤銷(如果主時鐘是三層設備),并在主從設備之間產生不同負載、字節大小的流量,進行測試。
測試從時鐘精度,其實是測試整個1588主從時鐘系統的時鐘精度,類似于組網測試,測試整個系統能否滿足上層業務對時鐘精度的要求。如果主設備的時鐘精度已經過測試,精度較高,則測試結果主要反映了從時鐘設備的精度。如圖7所示,從時鐘設備也通過T1/E1將從主時鐘同步來的信息輸入給Anue,由Anue進行分析。此測試仍可用TestCenter的路由通告和流量收發為背景。
測試透明時鐘精度。E2E透明時鐘修正系數主要用于避免由于雙向駐留時間不同而產生的時鐘同步不準的問題,有兩種測試方法:一是測試出PTP報文的真實駐留時延,比對PTP報文中修正域的時間值,二者之差越小說明駐留時間越準確;二是將透明時鐘放置于主從設備之間,對比放置透明時鐘前后從時鐘同步時鐘的精度變化來衡量透明時鐘精度。第一種方法直接測試透明時鐘本身,測試方法相對復雜,準確度易受到質疑,第二種方法測試有透明時鐘參與的系統的時鐘精度。第一種測試方法能夠對比不同設備駐留時間的準確程度,第二種方法能夠測試被測設備作為透明時鐘對系統時間精度產生的影響。P2P透明時鐘修正系數相比與E2E透明時鐘修正系數,多了點到點鏈路時延,采用上面的第一種測試方法難度加大,建議采用第二種測試方法。測試時需制造駐留時間較大的情況,如制造擁塞,測試此時被測系統的精度。仍可用TestCenter的路由通告和流量收發為背景。
除此之外還可以用Anue進行線路損傷,如增加相同的雙向傳輸時延來模擬在不同時延情況下1588系統的時鐘同步精度,增加不同的雙向傳輸時延測試異步時延修正功能的準確性等。
還可以用Anue對PTP報文進行丟棄、亂序、重復、抖動、延時發送、修改內容等負面測試。如修改透明時鐘的修正系數,緩存多個協議報文后再同時發出,擾亂協議報文的發送順序等。
(4)TestCenter測試IEEE1588的方法
IEEE1588測試對儀表精度要求較高,在測試被測設備或系統之前可以對儀表進行自環驗證,評估一下儀表。兩個口測試接口建立主從關系,得到一些統計值,觀察這些數值的穩定性,簡單環境下這些數值應該相對穩定,如鏈路時延,Offset等。此時,可以在這兩個端口之間發送流量,測試流量的轉發的時延,這個時延統計應該與IEEE1588計算的鏈路時延差別不大。
TestCenter支持完整的PTP協議棧,支持將PTP報文封裝到以太網,IPv4/UDP,IPv6/UDP上,支持單播和組播發送協議報文,支持一步時鐘和兩步時鐘,支持E2E時鐘模式和P2P時鐘模式。可以對被測設備或系統進行精度測試,BMC算法測試,多域測試,性能測試和標準中的其它一些參數測試,也能夠對報文進行丟棄、產生CRC錯、時間戳錯的負面測試。
TestCenter能夠同時或單獨模擬主從時鐘設備,對被測主時鐘設備、從時鐘設備、透明時鐘設備或整個時鐘系統進行精度測試,可以提供當前Offset,Offset正向和反向最大值,Offset偏差,當前鏈路時延,最小鏈路時延,最大鏈路時延,平均鏈路時延等參數。
進行BMC測試時,TestCenter可以模擬大量普通時鐘,發出Announce報文,測試被測設備選擇主時鐘的準確性,模擬的時鐘能夠通過批量動態修改參數,讓被測設備重新參與計算,進行主時鐘重新選擇。
性能測試主要針對于主時鐘設備和透明時鐘設備。主時鐘設備時整個系統中最重要的設備,它的性能、精度和穩定性是整個系統的基礎,主時鐘支持的從時鐘的數量也限制了系統的規模,是衡量主時鐘的一個重要指標。在不同時鐘模式下,需要分別測試報文封裝為以太,IPv4,IPv6,目的地址組播和單播報文,一步時鐘和兩步時鐘情況下支持的從時鐘的數量(需保證精度在合理范圍內),可以結合域的功能和背景路由及流量。
在測試中可以用Anue對全部或某些PTP報文進行丟棄、亂序、重復、抖動、延時發送、修改內容等負面測試,增加鏈路時延模擬各種網絡環境。
4 結束語
本文僅對IEEE1588基本原理和概念進行了簡單介紹,詳細內容參照標準。思博倫公司提供了業界最全面的IEEE1588測試方案而且還在不斷豐富,本文只介紹主要測試方法,具體功能以設備為準。
評論
查看更多