什麼是1588v2
1588v2是網路測量和控制系統的精密時間同步協議標準,也可稱為PTPv2(Precision Time Protocol Version 2,精密時間協議V2版本)。1588v2是由IEEE標準組織釋出的業界標準,用於實現裝置之間的高精度時間同步,也可以用來進行裝置之間的頻率同步。藉助於硬體記錄時戳的優勢,1588v2相對於NTP(Network Time Protocol,網路時間協議),可以達到亞微秒級的時間同步精度,能夠滿足無線基站的時間同步需求。相比於傳統GPS高精度時間同步方案,1588v2在成本、維護、安全等方面有一定的優勢,已成為業界最熱門的時間同步協議。
- 什麼是同步?
- 為什麼需要1588v2?
- 1588v2的發展歷史
- 1588v2是如何實現同步的?
- 1588v2的應用場景
- 縮略語
什麼是同步?
同步是指兩個或兩個以上訊號之間,在頻率或相位上保持某種特定關係,即兩個或兩個以上訊號在相對應的有效瞬間,其相位差或頻率差保持在約定的允許範圍之內。同步可分為:
- 頻率同步:又稱為時鐘同步,是指訊號之間的頻率或相位上保持某種嚴格的特定關係,訊號在其相對應的有效瞬間以同一平均速率出現,以維持通訊網路中所有的裝置以相同的速率執行,即訊號之間保持恆定相位差。
- 時間同步:又稱為相位同步,是指訊號之間的相位都保持一致,即訊號之間相位差或者時間差恆定為零,或者在約定的允許範圍之內。一般而言,兩個裝置之間的時間同步首先需要保證兩個裝置之間達到頻率同步。
下圖給出了時間同步與頻率同步的區別。如果兩個表(Watch A與Watch B)每時每刻的時間都保持一致,這個狀態叫時間同步;如果兩個表的時間不一樣,但是保持一個恆定的差,比如6小時,那麼這個狀態稱為頻率同步。
時間同步與頻率同步示意圖
為什麼需要1588v2?
在IP RAN(Radio Access Network,無線接入網路)中,所有無線制式的基站都需要實現頻率同步,不同基站之間的頻率必須同步在一定精度之內,否則手機進行基站切換時會出現掉線。而一些採用TDD(Time Division Duplex,時分雙工)機制的無線制式,如TD-SCDMA、CDMA2000、LTE-TDD、5G NR TDD等,在頻率同步之外還特別要求精確時間同步,任意兩個基站之間時間同步精度小於3μs(或每個基站相對於標準時間源之間的時間誤差在±1.5μs內)。此外,無線行動網路中CoMP、E-MBMS、eICIC、CA等增值業務的出現,也要求基站之間必須實現時間同步。傳統的時間同步實現方案包括:
- 衛星時間同步:在每個基站安裝衛星天線,可以從空中的GPS或者北斗衛星獲取精確時間。但是此方案的衛星天線存在安裝選址難、維護困難、成本高和安全隱患高等諸多問題,比如:衛星訊號易被干擾和欺騙,存在安全性問題。
- NTP時間同步:在網路側部署NTP時間伺服器,透過NTP報文給每個基站提供時間。該方案最大的缺點是隻能滿足毫秒級別的時間傳遞精度,這對於無線基站所需的微秒級時間精度是遠遠不夠的。
針對上述兩種方案的種種弊端,運營商迫切希望能夠有一種高精度的地面傳送時間同步方案。而1588v2協議,透過地面光纖或者電纜傳遞1588v2報文,避免了安全性問題;同時,藉助於硬體打戳的優勢,1588v2協議可實現亞微秒級精度的時間同步,滿足無線基站±1.5μs精度要求,成為業界最熱門的時間同步協議。
1588v2的發展歷史
為了滿足工業領域中精確時間控制的需求,IEEE在2002年釋出了1588v1版本。隨著1588v1版本在工業控制領域的廣泛應用,以及電信網路等領域的高精度時間同步需求, IEEE在2008年釋出1588v2版本(因此,也可稱之為IEEE 1588-2008標準)。當前最新發布的版本為1588v2.1標準,在2019年釋出(因此,也可稱之為IEEE 1588-2019標準)。1588協議版本改動點和相容性如下表所示。
版本號 |
釋出時間 |
改動點 |
相容性 |
---|---|---|---|
1588v1(IEEE 1588-2002) |
2002年 |
- |
- |
1588v2(IEEE 1588-2008) |
2008年 |
相對於1588v1版本,1588v2版本的改動點如下:
|
不相容1588v1 |
1588v2.1(IEEE 1588-2019) |
2019年 |
相對於1588v2版本,1588v2.1版本的改動點如下:
|
相容1588v2,但不相容1588v1 |
雖然1588標準定義了協議的基本功能,但由於各個行業領域時間同步的解決方案和同步精度要求不同,各個應用領域需要基於各自需求再重新定義1588行業標準,滿足各領域的同步需求,保證互通對接。
注:相比於1588v1版本,1588v2版本特性有所增強,現在1588v1基本已被1588v2取代,因此下文主要介紹1588v2。1588v2協議目前已應用於諸多領域:
1588v2應用領域
- 電信領域:國際電信聯盟 ITU針對4G/5G網路無線基站的同步需求,定義了一系列標準,包括頻率同步標準ITU-T G.826x和時間同步標準ITU-T G.827x。其中,ITU-T G.8275.1定義了1588v2時間同步互聯互通標準,保證不同廠商可以對接。此外,中國通訊標準化協會CCSA針對中國運營商的需求和網路結構,定義了適用於國內運營商的1588v2標準CCSA YD/T-2375。
- 工業領域:自動化工業網路為了保證自動化生產,要求各工業終端有統一的時間,裝置之間達成高精度時間同步,目前業界存在兩個1588v2工業網路標準,IEEE 802.1AS和IEC 62439-3。
- 電力領域:電力網路的繼電保護,故障及時恢復等場景要求各電力裝置具有高精度時間同步,保證故障快速恢復。業界當前已定義兩個1588v2電力網路標準,IEEE C37.238和IEC 61850-9-3,為電力網路提供了一個乙太網通訊架構。
- 媒資網:隨著高畫質影片轉播對大頻寬的要求,媒資網路(如中央電視臺的網路)由傳統的SDI(Serial Digital Interface,序列數字介面)網路逐步轉向IP化,因此也採用了IP網路傳遞1588v2報文給各媒資終端,保證各媒資終端高畫質影片轉播。目前業界存在兩個行業標準,SMPTE ST-2059和AES 67。
- 資料中心:由於分散式資料計算的需求,資料中心也對高精度時間同步提出了要求。目前業界還沒有正式的行業標準,資料中心頭部公司META制定了1588v2在資料中心的開源標準OCP-PTP。
- 車載:智慧化汽車和自動駕駛也對車內部各網路模組提出了高精度時間同步要求。車載聯盟AVNU制定了1588v2在車載行業的標準AutoSar-PTP。
1588v2是如何實現同步的?
時間同步網路中的每個節點,都被稱為Clock。1588v2協議定義了三種基本的時鐘節點型別:
- OC(Ordinary Clock,普通時鐘)
節點僅有一個物理埠同網路通訊,既可作為首節點(Grandmaster Clock,最高階時鐘)向下遊節點發布時間,也可作為末節點(Slave Clock,從時鐘)從上游節點同步時間。如1588伺服器一般配置為OC模式,作為整個網路的Grandmaster Clock;而使用者終端(如:無線基站)作為最末端的Slave Clock裝置,也配置為OC模式。
- BC(Boundary Clock,邊界時鐘)
節點有多個物理埠與網路通訊,其中一個埠從上游裝置同步時間,其餘多個埠向下遊裝置釋出時間。
- TC(Transparent Clock,透明時鐘)
節點有多個物理埠與網路通訊,只在埠之間處理和轉發1588v2協議報文,並不從任何一個埠同步時間。TC節點分成兩種型別:E2E TC(End-to-End Transparent Clock)、P2P TC(Peer-to-Peer Transparent Clock)。
E2E TC轉發1588v2報文時,可測量報文經過該節點的轉發時延,並且修正到1588v2報文中,在兩端的OC或者BC節點計算鏈路時延和時間偏差進行同步。與E2E TC相比,P2P TC不僅修正轉發時延,還測量並修正該節點每個埠相連鏈路的鏈路時延,在兩端的OC或者BC節點計算時間偏差進行同步。
三種基本時鐘節點的分層拓撲示例,如下圖所示。
三種基本時鐘節點的分層拓撲示例
1588v2的網路同步過程包括在控制層面建立主從層次和在業務層面進行頻率/時間同步。
- 建立主從層次。在一個時鐘域中,OC和BC節點根據各個埠Announce報文中攜帶的時鐘源資訊,執行BMC(Best Master Clock,最佳主時鐘)演算法,決策出每個OC和BC節點的參考源和各個埠的狀態(主/從埠),建立起整個同步網的主從層次和跟蹤路徑。
- 頻率/時間同步。主從層次和跟蹤路徑建立之後,主從節點之間透過互動Sync、Delay_Req、Delay_Resp等事件報文,使從節點計算出自身與主節點之間的時間偏差,並調整自身的時間以達到和主節點同步,實現頻率/時間同步。
1588v2是如何建立主從層次的?
1588v2網路一般使用BMC演算法動態建立主從層次。BMC演算法,是1588v2協議規定的一種動態確定網路中各時鐘主從層級的演算法。BMC演算法透過比較多個時鐘的時間源資訊(由Announce報文攜帶),來確定哪一個時鐘更好,將網路中的時鐘劃分為主、從時鐘,從時鐘跟蹤主時鐘的頻率或者時間。在網路發生變化,或網路中某個時鐘源的屬性發生改變時,BMC演算法能重新選擇最佳主時鐘,使全網的時鐘和時間達到同步。
- 從節點層面看:BMC演算法透過Announce報文宣告各埠上的時鐘源資訊,維護本地獲得的時鐘資料組,按嚴格時鐘等級選擇出最佳時間源,並確定埠狀態。
- 從網路層面看:BMC演算法建立全網時鐘的主從同步體系,確定所有節點之間的主從關係,最終建立一顆無環路、全連通、以Grandmaster Clock為根的一棵樹,即生成樹。其中Grandmaster Clock為全網最佳的時鐘源。
1588v2是如何進行時間同步的?
1588v2協議定義了兩種具體的時間同步機制:E2E(End-to-End,端到端)機制和P2P(Peer-to-Peer,點到點)機制。在支援1588v2的網路中,主時鐘節點可以與從時鐘節點直接相連,或者隔幾個中間節點相連。對於主時鐘節點到從時鐘節點之間的總鏈路延遲,E2E和P2P的測量機制不同:
- E2E實際上是直接測量兩個OC或者BC之間的總鏈路延遲,包括其間的所有中間TC節點。
- P2P僅限於測量兩個直連相連的OC,BC或者TC節點之間的逐點鏈路延遲。
E2E機制
E2E機制主從節點之間透過Sync,Delay_Req和Delay_Resp報文互動,使從節點計算出自身與主節點之間的時間偏差,並調整自身的時間以達到和主節點時間同步。主節點傳送Sync報文有one-step和two-step模式,對於one-step方式,Sync報文帶有本報文傳送時刻的時間戳;對於two-step方式,Sync報文並不帶有本報文傳送時刻的時間戳,而只是記錄本報文傳送時的時間,由後續報文Follow_Up帶上該Sync報文傳送時刻的時間戳。
E2E機制實現時間同步過程如下圖所示。
E2E機制實現時間同步
- Master在t1時刻傳送Sync報文(如果配置為two-step方式,還會傳送Follow_Up報文),並將t1時間戳攜帶在Sync報文(或Follow_Up報文)中;
- Slave在t2時刻接收到Sync報文,在本地產生t2時間戳,並從報文中提取t1時間戳;
- Slave在t3時刻傳送Delay_Req報文,並在本地產生t3時間戳;
- Master在t4時刻接收到Delay_Req報文,並在本地產生t4時間戳,然後將t4時間戳攜帶在Delay_Resp報文中,回傳給Slave;
- Slave接收到Delay_Resp報文,從報文中提取t4時間戳。最後Slave節點得到了一組時間戳(t1,t2,t3,t4)。
假設Master到Slave的傳送鏈路延遲是t-ms,Slave到Master的傳送鏈路延遲是t-sm,Slave和Master之間的時間偏差為Offset,則:
t2 - t1 = t-ms + Offset
t4 - t3 = t-sm - Offset
(t2 - t1) - (t4 - t3) = (t-ms + Offset) - (t-sm - Offset)
因此,Offset = [(t2 - t1) - (t4 - t3) - (t-ms - t-sm)] / 2
如果 t-ms = t-sm,即Master和Slave之間的收發鏈路延遲對稱,那麼:
Offset = [(t2 - t1) - (t4 - t3)] / 2
這樣Slave就可以根據t1,t2,t3,t4 四個時間戳計算出自己和Master之間的時間偏差Offset,再對本地時間進行偏差調整,就實現了Slave與Master的時間同步。
從上述原理可以看出,1588v2時間同步是建立在Master和Slave之間的收發鏈路延遲對稱的基礎上的。如果Master和Slave之間的收發鏈路延遲存在不對稱,將引入同步誤差,誤差的大小為兩個方向鏈路延遲差值的二分之一。因此,對於一些高精度同步場景,需要對Master和Slave之間的收發鏈路延遲不對稱進行補償。
P2P機制
P2P機制不區分Master/Slave,所有節點都和相鄰節點互動P2P報文,從而每個節點都可以計算得到和相鄰節點之間的鏈路延遲。每個節點傳送報文也有one-step和two-step模式,對於one-step方式,Pdelay_Resp報文帶有本報文傳送時刻的時間戳;對於two-step方式,Pdelay_Resp報文並不帶有本報文傳送時刻的時間戳,只是記錄本報文傳送時的時間,本報文傳送時刻的時間戳由後續報文Pdelay_Resp_Follow_Up攜帶。
P2P機制計算相連鏈路延遲
- 節點2在t1時刻傳送Pdelay_Req報文;
- 節點1在t2時刻接收到Pdelay_Req報文,生成該報文的接收時間戳t2;
- 節點1在t3時刻傳送Pdelay_Resp報文,生成該報文的傳送時間戳t3:
- 對於one-step方式,把t3 – t2攜帶在Pdelay_Resp報文中;
- 對於two-step方式,把t3 – t2攜帶在Pdelay_Resp_Follow_Up報文中,或者Pdelay_Resp報文攜帶t2,Pdelay_Resp_Follow_Up報文攜帶t3;
- 節點2在t4時刻接收到Pdelay_Resp報文,在本地產生t4時間戳;最後節點2得到了一組時間戳(t1,t2,t3,t4)。
假設節點2到節點1的傳送鏈路延遲是t-reqresp,節點1到節點2的傳送鏈路延遲是t-respreq,可以得到節點2到節點1的總鏈路往返延遲為:
(t-reqresp + t-respreq)= (t4 - t1) - (t3 - t2)
如果t-reqresp = t-respreq,即節點2到節點1之間的收發鏈路延遲對稱,那麼節點2和節點1之間的鏈路平均延遲為:
MeanPathDelay = [(t4 - t1) - (t3 - t2)] / 2
上述過程只是不斷地實時計算和更新相連鏈路延遲,並不進行時間同步。時間同步,還需要有Master到Slave的Sync報文(如下圖所示),Master節點向Slave節點週期傳送Sync報文(Slave節點得到t5/t6兩個時間戳)。最終,Slave相對於Master的時間偏差:
Offset = t6 - t5 - MeanPathDelay
這樣Slave就可以根據時間偏差Offset,對本地時間進行偏差調整,就實現與Master的時間同步。
P2P機制實現時間同步
1588v2是如何進行頻率同步的?
1588v2可以透過在Master和Slave之間交換Sync報文來實現頻率同步。Master週期性地給Slave傳送Sync報文,不考慮路徑延時的變化,如果Slave的頻率和Master是同步的,那麼在相同的時間間隔內,Master和Slave累計的時間偏差是相同的,即:
t2(1) - t2(0) = t1(1) - t1(0),
t2(2) - t2(1) = t1(2) - t1(1),
t2(3) - t2(2) = t1(3) - t1(2)
…………
t2(n) - t2(n-1) = t1(n) - t1(n-1)
如果t2(n) - t2(n-1)大於t1(n) - t1(n-1),說明Slave的頻率比Master快,則需要調慢Slave的頻率;反之則需要調快Slave的頻率,調整的偏差為:
Foffset = [t1(n) - t1(n-1)] / [t2(n) - t2(n-1)] - 1
1588v2頻率同步過程如下圖所示。
1588v2實現頻率同步
1588v2的應用場景
為了保證同步精度,1588v2的應用主要都是基於逐跳同步的,即鏈路上的所有裝置都需要支援1588v2協議。1588v2的常見應用場景包括:1588v2逐跳頻率同步、1588v2逐跳時間同步。
1588v2逐跳頻率同步
1588v2頻率同步(報文層頻率同步技術)和同步以太(物理層頻率同步技術)可混合組網使用,下圖為移動承載網路提供頻率同步給無線基站gNodeB的一個場景, gNodeB之間只需要頻率同步。其中,gNodeB1支援1588v2,gNodeB2不支援1588v2。
1588v2逐跳頻率同步組網圖
結合網路鏈路支援情況,可對頻率同步網路進行如下部署:
- 從外時鐘源透過同步以太(或者外時鐘,也屬於物理層頻率同步技術,但介面為時鐘專有介面,只傳頻率訊號不傳業務資料)提供頻率資訊給相連的裝置。
- SDH或同步以太透過物理鏈路傳遞頻率資訊,在不支援SDH同步和同步以太的線路上,透過1588v2傳遞頻率資訊。
最終無線基站和外時鐘源裝置可達到頻率同步,從而各個無線基站之間達到頻率同步。
1588v2逐跳時間同步
下圖為移動承載網路提供時間同步給無線基站gNodeB的一個場景, gNodeB之間需要時間同步。其中,gNodeB1和gNodeB3支援1588v2,gNodeB2不支援1588v2。
1588v2逐跳時間同步組網圖
結合網路鏈路支援情況,可對時間同步網路進行如下部署:
- 外時間源向承載網裝置註入時間,承載裝置作為BC裝置,逐跳恢復時間,基站作為OC裝置,從承載網裝置上取時間。如果外時間源不支援1588v2,那麼可透過外時間介面(如:1PPS + ToD介面)提供時間給相連的承載網裝置。
- 對於不支援1588v2的gNodeB2,需要透過安裝GPS/北斗接收機來獲取高精度時間。
最終無線基站和外時間源達到時間同步,各個基站之間也達到了時間同步。