鄭 翊
(中國電子科學研究院,北京 100041)
電子信息時代網(wǎng)絡(luò)化、智能化飛速發(fā)展,系統(tǒng)各個節(jié)點之間對時間同步的需求也日益增高,為統(tǒng)一各系統(tǒng)間的時間基準,許多時鐘同步協(xié)議應運而生?!熬軙r鐘同步協(xié)議標準” IEEE1588(IEEE standard for a precision clock synchronization protocol)作為新的時間同步標準[1],可以實現(xiàn)物理層的時間同步,IEEE1588標準采用PTP (Precision Time Protocol)精密時鐘同步協(xié)議,其精度可達亞微秒級別。
系統(tǒng)中各設(shè)備之間通信傳輸和各類事件的執(zhí)行順序都需要精確的時間同步,才可以準確完成各項指令和任務(wù),因此在以太網(wǎng)傳輸系統(tǒng)中增加時間同步、時間觸發(fā)等服務(wù),來滿足系統(tǒng)的實時性需求。
網(wǎng)絡(luò)時間協(xié)議NTP(Network Time protocol)是當前網(wǎng)絡(luò)中應用最廣泛的同步協(xié)議,NTP協(xié)議采用在應用層獲取報文時間戳的方式,可以提供百毫秒級的時間同步精度[2],NTP協(xié)議通過估算往返路由的時延差來縮小誤差,該協(xié)議通過在互聯(lián)網(wǎng)上指定多個時鐘源來對整個系統(tǒng)進行授時,精度雖然可達毫秒級別,卻難以滿足對時間精度有更高需求的傳輸網(wǎng)絡(luò)。
PTP協(xié)議報文相對于NTP協(xié)議而言能獲得亞微秒級的時間同步精度,精度更高,PTP協(xié)議的時間戳加在物理層,其根本目的是在靠近網(wǎng)口的位置記錄時間標記,保證寫入的時鐘速率與接收的時鐘速率在同一個誤差范圍內(nèi),從而降低信號傳輸?shù)念l率偏移,來保證數(shù)據(jù)的正確傳送和處理[3]。PTP協(xié)議設(shè)計用于精確同步分布式網(wǎng)絡(luò)通信中各個節(jié)點的實時時鐘,其基本構(gòu)思為通過硬件和軟件將網(wǎng)絡(luò)設(shè)備的內(nèi)時鐘與主控機的主時鐘實現(xiàn)同步。PTP較NTP占用更少的網(wǎng)絡(luò)資源,同時具有和以太網(wǎng)兼容的特性,因此更適合在通過以太網(wǎng)傳輸?shù)耐ㄐ畔到y(tǒng)中使用。
IEEE1588標準的目的是為了精確地把網(wǎng)絡(luò)系統(tǒng)中分散、獨立運行的時鐘同步起來,IEEE1588系統(tǒng)中包括多個節(jié)點,各節(jié)點通過網(wǎng)絡(luò)相連接。在以太網(wǎng)中采用PTP技術(shù)首先是要形成一個主時鐘(master)和多個從時鐘(slave)的架構(gòu),將系統(tǒng)按主從關(guān)系建立起來,系統(tǒng)中最精確的時鐘(即主時鐘)通過傳輸PTP協(xié)議報文來同步所有節(jié)點(即從時鐘)的時間,通過主從設(shè)備間傳遞PTP報文來計算時間偏移(Offset)和路徑時延(Delay),最終實現(xiàn)整個系統(tǒng)的時間同步[4]。
PTP系統(tǒng)的特點是主從時鐘之間傳遞消息遵循唯一路徑原則,在主從時鐘之間通過交換已經(jīng)定義好的報文來實現(xiàn)時間同步,這些報文在物理層被打上時間戳,用以計算時間偏移和路徑時延,具體原理如圖1所示:
圖1 PTP協(xié)議同步過程
PTP協(xié)議主從設(shè)備之間報文傳遞過程為:
(1)t1時刻主時鐘發(fā)送時間同步(sync message)報文,該報文帶t1時刻信息,t1的時刻值由Master通過MAC層以下的邏輯直接填充;
(2)t2時刻從時鐘接收到sync message報文;
(3)t3時刻從時鐘發(fā)送延遲請求(Delay Req message)報文;
(4)t5時刻主時鐘發(fā)送延遲請求響應(Delay Resp message)報文,帶t4時刻信息。
通過PTP報文傳遞過程可進一步計算出時間偏移和路徑時延:
(1)t2-t1=Delay-Offset
(2)t4-t3=Delay+Offset
(3)Offset=((t4-t3)-(t2-t1))/2
(4)Delay=((t4-t3)+(t2-t1))/2
在理想環(huán)境下網(wǎng)絡(luò)延遲是對稱的,通過計算時間偏移和延遲請求響應得出時間同步精度,同時也是實現(xiàn)時間同步的過程。
與理想情況相比較,實際環(huán)境中對時間同步精度產(chǎn)生影響的主要因素是:
(1)PTP協(xié)議是通過PTP報文傳遞來實現(xiàn)的,傳遞過程中存儲轉(zhuǎn)發(fā)設(shè)備的延遲會對同步精度產(chǎn)生影響;
(2)主、從時鐘之間的網(wǎng)絡(luò)延時不完全對稱會對同步精度產(chǎn)生影響;
(3)另外,系統(tǒng)中時鐘本身的漂移也會對同步精度產(chǎn)生影響。
這些對時間同步精度產(chǎn)生的影響因素可以通過時鐘模型來進行修正, PTP時鐘模型主要包括普通時鐘(OC)、邊界時鐘(BC)和透明時鐘(TC)[5]。
(1)普通時鐘
普通時鐘模型最顯著的特點是各個系統(tǒng)節(jié)點某一時刻只能充當主時鐘或者從時鐘,當某個系統(tǒng)節(jié)點作為主時鐘的時候,可作為系統(tǒng)中最精確的時鐘源與外界時鐘進行同步;當某個系統(tǒng)節(jié)點作為從時鐘的時候,則與系統(tǒng)主時鐘進行時間同步。各節(jié)點設(shè)備作為普通時鐘時只有一個端口可作為通信接口與各節(jié)點開展報文交換,普通時鐘模型對應于系統(tǒng)中的時鐘源。
(2)邊界時鐘
邊界時鐘與普通時鐘最大的區(qū)別在于可以允許多個端口同時開展時間同步,這些端口共享同一個本地時鐘,并且邊界時鐘既可以充當主時鐘也可以充當從時鐘。邊界時鐘模型相當于對時過程中的中繼,既可以恢復時鐘又可以作為時鐘源向下傳遞時間,邊界時鐘對應于系統(tǒng)中的中間網(wǎng)絡(luò)節(jié)點。
(3)透明時鐘
透明時鐘可以校正主、從時鐘之間的延遲,但透明時鐘本身不恢復時間和頻率,只是對同步報文進行轉(zhuǎn)發(fā)。透明時鐘通過記錄PTP報文傳輸時的時間戳來計算出時延,從而進行修正。系統(tǒng)網(wǎng)絡(luò)中自身不需要時鐘同步的設(shè)備(諸如配合處理PTP報文的設(shè)備等)可以使用透明時鐘邏輯模型。
本文通過搭建PTP測試平臺來測試PTP協(xié)議在實際以太網(wǎng)傳輸過程中所能達到的精度,測試設(shè)備包括PTP測試平臺、以太網(wǎng)背景流量注入設(shè)備、千兆以太網(wǎng)交換機、IEEE1588測試設(shè)備和示波器。PTP測試平臺硬件使用的是PHY芯片DP83867,在物理層加時間戳,并且PTP測試平臺分Master和Slave兩種狀態(tài),Master狀態(tài)試驗件具備PTP主節(jié)點功能,同時也具備PTP從節(jié)點功能;Slave狀態(tài)試驗件具備PTP從節(jié)點功能,能夠通過以太網(wǎng)與PTP主節(jié)點交換符合PTP協(xié)議的報文,實現(xiàn)自身時間對PTP主節(jié)點時間的跟蹤。該環(huán)境下除包含PTP協(xié)議功能的設(shè)備之外的配試設(shè)備包括以太網(wǎng)背景流量注入設(shè)備,用以生成不同程度的流量,模擬近似真實情況下的網(wǎng)絡(luò);千兆以太網(wǎng)交換機用以模擬網(wǎng)絡(luò)中經(jīng)過交換設(shè)備對同步精度的影響;通過IEEE1588測試設(shè)備來測量主時鐘和從時鐘之間的時間差;最后通過示波器來觀測實驗結(jié)果。具體測試環(huán)境如圖所示。
圖2 IEEE1588測試環(huán)境
通過對PTP時間同步原型的設(shè)計,具體測試過程如下:
(1)按照圖2搭建測試環(huán)境;
(2)啟動以太網(wǎng)背景流量注入設(shè)備,測試模式選擇“IEEE1588”,點擊啟動測試按鈕,以從節(jié)點為目的地址通過以太網(wǎng)接口注入背景數(shù)據(jù)流,模擬多種典型網(wǎng)絡(luò)背景流量(分別采用615 Mbps、305 Mbps、744 Mbps、 606 Mbps、612 Mbps等,具體設(shè)置情況見表1);
(3)主節(jié)點已上電工作,從節(jié)點加電,等待從節(jié)點指示與主節(jié)點鎖定;
(4)從節(jié)點指示與主節(jié)點鎖定后,利用示波器“延遲測量”功能,每1~2 s讀取一次主節(jié)點輸出1PPS上升沿與從節(jié)點輸出1PPS上升沿之間的時間差,共測量10次,求均方根用以形成同步精度測試結(jié)果;
(5)主節(jié)點保持上電工作、從節(jié)點斷電;
(6)重復第1至第5步驟對不同以太網(wǎng)包長(分別采用64 B、256 B、512 B和1024 B以太網(wǎng)包長)情況下的時間同步進行測試,使用示波器觀測時間同步效果。
在該實驗當中PTP主節(jié)點和PTP從節(jié)點相當于系統(tǒng)中對時的發(fā)起端和接收端,主從時鐘之間傳輸延遲的一致性對系統(tǒng)精度起著至關(guān)重要的作用,當系統(tǒng)中存在諸如交換機等網(wǎng)絡(luò)設(shè)備時,會對傳輸路徑的對稱性產(chǎn)生影響,該實驗中的交換機就給對時精度帶來了一定影響,因此,在該試驗當中PTP協(xié)議采用透明時鐘(TC)模型用以解決報文在中間站點駐留引起的時延問題,消除網(wǎng)絡(luò)設(shè)備內(nèi)部的時延不確定性。
表1 測試背景流量注入情況
為避免同時出現(xiàn)多個時鐘源或者沒有時鐘源,試驗過程中采用了最佳主時鐘BMC(Best Master Clock)算法。BMC算法的原理是各端口定期發(fā)送報文來通告時鐘信息,每單板上的各端口收到時鐘信息,得出這個單板的最佳時鐘源,時鐘板比較各單板選出的最佳時鐘源后最終選擇出一個并下發(fā)給各端口進行同步,同時,根據(jù)最佳時鐘源和其它相關(guān)信息,BMC算法和端口狀態(tài)機共同決定出端口的狀態(tài)[6]。BMC算法通過報文宣告各端口上的時鐘源信息,通過維護本地獲得的時鐘數(shù)據(jù)組,按嚴格時鐘等級選擇出最佳時間源,并確定端口狀態(tài)。該算法對整個網(wǎng)絡(luò)的時鐘生成時鐘樹,產(chǎn)生不同等級的主從關(guān)系,從時鐘同步主時鐘,從而消除時鐘環(huán)路。
通過上述試驗測得PTP協(xié)議在不同以太網(wǎng)包長度下的性能,測試結(jié)果如下表所示。
當以太網(wǎng)包長為64 B時測試結(jié)果如表2所示(測試剖面1、測試剖面2是分別基于表1中測試剖面1、測試剖面2的包長度和數(shù)據(jù)率的前提):
當以太網(wǎng)包長為256 B時測試結(jié)果如表3所示(測試剖面3、測試剖面4是分別基于表1中測試剖面3、測試剖面4的包長度和數(shù)據(jù)率的前提):
表2 以太網(wǎng)包長64 B時測試結(jié)果
表3 以太網(wǎng)包長256 B時測試結(jié)果
當以太網(wǎng)包長為512B時測試結(jié)果如表4(測試剖面5是基于表1中測試剖面5的包長度和數(shù)據(jù)率的前提):
表4 以太網(wǎng)包長512B時測試結(jié)果
當以太網(wǎng)包長為1024 B時測試結(jié)果如表5(測試剖面6是基于表1中測試剖面6的包長度和數(shù)據(jù)率的前提):
表5 以太網(wǎng)包長1024 B時測試結(jié)果
從使用角度考慮,用戶對于PTP最關(guān)注的兩項指標之一是對時精度,對時精度可以從試驗測試結(jié)果的RMS數(shù)據(jù)得出結(jié)論;另外一項指標是失鎖率,即PTP對時機制在使用過程中的穩(wěn)定性,可以從試驗測試結(jié)果的標準差數(shù)據(jù)得出結(jié)論。對表2~表5中的RMS值和標準差值進行分析可以得出以下結(jié)論:
(1)時間同步精度與注入的背景數(shù)據(jù)流包長度、有效數(shù)據(jù)率相關(guān)性顯著:相同包長度條件下,有效數(shù)據(jù)率越大,主從節(jié)點同步精度越差。
在以太網(wǎng)包長為64 B情況下,表2中測試剖面1是基于615 Mbps的數(shù)據(jù)率來開展測試的,而試剖面2是基于305 Mbps的數(shù)據(jù)率,對比表2中測試剖面1和測試剖面2的測試結(jié)果,可以看出測試剖面1情況下的RMS值明顯高于測試剖面2情況下的RMS值,即測試剖面2情況下的同步精度優(yōu)于測試剖面1情況下的同步精度。在以太網(wǎng)包長為256 B情況下,對比表3中測試剖面3和測試剖面4也可以得到同樣的結(jié)論。
(2)保持鎖定的能力與注入的背景數(shù)據(jù)流包長度、有效數(shù)據(jù)率相關(guān)性顯著:相
同包長度條件下,有效數(shù)據(jù)率越大,主從節(jié)點失鎖的概率越大。
在以太網(wǎng)包長為64 B情況下,表2中測試剖面1是基于615 Mbps的數(shù)據(jù)率來開展測試的,而試剖面2是基于305 Mbps的數(shù)據(jù)率,對比表2中測試剖面1和測試剖面2的測試結(jié)果,可以看出測試剖面1情況下的失鎖次數(shù)多于測試剖面2情況下的失鎖次數(shù)(在實驗中RMS值大多穩(wěn)定在300 μs左右,RMS值明顯高于500 μs 即被視為失鎖)。在以太網(wǎng)包長為256 B情況下,對比表3中測試剖面3和測試剖面4也可以得到同樣的結(jié)論。
(3)在實驗中的典型網(wǎng)絡(luò)流量條件下,主從節(jié)點可保持穩(wěn)定同步,排除表2~表5中的幾處失鎖情況之外,由測試數(shù)據(jù)可以看出:同步精度優(yōu)于359.5 μs,抖動優(yōu)于37.9 μs。
(4)按照IEEE 802.3以太網(wǎng)協(xié)議,相同有效數(shù)據(jù)率情況下,包長度越短,發(fā)包數(shù)量越多、傳輸效率越低、由交換機引入的傳輸延時不確定性越大,對主從節(jié)點時間同步的綜合性能影響也就越大。
對比表2和表3、表4、表5測試數(shù)據(jù)可知,在包長度64 B、有效數(shù)據(jù)率大于600 Mbps的極端情況下,主從節(jié)點鎖定后同步精度顯著變差、失鎖概率顯著變大,當網(wǎng)絡(luò)規(guī)劃中包長度設(shè)置在256 B以上時主從節(jié)點時間同步的綜合性能相對穩(wěn)定。
在以太網(wǎng)標準中沒有定義發(fā)送端時鐘與接收端恢復出來的時鐘關(guān)系,缺乏全網(wǎng)時鐘同步機制,采用IEEE 1588協(xié)議可以在以太網(wǎng)上進行時鐘同步。本文針對以太網(wǎng)數(shù)據(jù)傳輸時高精度對時的需求,對IEEE 1588協(xié)議進行了深入的分析,開發(fā)了基于IEEE 1588協(xié)議的PTP時鐘節(jié)點的設(shè)計,搭建了測試平臺,以PTP時鐘節(jié)點作為同步系統(tǒng)的核心組成,驗證了PTP協(xié)議在以太網(wǎng)傳輸環(huán)境下的性能,對PTP時間同步誤差來源進行了分析并采取了誤差補償措施,將時間同步提高到了亞微秒級。