1 引言
以太網(wǎng)技術(shù)由于其開放性好、價格低廉和使用方便等特點,已經(jīng)廣泛應(yīng)用于電信級別的網(wǎng)絡(luò)中,以太網(wǎng)的數(shù)據(jù)傳輸速度也從早期的10M提高到100M,GE,10GE。40GE,100GE正式產(chǎn)品也將于2009年推出。
以太網(wǎng)技術(shù)是“即插即用”的,也就是將以太網(wǎng)終端接到IP網(wǎng)絡(luò)上就可以隨時使用其提供的業(yè)務(wù)。但是,只有“同步的”的IP網(wǎng)絡(luò)才是一個真正的電信級網(wǎng)絡(luò),才能夠為IP網(wǎng)絡(luò)傳送各種實時業(yè)務(wù)與數(shù)據(jù)業(yè)務(wù)的多重播放業(yè)務(wù)提供保障。目前,電信級網(wǎng)絡(luò)對時間同步要求十分嚴(yán)格,對于一個全國范圍的IP網(wǎng)絡(luò)來說,骨干網(wǎng)絡(luò)時延一般要求控制在50ms之內(nèi),現(xiàn)行的互聯(lián)網(wǎng)網(wǎng)絡(luò)時間協(xié)議NTP(Network Time Protocol),簡單網(wǎng)絡(luò)時間協(xié)議SNTP(Simple Network Time Protocol)等不能達(dá)到所要求的同步精度或收斂速度;谝蕴W(wǎng)的時分復(fù)用通道仿真技術(shù)(TDM over Ethernet)作為一種過渡技術(shù),具有一定的以太網(wǎng)時鐘同步概念,可以部分解決現(xiàn)有終端設(shè)備用于以太網(wǎng)的無縫連接問題。IEEE 1588標(biāo)準(zhǔn)則特別適合于以太網(wǎng),可以在一個地域分散的IP網(wǎng)絡(luò)中實現(xiàn)微秒級高精度的時鐘同步。本文重點介紹IEEE 1588技術(shù)及其測試實現(xiàn)。
2 IEEE 1588PTP介紹
IEEE 1588PTP協(xié)議借鑒了NTP技術(shù),具有容易配置、快速收斂以及對網(wǎng)絡(luò)帶寬和資源消耗少等特點。IEEE1588標(biāo)準(zhǔn)的全稱是“網(wǎng)絡(luò)測量和控制系統(tǒng)的精密時鐘同步協(xié)議標(biāo)準(zhǔn)(IEEE 1588 Precision Clock Synchronization Protocol)”,簡稱PTP(Precision Timing Protocol),它的主要原理是通過一個同步信號周期性的對網(wǎng)絡(luò)中所有節(jié)點的時鐘進(jìn)行校正同步,可以使基于以太網(wǎng)的分布式系統(tǒng)達(dá)到精確同步,IEEE 1588PTP時鐘同步技術(shù)也可以應(yīng)用于任何組播網(wǎng)絡(luò)中。
IEEE 1588將整個網(wǎng)絡(luò)內(nèi)的時鐘分為兩種,即普通時鐘(Ordinary Clock,OC)和邊界時鐘(Boundary Clock,BC),只有一個PTP通信端口的時鐘是普通時鐘,有一個以上PTP通信端口的時鐘是邊界時鐘,每個PTP端口提供獨立的PTP通信。其中,邊界時鐘通常用在確定性較差的網(wǎng)絡(luò)設(shè)備(如交換機和路由器)上。從通信關(guān)系上又可把時鐘分為主時鐘和從時鐘,理論上任何時鐘都能實現(xiàn)主時鐘和從時鐘的功能,但一個PTP通信子網(wǎng)內(nèi)只能有一個主時鐘。整個系統(tǒng)中的最優(yōu)時鐘為最高級時鐘GMC(Grandmaster Clock),有著最好的穩(wěn)定性、精確性、確定性等。根據(jù)各節(jié)點上時鐘的精度和級別以及UTC(通用協(xié)調(diào)時間)的可追溯性等特性,由最佳主時鐘算法(Best Master Clock)來自動選擇各子網(wǎng)內(nèi)的主時鐘;在只有一個子網(wǎng)的系統(tǒng)中,主時鐘就是最高級時鐘GMC。每個系統(tǒng)只有一個GMC,且每個子網(wǎng)內(nèi)只有一個主時鐘,從時鐘與主時鐘保持同步。圖1所示的是一個典型的主時鐘、從時鐘關(guān)系示意。
圖1 主時鐘、從時鐘關(guān)系示意圖
同步的基本原理包括時間發(fā)出和接收時間信息的記錄,并且對每一條信息增加一個“時間戳”。有了時間記錄,接收端就可以計算出自己在網(wǎng)絡(luò)中的時鐘誤差和延時。為了管理這些信息,PTP協(xié)議定義了4種多點傳送的報文類型和管理報文,包括同步報文(Sync),跟隨報文(Follow_up),延遲請求報文(Delay_Req),延遲應(yīng)答報文(Delay_Resp)。這些報文的交互順序如圖2所示。收到的信息回應(yīng)是與時鐘當(dāng)前的狀態(tài)有關(guān)的。同步報文是從主時鐘周期性發(fā)出的(一般為每兩秒一次),它包含了主時鐘算法所需的時鐘屬性?偟膩碚f同步報文包含了一個時間戳,精確地描述了數(shù)據(jù)包發(fā)出的預(yù)計時間。
圖2 PTP報文與交換順序
由于同步報文包含的是預(yù)計的發(fā)出時間而不是真實的發(fā)出時間,所以Sync報文的真實發(fā)出時間被測量后在隨后的Follow_Up報文中發(fā)出。Sync報文的接收方記錄下真實的接收時間。使用Follow_Up報文中的真實發(fā)出時間和接收方的真實接收時間,可以計算出從屬時鐘與主時鐘之間的時差,并據(jù)此更正從屬時鐘的時間。但是此時計算出的時差包含了網(wǎng)絡(luò)傳輸造成的延時,所以使用Delay_Req報文來定義網(wǎng)絡(luò)的傳輸延時。
Delay_Req報文在Sync報文收到后由從屬時鐘發(fā)出。與Sync報文一樣,發(fā)送方記錄準(zhǔn)確的發(fā)送時間,接收方記錄準(zhǔn)確的接收時間。準(zhǔn)確的接收時間包含在Delay_Resp報文中,從而計算出網(wǎng)絡(luò)延時和時鐘誤差。同步的精確度與時間戳和時間信息緊密相關(guān)。純軟件的方案可以達(dá)到毫秒的精度,軟硬件結(jié)合的方案可以達(dá)到微秒的精度。
PTP協(xié)議基于同步數(shù)據(jù)包被傳播和接收時的最精確的匹配時間,每個從時鐘通過與主時鐘交換同步報文而與主時鐘達(dá)到同步。這個同步過程分為漂移測量階段和偏移測量與延遲測量階段。
第一階段修正主時鐘與從時鐘之間的時間偏差,稱為漂移測量。如圖3所示,在修正漂移量的過程中,主時鐘按照定義的間隔時間(缺省是2s)周期性地向相應(yīng)的從時鐘發(fā)出惟一的同步報文。這個同步報文包括該報文離開主時鐘的時間估計值。主時鐘測量傳遞的準(zhǔn)確時間T0 K,從時鐘測量接收的準(zhǔn)確時間T1 K。之后主時鐘發(fā)出第二條報文——跟隨報文(Follow_up Message),此報文與同步報文相關(guān)聯(lián),且包含同步報文放到PTP通信路徑上的更為精確的估計值。這樣,對傳遞和接收的測量與標(biāo)準(zhǔn)時間戳的傳播可以分離開來。從時鐘根據(jù)同步報文和跟隨報文中的信息來計算偏移量,然后按照這個偏移量來修正從時鐘的時間,如果在傳輸路徑中沒有延遲,那么兩個時鐘就會同步。
圖3 PTP時鐘漂移測量計算
為了提高修正精度,可以把主時鐘到從時鐘的報文傳輸延遲等待時間考慮進(jìn)來,即延遲測量,這是同步過程的第二個階段(見圖4)。
圖4 PTP時鐘延遲和偏移計算
從時鐘向主時鐘發(fā)出一個“延遲請求”數(shù)據(jù)報文,在這個過程中決定該報文傳遞準(zhǔn)確時間T2。主時鐘對接收數(shù)據(jù)包打上一個時間戳,然后在“延遲響應(yīng)”數(shù)據(jù)包中把接收時間戳B送回到從時鐘。根據(jù)傳遞時間戳B和主時鐘提供的接收時間戳D,從時鐘計算與主時鐘之間的延遲時間。與偏移測量不同,延遲測量是不規(guī)則進(jìn)行的,其測量間隔時間(缺省值是4~60s之間的隨機值)比偏移值測量間隔時間要大。這樣使得網(wǎng)絡(luò)尤其是設(shè)備終端的負(fù)荷不會太大。采用這種同步過程,可以消減PTP協(xié)議棧中的時間波動和主從時鐘間的等待時間。從圖4右邊可以看到延遲時間D 和偏移時間數(shù)值O的計算方法。
IEEE 1588目前的版本是v2.2,主要應(yīng)用于相對本地化、網(wǎng)絡(luò)化的系統(tǒng),內(nèi)部組件相對穩(wěn)定,其優(yōu)點是標(biāo)準(zhǔn)非常具有代表性,并且是開放式的。由于它的開放性,特別適合于以太網(wǎng)的網(wǎng)絡(luò)環(huán)境。與其他常用于Ethernet TCP/IP網(wǎng)絡(luò)的同步協(xié)議如SNTP或NTP相比,主要區(qū)別是PTP是針對更穩(wěn)定和更安全的網(wǎng)絡(luò)環(huán)境設(shè)計的,所以更為簡單,占用的網(wǎng)絡(luò)和計算資源也更少。NTP協(xié)議是針對于廣泛分散在互聯(lián)網(wǎng)上的各個獨立系統(tǒng)的時間同步協(xié)議。GPS(基于衛(wèi)星的全球定位系統(tǒng))也是針對于分散廣泛且各自獨立的系統(tǒng)。PTP定義的網(wǎng)絡(luò)結(jié)構(gòu)可以使自身達(dá)到很高的精度,與SNTP和NTP相反,時間戳更容易在硬件上實現(xiàn),并且不局限于應(yīng)用層,這使得PTP可以達(dá)到微秒以內(nèi)的精度。此外,PTP模塊化的設(shè)計也使它很容易適應(yīng)低端設(shè)備。
IEEE1588標(biāo)準(zhǔn)所定義的精確網(wǎng)絡(luò)同步協(xié)議實現(xiàn)了網(wǎng)絡(luò)中的高度同步,使得在分配控制工作時無需再進(jìn)行專門的同步通信,從而達(dá)到了通信時間模式與應(yīng)用程序執(zhí)行時間模式分開的效果。
由于高精度的同步工作,使以太網(wǎng)技術(shù)所固有的數(shù)據(jù)傳輸時間波動降低到可以接受的,不影響控制精度的范圍。