鄭 翊
(中國電子科學研究院,北京 100041)
電子信息時代網絡化、智能化的飛速發展,系統各個節點之間對時間同步的需求也日益增高,為統一各系統之間的時間基準,許多時鐘同步協議應運而生,例如:參考廣播同步協議(RBS)[1]、無線傳感網時間同步協議(TPSN)[2]和洪泛時間同步協議(FTSP)[3]等。“精密時鐘同步協議標準”IEEE1588作為新的時間同步標準[4],可以實現物理層的時間同步,IEEE1588標準采用PTP精密時鐘同步協議,其精度可達微秒級別[5],提高了通過以太網進行通信傳輸的實時性。
系統中各設備之間通信傳輸和各類事件的執行順序都需要精確的時間同步,才可以準確地完成各項指令和任務,因此,在以太網傳輸系統中增加時間同步、時間觸發等服務,來滿足系統的實時性需求。
網絡時間協議(NTP)是當前網絡中應用最廣泛的同步協議[6],NTP協議采用在應用層獲取報文時間戳的方式,可以提供百毫秒級的時間同步精度,該協議通過估算往返路由的時延差來縮小誤差,其通過在互聯網上指定多個時鐘源來對整個系統進行授時[7],精度雖然可達毫秒級別,卻難以滿足對時間精度有更高需求的傳輸網絡。
PTP協議報文相對于NTP協議而言能獲得微秒級的時間同步精度,精度更高,PTP協議的時間戳加在物理層[8],其根本目的是在靠近網口的位置記錄時間標記,保證寫入的時鐘速率與接收的時鐘速率在同一個誤差范圍內,從而降低信號傳輸的時間偏移[9],來保證數據的正確傳送和處理。PTP協議設計用于精確同步分布式網絡通信中各個節點的實時時鐘,其基本構思為通過硬件和軟件將網絡設備的內時鐘與主控機的主時鐘實現同步[10]。PTP較NTP占用更少的網絡資源,同時具有和以太網兼容的特性,因此更適合在通過以太網傳輸的通信系統中使用。
本文詳細闡述了PTP協議時間同步過程,采用時鐘修正模型和最佳主時鐘(Best Master Clock BMC)算法對PTP性能產生的影響因素進行了修正,將時間同步精度提高到了亞微秒級,并且通過測試得到了驗證。
IEEE1588標準的目的是為了精確地把網絡系統中分散、獨立運行的時鐘同步起來,IEEE1588系統中包括多個節點,各節點通過網絡相連接。在以太網中采用PTP技術,首先是要形成一個主時鐘(Master)和多個從時鐘(Slave)的架構,將系統按主從關系建立起來,系統中最精確的時鐘(即Master)通過傳輸PTP協議報文來同步所有節點(即Slave)的時間,通過主從設備間傳遞PTP報文來計算時間偏移(Offset)和路徑時延(Delay),最終實現整個系統的時間同步[11]。
PTP系統的特點是主從時鐘之間傳遞消息遵循的唯一路徑原則,在主從時鐘之間通過交換已經定義好的報文來實現時間同步,這些報文在物理層被打上時間戳,用以計算時間偏移和路徑時延,具體原理如圖1所示。

圖1 PTP協議同步過程
PTP協議主從設備之間報文傳遞過程為:
①t1時刻主時鐘發送時間同步(Sync Message)報文,該報文帶t1時刻信息,t1的時刻值由Master通過MAC層以下的邏輯直接填充;
②t2時刻從時鐘接收到Sync Message報文;
③t3時刻從時鐘發送延遲請求(Delay-Req Message)報文;
④t5時刻主時鐘發送延遲響應請求(Delay-Resp Message)報文,帶t4時刻信息。
通過PTP報文傳遞過程可進一步計算出時間偏移和路徑時延:
①t2-t1=Delay-Offset;
②t3-t4=Delay+Offset;
③ Offset=((t4-t3)-(t2-t1))/2;
④ Delay=((t4-t3)+(t2-t1))/2。
在理想環境下網絡延遲是對稱的,通過計算時間偏移和路徑時延可以得出時間同步精度,同時也是實現時間同步的過程。
與理想情況相比較,實際環境中對時間同步精度產生影響的主要因素是:
① PTP協議是通過PTP報文傳遞來實現的,傳遞過程中存儲轉發設備的延時會對同步精度產生影響;
② 主、從時鐘之間的網絡延時不完全對稱會對同步精度產生影響;
③ 系統中時鐘本身的漂移也會對同步精度產生影響。
這些對時間同步精度產生的影響因素可以通過時鐘模型來進行修正,PTP時鐘模型主要包括普通時鐘、邊界時鐘和透明時鐘。
1.2.1 普通時鐘
普通時鐘模型最顯著的特點是各個系統節點某一時刻只能充當主時鐘或者從時鐘,當某個系統節點作為主時鐘的時候,可作為系統中最精確的時鐘源與外界時鐘進行同步;當某個系統節點作為從時鐘的時候,則與系統主時鐘進行時間同步[12]。各節點設備作為普通時鐘時只有一個端口可作為通信接口與各節點開展報文交換,普通時鐘模型對應于系統中的時鐘源。
1.2.2 邊界時鐘
邊界時鐘與普通時鐘最大的區別在于可以允許多個端口同時開展時間同步,這些端口共享同一個本地時鐘,并且邊界時鐘既可以充當主時鐘也可以充當從時鐘[13]。邊界時鐘模型相當于對時過程中的中繼,既可以恢復時鐘又可以作為時鐘源向下傳遞時間,邊界時鐘對應于系統中的中間網絡節點。
1.2.3 透明時鐘
透明時鐘可以校正主、從時鐘之間的延遲,但透明時鐘本身不恢復時間和頻率,只是對同步報文進行轉發[14]。透明時鐘通過記錄PTP報文傳輸時的時間戳來計算出時延,從而進行修正。系統網絡中自身不需要時鐘同步的設備(諸如配合處理PTP報文的設備等)可以使用透明時鐘邏輯模型。
本文通過搭建PTP測試平臺來驗證PTP協議在實際以太網傳輸過程中所能達到的精度,測試設備包括PTP測試平臺、以太網背景流量注入設備、千兆以太網交換機、IEEE1588測試設備和示波器。PTP測試平臺硬件使用的是PHY芯片DP83867,在物理層加時間戳,并且PTP測試平臺分Master和Slave兩種狀態,Master狀態試驗件具備PTP主節點功能,同時也具備PTP從節點功能;Slave狀態試驗件具備PTP從節點功能,能夠通過以太網與PTP主節點交換符合PTP協議的報文,實現自身時間對PTP主節點時間的跟蹤。該環境下,除包含PTP協議功能的設備之外的配試設備包括以太網背景流量注入設備,用以生成不同程度的流量,模擬近似真實情況下的網絡;千兆以太網交換機用來模擬網絡中經過交換設備對同步精度的影響;通過IEEE1588測試設備來測量主時鐘和從時鐘之間的時間差;最后通過示波器來觀測實驗結果。具體測試環境如圖2所示。
通過對PTP時間同步原型的設計,具體測試過程如下:
① 按照圖2搭建測試環境;

圖2 IEEE1588測試環境
② 啟動以太網背景流量注入設備,測試模式選擇“IEEE1588”,點擊啟動測試按鈕,以從節點為目的地址通過以太網接口注入背景數據流,模擬多種典型網絡背景流量(分別采用615 Mbps、305 Mbps、744 Mbps、 606 Mbps、612 Mbps等,具體設置情況如表1所示);
③ 主節點已上電工作,從節點加電,等待從節點指示與主節點鎖定;
④ 從節點指示與主節點鎖定后,利用示波器“延遲測量”功能,每1~2 s讀取一次主節點輸出1PPS上升沿與從節點輸出1PPS上升沿之間的時間差,共測量10次,求均方根用以形成同步精度測試結果;
⑤ 主節點保持上電工作、從節點斷電;
⑥ 重復第①~第⑤步驟對不同以太網包長(分別采用64 B、256 B、512 B和1 024 B以太網包長)情況下的時間同步進行測試,使用示波器觀測時間同步效果。
表1 測試背景流量注入情況

上電初始化后的時刻/min測試剖面1測試剖面2測試剖面3測試剖面4測試剖面5測試剖面6包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps包長度/B吞吐量/Mbps1064615643052567442565925126061 0246122064615643052567442565925126061 0246123064615643052567442565925126061 0246124064615643052563722562615123031 0243065064615643052563722562615123031 024306
在該實驗當中,PTP主節點和PTP從節點相當于系統中對時的發起端和接收端,主從時鐘之間傳輸延遲的一致性對系統精度起著至關重要的作用,當系統中存在諸如交換機等網絡設備時,會對傳輸路徑的對稱性產生影響。為降低由于傳輸路徑不對稱而對系統精度帶來的影響,同時為了避免在系統設計過程中出現多個時鐘源,試驗過程中采用了最佳主時鐘(Best Master Clock,BMC)算法[15]。
BMC算法的原理是各端口定期發送報文來通告時鐘信息,每單板上的各端口收到時鐘信息,得出這個單板的最佳時鐘源,時鐘板比較各單板選出的最佳時鐘源后最終選擇出一個并下發給各端口進行同步,同時,根據最佳時鐘源和其它相關信息,BMC算法和端口狀態機共同決定出端口的狀態[16]。BMC算法通過報文宣告各端口上的時鐘源信息,通過維護本地獲得的時鐘數據組,按嚴格時鐘等級選擇出最佳時鐘源。該算法對整個網絡的時鐘生成時鐘樹,產生不同等級的主從關系,從時鐘與主時鐘進行同步,從而消除時鐘環路。
通過上述試驗測得PTP協議在不同以太網包長度下的性能,當以太網包長為64B時測試結果如表2所示(測試剖面1、測試剖面2是分別對應表1中測試剖面1、測試剖面2的包長度和數據率)。
表2 以太網包長64B時測試結果

序號測試項目測試指標測試剖面1測試剖面21從上電初始化到鎖定所需時長鎖定時間/s20023023上電初始化后10 min主從1PPS延遲RMS/μs138.487標準差/μs10.932.945上電初始化后20 min主從1PPS延遲RMS/μs309102標準差/μs6.61567上電初始化后30 min主從1PPS延遲RMS/μs309.125.6標準差/μs10.81.989上電初始化后40 min主從1PPS延遲RMS/μs17371389.6標準差/μs9.47.41011上電初始化后50 min主從1PPS延遲RMS/μs36.229.1標準差/μs24.519.6
當以太網包長為256 B時測試結果如表3所示(測試剖面3、測試剖面4是分別對應表1中測試剖面3、測試剖面4的包長度和數據率)。
表3 以太網包長256B時測試結果

序號測試項目測試指標測試剖面3測試剖面41從上電初始化到鎖定所需時長鎖定時間/s24630523上電初始化后10 min主從1PPS延遲RMS/μs313.2184.6標準差/μs21.41245上電初始化后20 min主從1PPS延遲RMS/μs124.265.7標準差/μs21.130.467上電初始化后30 min主從1PPS延遲RMS/μs764.7109.9標準差/μs25.39.489上電初始化后40 min主從1PPS延遲RMS/μs35.829.4標準差/μs8.416.31011上電初始化后50 min主從1PPS延遲RMS/μs6.65.5標準差/μs64.9
當以太網包長為512 B時測試結果如表4(測試剖面5是基于表1中測試剖面5的包長度和數據率)。
表4 以太網包長512B時測試結果

序號測試項目測試指標測試剖面51從上電初始化到鎖定所需時長鎖定時間/s24523上電初始化后10 min主從1PPS延遲RMS/μs252標準差/μs17.145上電初始化后20 min主從1PPS延遲RMS/μs262.2標準差/μs23.867上電初始化后30 min主從1PPS延遲RMS/μs194.8標準差/μs25.689上電初始化后40 min主從1PPS延遲RMS/μs148.8標準差/μs14.21011上電初始化后50 min主從1PPS延遲RMS/μs78標準差/μs33.3
當以太網包長為1 024 B時測試結果如表5所示(測試剖面6是基于表1中測試剖面6的包長度和數據率)。
表5 以太網包長1 024 B時測試結果

序號測試項目測試指標測試剖面61從上電初始化到鎖定所需時長鎖定時間/s31423上電初始化后10 min主從1PPS延遲RMS/μs207.4標準差/μs16.445上電初始化后20 min主從1PPS延遲RMS/μs136.4標準差/μs14.467上電初始化后30 min主從1PPS延遲RMS/μs128.4標準差/μs8.689上電初始化后40 min主從1PPS延遲RMS/μs120.6標準差/μs13.21011上電初始化后50 min主從1PPS延遲RMS/μs10.4標準差/μs10.9
從使用角度考慮,用戶對于PTP最關注的兩項指標之一是對時精度,對時精度可以從試驗測試結果的RMS數據得出結論;另外一項指標是失鎖率,即PTP對時機制在使用過程中的穩定性,可以從試驗測試結果的標準差數據得出結論。對表2至表5中的RMS值和標準差值進行分析可以得出以下結論:
① 時間同步精度與注入的背景數據流包長度、有效數據率相關性顯著:相同包長度條件下,有效數據率越大,主從節點同步精度越差。
在以太網包長為64 B情況下,表2中測試剖面1是基于615 Mbps的數據率來開展測試的,而試剖面2是基于305 Mbps的數據率,對比表2中測試剖面1和測試剖面2的測試結果,可以看出測試剖面1情況下的RMS值明顯高于測試剖面2情況下的RMS值,即測試剖面2情況下的同步精度優于測試剖面1情況下的同步精度。在以太網包長為256 B情況下,對比表3中測試剖面3和測試剖面4也可以得到同樣的結論。
② 保持鎖定的能力與注入的背景數據流包長度、有效數據率相關性顯著:相同包長度條件下,有效數據率越大,主從節點失鎖的概率越大。
在以太網包長為64 B情況下,表2中測試剖面1是基于615 Mbps的數據率來開展測試的,而試剖面2是基于305 Mbps的數據率,對比表2中測試剖面1和測試剖面2的測試結果,可以看出測試剖面1情況下的失鎖次數多于測試剖面2情況下的失鎖次數(在實驗中RMS值大多穩定在300 μs左右,RMS值明顯高于500 μs 即被視為失鎖)。在以太網包長為256 B情況下,對比表3中測試剖面3和測試剖面4也可以得到同樣的結論。
③ 在實驗中的典型網絡流量條件下,主從節點可保持穩定同步,排除表2至表5中的幾處失鎖情況之外,由測試數據可以看出:同步精度優于359.5 μs,抖動優于37.9 μs。
④ 按照IEEE 802.3以太網協議,相同有效數據率情況下,包長度越短,發包數量越多、傳輸效率越低、由交換機引入的傳輸延時不確定性越大,對主從節點時間同步的綜合性能影響也就越大。
對比表2、表3、表4和表5的測試數據可知,在包長度64 B、有效數據率大于600 Mbps的極端情況下,主從節點鎖定后同步精度顯著變差、失鎖概率顯著變大,當網絡規劃中包長度設置在256 B以上時主從節點時間同步的綜合性能相對穩定。
在以太網標準中沒有定義發送端時鐘與接收端時鐘恢復出來的時鐘關系,缺乏全網時鐘同步機制,采用IEEE 1588標準可以在以太網上進行時鐘同步。本文以提高以太網數據傳輸的對時精度為目的,對PTP協議進行了深入地分析,開發了PTP時鐘節點的設計,搭建了測試平臺,以PTP時鐘節點作為同步系統的核心組成,驗證了PTP協議在以太網傳輸環境下的性能,對PTP時間同步誤差來源進行了分析并采取了誤差補償措施,將時間同步精度提高到了亞微秒級。