鄭 翊
(中國電子科學(xué)研究院,北京 100041)
電子信息時(shí)代網(wǎng)絡(luò)化、智能化的飛速發(fā)展,系統(tǒng)各個(gè)節(jié)點(diǎn)之間對時(shí)間同步的需求也日益增高,為統(tǒng)一各系統(tǒng)之間的時(shí)間基準(zhǔn),許多時(shí)鐘同步協(xié)議應(yīng)運(yùn)而生,例如:參考廣播同步協(xié)議(RBS)[1]、無線傳感網(wǎng)時(shí)間同步協(xié)議(TPSN)[2]和洪泛時(shí)間同步協(xié)議(FTSP)[3]等?!熬軙r(shí)鐘同步協(xié)議標(biāo)準(zhǔn)”IEEE1588作為新的時(shí)間同步標(biāo)準(zhǔn)[4],可以實(shí)現(xiàn)物理層的時(shí)間同步,IEEE1588標(biāo)準(zhǔn)采用PTP精密時(shí)鐘同步協(xié)議,其精度可達(dá)微秒級別[5],提高了通過以太網(wǎng)進(jìn)行通信傳輸?shù)膶?shí)時(shí)性。
系統(tǒng)中各設(shè)備之間通信傳輸和各類事件的執(zhí)行順序都需要精確的時(shí)間同步,才可以準(zhǔn)確地完成各項(xiàng)指令和任務(wù),因此,在以太網(wǎng)傳輸系統(tǒng)中增加時(shí)間同步、時(shí)間觸發(fā)等服務(wù),來滿足系統(tǒng)的實(shí)時(shí)性需求。
網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)是當(dāng)前網(wǎng)絡(luò)中應(yīng)用最廣泛的同步協(xié)議[6],NTP協(xié)議采用在應(yīng)用層獲取報(bào)文時(shí)間戳的方式,可以提供百毫秒級的時(shí)間同步精度,該協(xié)議通過估算往返路由的時(shí)延差來縮小誤差,其通過在互聯(lián)網(wǎng)上指定多個(gè)時(shí)鐘源來對整個(gè)系統(tǒng)進(jìn)行授時(shí)[7],精度雖然可達(dá)毫秒級別,卻難以滿足對時(shí)間精度有更高需求的傳輸網(wǎng)絡(luò)。
PTP協(xié)議報(bào)文相對于NTP協(xié)議而言能獲得微秒級的時(shí)間同步精度,精度更高,PTP協(xié)議的時(shí)間戳加在物理層[8],其根本目的是在靠近網(wǎng)口的位置記錄時(shí)間標(biāo)記,保證寫入的時(shí)鐘速率與接收的時(shí)鐘速率在同一個(gè)誤差范圍內(nèi),從而降低信號傳輸?shù)臅r(shí)間偏移[9],來保證數(shù)據(jù)的正確傳送和處理。PTP協(xié)議設(shè)計(jì)用于精確同步分布式網(wǎng)絡(luò)通信中各個(gè)節(jié)點(diǎn)的實(shí)時(shí)時(shí)鐘,其基本構(gòu)思為通過硬件和軟件將網(wǎng)絡(luò)設(shè)備的內(nèi)時(shí)鐘與主控機(jī)的主時(shí)鐘實(shí)現(xiàn)同步[10]。PTP較NTP占用更少的網(wǎng)絡(luò)資源,同時(shí)具有和以太網(wǎng)兼容的特性,因此更適合在通過以太網(wǎng)傳輸?shù)耐ㄐ畔到y(tǒng)中使用。
本文詳細(xì)闡述了PTP協(xié)議時(shí)間同步過程,采用時(shí)鐘修正模型和最佳主時(shí)鐘(Best Master Clock BMC)算法對PTP性能產(chǎn)生的影響因素進(jìn)行了修正,將時(shí)間同步精度提高到了亞微秒級,并且通過測試得到了驗(yàn)證。
IEEE1588標(biāo)準(zhǔn)的目的是為了精確地把網(wǎng)絡(luò)系統(tǒng)中分散、獨(dú)立運(yùn)行的時(shí)鐘同步起來,IEEE1588系統(tǒng)中包括多個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)通過網(wǎng)絡(luò)相連接。在以太網(wǎng)中采用PTP技術(shù),首先是要形成一個(gè)主時(shí)鐘(Master)和多個(gè)從時(shí)鐘(Slave)的架構(gòu),將系統(tǒng)按主從關(guān)系建立起來,系統(tǒng)中最精確的時(shí)鐘(即Master)通過傳輸PTP協(xié)議報(bào)文來同步所有節(jié)點(diǎn)(即Slave)的時(shí)間,通過主從設(shè)備間傳遞PTP報(bào)文來計(jì)算時(shí)間偏移(Offset)和路徑時(shí)延(Delay),最終實(shí)現(xiàn)整個(gè)系統(tǒng)的時(shí)間同步[11]。
PTP系統(tǒng)的特點(diǎn)是主從時(shí)鐘之間傳遞消息遵循的唯一路徑原則,在主從時(shí)鐘之間通過交換已經(jīng)定義好的報(bào)文來實(shí)現(xiàn)時(shí)間同步,這些報(bào)文在物理層被打上時(shí)間戳,用以計(jì)算時(shí)間偏移和路徑時(shí)延,具體原理如圖1所示。
圖1 PTP協(xié)議同步過程
PTP協(xié)議主從設(shè)備之間報(bào)文傳遞過程為:
①t1時(shí)刻主時(shí)鐘發(fā)送時(shí)間同步(Sync Message)報(bào)文,該報(bào)文帶t1時(shí)刻信息,t1的時(shí)刻值由Master通過MAC層以下的邏輯直接填充;
②t2時(shí)刻從時(shí)鐘接收到Sync Message報(bào)文;
③t3時(shí)刻從時(shí)鐘發(fā)送延遲請求(Delay-Req Message)報(bào)文;
④t5時(shí)刻主時(shí)鐘發(fā)送延遲響應(yīng)請求(Delay-Resp Message)報(bào)文,帶t4時(shí)刻信息。
通過PTP報(bào)文傳遞過程可進(jìn)一步計(jì)算出時(shí)間偏移和路徑時(shí)延:
①t2-t1=Delay-Offset;
②t3-t4=Delay+Offset;
③ Offset=((t4-t3)-(t2-t1))/2;
④ Delay=((t4-t3)+(t2-t1))/2。
在理想環(huán)境下網(wǎng)絡(luò)延遲是對稱的,通過計(jì)算時(shí)間偏移和路徑時(shí)延可以得出時(shí)間同步精度,同時(shí)也是實(shí)現(xiàn)時(shí)間同步的過程。
與理想情況相比較,實(shí)際環(huán)境中對時(shí)間同步精度產(chǎn)生影響的主要因素是:
① PTP協(xié)議是通過PTP報(bào)文傳遞來實(shí)現(xiàn)的,傳遞過程中存儲轉(zhuǎn)發(fā)設(shè)備的延時(shí)會(huì)對同步精度產(chǎn)生影響;
② 主、從時(shí)鐘之間的網(wǎng)絡(luò)延時(shí)不完全對稱會(huì)對同步精度產(chǎn)生影響;
③ 系統(tǒng)中時(shí)鐘本身的漂移也會(huì)對同步精度產(chǎn)生影響。
這些對時(shí)間同步精度產(chǎn)生的影響因素可以通過時(shí)鐘模型來進(jìn)行修正,PTP時(shí)鐘模型主要包括普通時(shí)鐘、邊界時(shí)鐘和透明時(shí)鐘。
1.2.1 普通時(shí)鐘
普通時(shí)鐘模型最顯著的特點(diǎn)是各個(gè)系統(tǒng)節(jié)點(diǎn)某一時(shí)刻只能充當(dāng)主時(shí)鐘或者從時(shí)鐘,當(dāng)某個(gè)系統(tǒng)節(jié)點(diǎn)作為主時(shí)鐘的時(shí)候,可作為系統(tǒng)中最精確的時(shí)鐘源與外界時(shí)鐘進(jìn)行同步;當(dāng)某個(gè)系統(tǒng)節(jié)點(diǎn)作為從時(shí)鐘的時(shí)候,則與系統(tǒng)主時(shí)鐘進(jìn)行時(shí)間同步[12]。各節(jié)點(diǎn)設(shè)備作為普通時(shí)鐘時(shí)只有一個(gè)端口可作為通信接口與各節(jié)點(diǎn)開展報(bào)文交換,普通時(shí)鐘模型對應(yīng)于系統(tǒng)中的時(shí)鐘源。
1.2.2 邊界時(shí)鐘
邊界時(shí)鐘與普通時(shí)鐘最大的區(qū)別在于可以允許多個(gè)端口同時(shí)開展時(shí)間同步,這些端口共享同一個(gè)本地時(shí)鐘,并且邊界時(shí)鐘既可以充當(dāng)主時(shí)鐘也可以充當(dāng)從時(shí)鐘[13]。邊界時(shí)鐘模型相當(dāng)于對時(shí)過程中的中繼,既可以恢復(fù)時(shí)鐘又可以作為時(shí)鐘源向下傳遞時(shí)間,邊界時(shí)鐘對應(yīng)于系統(tǒng)中的中間網(wǎng)絡(luò)節(jié)點(diǎn)。
1.2.3 透明時(shí)鐘
透明時(shí)鐘可以校正主、從時(shí)鐘之間的延遲,但透明時(shí)鐘本身不恢復(fù)時(shí)間和頻率,只是對同步報(bào)文進(jìn)行轉(zhuǎn)發(fā)[14]。透明時(shí)鐘通過記錄PTP報(bào)文傳輸時(shí)的時(shí)間戳來計(jì)算出時(shí)延,從而進(jìn)行修正。系統(tǒng)網(wǎng)絡(luò)中自身不需要時(shí)鐘同步的設(shè)備(諸如配合處理PTP報(bào)文的設(shè)備等)可以使用透明時(shí)鐘邏輯模型。
本文通過搭建PTP測試平臺來驗(yàn)證PTP協(xié)議在實(shí)際以太網(wǎng)傳輸過程中所能達(dá)到的精度,測試設(shè)備包括PTP測試平臺、以太網(wǎng)背景流量注入設(shè)備、千兆以太網(wǎng)交換機(jī)、IEEE1588測試設(shè)備和示波器。PTP測試平臺硬件使用的是PHY芯片DP83867,在物理層加時(shí)間戳,并且PTP測試平臺分Master和Slave兩種狀態(tài),Master狀態(tài)試驗(yàn)件具備PTP主節(jié)點(diǎn)功能,同時(shí)也具備PTP從節(jié)點(diǎn)功能;Slave狀態(tài)試驗(yàn)件具備PTP從節(jié)點(diǎn)功能,能夠通過以太網(wǎng)與PTP主節(jié)點(diǎn)交換符合PTP協(xié)議的報(bào)文,實(shí)現(xiàn)自身時(shí)間對PTP主節(jié)點(diǎn)時(shí)間的跟蹤。該環(huán)境下,除包含PTP協(xié)議功能的設(shè)備之外的配試設(shè)備包括以太網(wǎng)背景流量注入設(shè)備,用以生成不同程度的流量,模擬近似真實(shí)情況下的網(wǎng)絡(luò);千兆以太網(wǎng)交換機(jī)用來模擬網(wǎng)絡(luò)中經(jīng)過交換設(shè)備對同步精度的影響;通過IEEE1588測試設(shè)備來測量主時(shí)鐘和從時(shí)鐘之間的時(shí)間差;最后通過示波器來觀測實(shí)驗(yàn)結(jié)果。具體測試環(huán)境如圖2所示。
通過對PTP時(shí)間同步原型的設(shè)計(jì),具體測試過程如下:
① 按照圖2搭建測試環(huán)境;
圖2 IEEE1588測試環(huán)境
② 啟動(dòng)以太網(wǎng)背景流量注入設(shè)備,測試模式選擇“IEEE1588”,點(diǎn)擊啟動(dòng)測試按鈕,以從節(jié)點(diǎn)為目的地址通過以太網(wǎng)接口注入背景數(shù)據(jù)流,模擬多種典型網(wǎng)絡(luò)背景流量(分別采用615 Mbps、305 Mbps、744 Mbps、 606 Mbps、612 Mbps等,具體設(shè)置情況如表1所示);
③ 主節(jié)點(diǎn)已上電工作,從節(jié)點(diǎn)加電,等待從節(jié)點(diǎn)指示與主節(jié)點(diǎn)鎖定;
④ 從節(jié)點(diǎn)指示與主節(jié)點(diǎn)鎖定后,利用示波器“延遲測量”功能,每1~2 s讀取一次主節(jié)點(diǎn)輸出1PPS上升沿與從節(jié)點(diǎn)輸出1PPS上升沿之間的時(shí)間差,共測量10次,求均方根用以形成同步精度測試結(jié)果;
⑤ 主節(jié)點(diǎn)保持上電工作、從節(jié)點(diǎn)斷電;
⑥ 重復(fù)第①~第⑤步驟對不同以太網(wǎng)包長(分別采用64 B、256 B、512 B和1 024 B以太網(wǎng)包長)情況下的時(shí)間同步進(jìn)行測試,使用示波器觀測時(shí)間同步效果。
表1 測試背景流量注入情況
上電初始化后的時(shí)刻/min測試剖面1測試剖面2測試剖面3測試剖面4測試剖面5測試剖面6包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps1064615643052567442565925126061 0246122064615643052567442565925126061 0246123064615643052567442565925126061 0246124064615643052563722562615123031 0243065064615643052563722562615123031 024306
在該實(shí)驗(yàn)當(dāng)中,PTP主節(jié)點(diǎn)和PTP從節(jié)點(diǎn)相當(dāng)于系統(tǒng)中對時(shí)的發(fā)起端和接收端,主從時(shí)鐘之間傳輸延遲的一致性對系統(tǒng)精度起著至關(guān)重要的作用,當(dāng)系統(tǒng)中存在諸如交換機(jī)等網(wǎng)絡(luò)設(shè)備時(shí),會(huì)對傳輸路徑的對稱性產(chǎn)生影響。為降低由于傳輸路徑不對稱而對系統(tǒng)精度帶來的影響,同時(shí)為了避免在系統(tǒng)設(shè)計(jì)過程中出現(xiàn)多個(gè)時(shí)鐘源,試驗(yàn)過程中采用了最佳主時(shí)鐘(Best Master Clock,BMC)算法[15]。
BMC算法的原理是各端口定期發(fā)送報(bào)文來通告時(shí)鐘信息,每單板上的各端口收到時(shí)鐘信息,得出這個(gè)單板的最佳時(shí)鐘源,時(shí)鐘板比較各單板選出的最佳時(shí)鐘源后最終選擇出一個(gè)并下發(fā)給各端口進(jìn)行同步,同時(shí),根據(jù)最佳時(shí)鐘源和其它相關(guān)信息,BMC算法和端口狀態(tài)機(jī)共同決定出端口的狀態(tài)[16]。BMC算法通過報(bào)文宣告各端口上的時(shí)鐘源信息,通過維護(hù)本地獲得的時(shí)鐘數(shù)據(jù)組,按嚴(yán)格時(shí)鐘等級選擇出最佳時(shí)鐘源。該算法對整個(gè)網(wǎng)絡(luò)的時(shí)鐘生成時(shí)鐘樹,產(chǎn)生不同等級的主從關(guān)系,從時(shí)鐘與主時(shí)鐘進(jìn)行同步,從而消除時(shí)鐘環(huán)路。
通過上述試驗(yàn)測得PTP協(xié)議在不同以太網(wǎng)包長度下的性能,當(dāng)以太網(wǎng)包長為64B時(shí)測試結(jié)果如表2所示(測試剖面1、測試剖面2是分別對應(yīng)表1中測試剖面1、測試剖面2的包長度和數(shù)據(jù)率)。
表2 以太網(wǎng)包長64B時(shí)測試結(jié)果
序號測試項(xiàng)目測試指標(biāo)測試剖面1測試剖面21從上電初始化到鎖定所需時(shí)長鎖定時(shí)間/s20023023上電初始化后10 min主從1PPS延遲RMS/μs138.487標(biāo)準(zhǔn)差/μs10.932.945上電初始化后20 min主從1PPS延遲RMS/μs309102標(biāo)準(zhǔn)差/μs6.61567上電初始化后30 min主從1PPS延遲RMS/μs309.125.6標(biāo)準(zhǔn)差/μs10.81.989上電初始化后40 min主從1PPS延遲RMS/μs17371389.6標(biāo)準(zhǔn)差/μs9.47.41011上電初始化后50 min主從1PPS延遲RMS/μs36.229.1標(biāo)準(zhǔn)差/μs24.519.6
當(dāng)以太網(wǎng)包長為256 B時(shí)測試結(jié)果如表3所示(測試剖面3、測試剖面4是分別對應(yīng)表1中測試剖面3、測試剖面4的包長度和數(shù)據(jù)率)。
表3 以太網(wǎng)包長256B時(shí)測試結(jié)果
序號測試項(xiàng)目測試指標(biāo)測試剖面3測試剖面41從上電初始化到鎖定所需時(shí)長鎖定時(shí)間/s24630523上電初始化后10 min主從1PPS延遲RMS/μs313.2184.6標(biāo)準(zhǔn)差/μs21.41245上電初始化后20 min主從1PPS延遲RMS/μs124.265.7標(biāo)準(zhǔn)差/μs21.130.467上電初始化后30 min主從1PPS延遲RMS/μs764.7109.9標(biāo)準(zhǔn)差/μs25.39.489上電初始化后40 min主從1PPS延遲RMS/μs35.829.4標(biāo)準(zhǔn)差/μs8.416.31011上電初始化后50 min主從1PPS延遲RMS/μs6.65.5標(biāo)準(zhǔn)差/μs64.9
當(dāng)以太網(wǎng)包長為512 B時(shí)測試結(jié)果如表4(測試剖面5是基于表1中測試剖面5的包長度和數(shù)據(jù)率)。
表4 以太網(wǎng)包長512B時(shí)測試結(jié)果
序號測試項(xiàng)目測試指標(biāo)測試剖面51從上電初始化到鎖定所需時(shí)長鎖定時(shí)間/s24523上電初始化后10 min主從1PPS延遲RMS/μs252標(biāo)準(zhǔn)差/μs17.145上電初始化后20 min主從1PPS延遲RMS/μs262.2標(biāo)準(zhǔn)差/μs23.867上電初始化后30 min主從1PPS延遲RMS/μs194.8標(biāo)準(zhǔn)差/μs25.689上電初始化后40 min主從1PPS延遲RMS/μs148.8標(biāo)準(zhǔn)差/μs14.21011上電初始化后50 min主從1PPS延遲RMS/μs78標(biāo)準(zhǔn)差/μs33.3
當(dāng)以太網(wǎng)包長為1 024 B時(shí)測試結(jié)果如表5所示(測試剖面6是基于表1中測試剖面6的包長度和數(shù)據(jù)率)。
表5 以太網(wǎng)包長1 024 B時(shí)測試結(jié)果
序號測試項(xiàng)目測試指標(biāo)測試剖面61從上電初始化到鎖定所需時(shí)長鎖定時(shí)間/s31423上電初始化后10 min主從1PPS延遲RMS/μs207.4標(biāo)準(zhǔn)差/μs16.445上電初始化后20 min主從1PPS延遲RMS/μs136.4標(biāo)準(zhǔn)差/μs14.467上電初始化后30 min主從1PPS延遲RMS/μs128.4標(biāo)準(zhǔn)差/μs8.689上電初始化后40 min主從1PPS延遲RMS/μs120.6標(biāo)準(zhǔn)差/μs13.21011上電初始化后50 min主從1PPS延遲RMS/μs10.4標(biāo)準(zhǔn)差/μs10.9
從使用角度考慮,用戶對于PTP最關(guān)注的兩項(xiàng)指標(biāo)之一是對時(shí)精度,對時(shí)精度可以從試驗(yàn)測試結(jié)果的RMS數(shù)據(jù)得出結(jié)論;另外一項(xiàng)指標(biāo)是失鎖率,即PTP對時(shí)機(jī)制在使用過程中的穩(wěn)定性,可以從試驗(yàn)測試結(jié)果的標(biāo)準(zhǔn)差數(shù)據(jù)得出結(jié)論。對表2至表5中的RMS值和標(biāo)準(zhǔn)差值進(jìn)行分析可以得出以下結(jié)論:
① 時(shí)間同步精度與注入的背景數(shù)據(jù)流包長度、有效數(shù)據(jù)率相關(guān)性顯著:相同包長度條件下,有效數(shù)據(jù)率越大,主從節(jié)點(diǎn)同步精度越差。
在以太網(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é)論。
② 保持鎖定的能力與注入的背景數(shù)據(jù)流包長度、有效數(shù)據(jù)率相關(guān)性顯著:相同包長度條件下,有效數(shù)據(jù)率越大,主從節(jié)點(diǎn)失鎖的概率越大。
在以太網(wǎng)包長為64 B情況下,表2中測試剖面1是基于615 Mbps的數(shù)據(jù)率來開展測試的,而試剖面2是基于305 Mbps的數(shù)據(jù)率,對比表2中測試剖面1和測試剖面2的測試結(jié)果,可以看出測試剖面1情況下的失鎖次數(shù)多于測試剖面2情況下的失鎖次數(shù)(在實(shí)驗(yàn)中RMS值大多穩(wěn)定在300 μs左右,RMS值明顯高于500 μs 即被視為失鎖)。在以太網(wǎng)包長為256 B情況下,對比表3中測試剖面3和測試剖面4也可以得到同樣的結(jié)論。
③ 在實(shí)驗(yàn)中的典型網(wǎng)絡(luò)流量條件下,主從節(jié)點(diǎn)可保持穩(wěn)定同步,排除表2至表5中的幾處失鎖情況之外,由測試數(shù)據(jù)可以看出:同步精度優(yōu)于359.5 μs,抖動(dòng)優(yōu)于37.9 μs。
④ 按照IEEE 802.3以太網(wǎng)協(xié)議,相同有效數(shù)據(jù)率情況下,包長度越短,發(fā)包數(shù)量越多、傳輸效率越低、由交換機(jī)引入的傳輸延時(shí)不確定性越大,對主從節(jié)點(diǎn)時(shí)間同步的綜合性能影響也就越大。
對比表2、表3、表4和表5的測試數(shù)據(jù)可知,在包長度64 B、有效數(shù)據(jù)率大于600 Mbps的極端情況下,主從節(jié)點(diǎn)鎖定后同步精度顯著變差、失鎖概率顯著變大,當(dāng)網(wǎng)絡(luò)規(guī)劃中包長度設(shè)置在256 B以上時(shí)主從節(jié)點(diǎn)時(shí)間同步的綜合性能相對穩(wěn)定。
在以太網(wǎng)標(biāo)準(zhǔn)中沒有定義發(fā)送端時(shí)鐘與接收端時(shí)鐘恢復(fù)出來的時(shí)鐘關(guān)系,缺乏全網(wǎng)時(shí)鐘同步機(jī)制,采用IEEE 1588標(biāo)準(zhǔn)可以在以太網(wǎng)上進(jìn)行時(shí)鐘同步。本文以提高以太網(wǎng)數(shù)據(jù)傳輸?shù)膶r(shí)精度為目的,對PTP協(xié)議進(jìn)行了深入地分析,開發(fā)了PTP時(shí)鐘節(jié)點(diǎn)的設(shè)計(jì),搭建了測試平臺,以PTP時(shí)鐘節(jié)點(diǎn)作為同步系統(tǒng)的核心組成,驗(yàn)證了PTP協(xié)議在以太網(wǎng)傳輸環(huán)境下的性能,對PTP時(shí)間同步誤差來源進(jìn)行了分析并采取了誤差補(bǔ)償措施,將時(shí)間同步精度提高到了亞微秒級。