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