張 賀,張 林,鄭滟雷,張 旭(中訊郵電咨詢設(shè)計院有限公司,北京100048)
自20世紀80年代以來,Ethernet技術(shù)以其組網(wǎng)靈活、高速率、大帶寬及即插即用等優(yōu)勢,成了Internet重要的網(wǎng)絡(luò)技術(shù)。為滿足某些應(yīng)用對時間的同步需求,業(yè)界開發(fā)的網(wǎng)絡(luò)時間協(xié)議(NTP)的同步精度可達ms級。在電信領(lǐng)域中,NTP雖可用于網(wǎng)管系統(tǒng)的告警故障定位及計費結(jié)算等,但卻無法滿足位置定位服務(wù)和無線移動通信系統(tǒng)高精度的時間同步要求。其后IEEE標(biāo)準(zhǔn)委員會頒布了IEEE 1588標(biāo)準(zhǔn),其全稱為網(wǎng)絡(luò)測量和控制系統(tǒng)的精確時鐘同步協(xié)議標(biāo)準(zhǔn),并分別于2002年及2008年發(fā)布了1588v1版本及1588v2版本草案。1588v2版本增加了單播等內(nèi)容,具有更優(yōu)的時間精度,更適合于電信網(wǎng)絡(luò)環(huán)境。
本文首先介紹目前常用的PTP報文封裝方式,然后論述1588v2各種報文類型的主要功能及內(nèi)容格式。
1588協(xié)議規(guī)定了事件報文及通用報文。其中:事件報文是在發(fā)送和接收過程中都需要精密時間戳、會激發(fā)發(fā)送后續(xù)消息的報文,主要包括Sync報文、Delay_Req報文、Pdelay_Req報文及Pdelay_Resp報文;通用報文則不會激發(fā)發(fā)送后續(xù)消息,主要包括Announce報文、Follow_up 報文、Delay_Resp 報文、Pdelay_Resp_Follow_up報文、Management報文及Signaling報文。
PTP報文封裝可采用PTP over用戶數(shù)據(jù)報協(xié)議(UDP)over IPv4、PTP over UDP over IPv6、PTP over IEEE 802.3/Ethernet、PTP over Device NET、PTP over Control NET及PTP over IEC 61158 Type 10 (現(xiàn)場總線)等方式。電信網(wǎng)通常主要應(yīng)用前3種方式。下面介紹PTP報文在前3種傳輸協(xié)議中的封裝方式。
該協(xié)議描述的是如何使用UDP和以太網(wǎng)協(xié)議版本4(IPv4)完成PTP報文的傳輸。
在該傳輸協(xié)議方式下,首先將PTP報文封裝到UDP數(shù)據(jù)包中;為識別其為PTP報文數(shù)據(jù),PTP報文的第一字節(jié)(Byte)應(yīng)緊跟在 UDP報文頭(Header)的最后一字節(jié)之后;加入IPv4協(xié)議的IP包頭后,再封裝到以太網(wǎng)幀中進行傳輸。 PTP over UDP over IPv4的封裝方式見圖1。
圖1 PTP over UDP over IPv4的封裝方式
該方式與PTP over UDP over IPv4基本相同,只是IPv4與IPv6的區(qū)別。 PTP over UDP over IPv6的封裝方式見圖2。
圖2 PTP over UDP over IPv6的封裝方式
PTP over IEEE 802.3/Ethernet的封裝方式見圖3。
圖3 PTP over IEEE 802.3/Ethernet的封裝方式
從上述3種封裝方式來看,PTP報文最終均封裝到以太網(wǎng)幀中進行傳輸,只是封裝方式和過程稍有不同而已。采用UDP協(xié)議時,事件報文和通用報文的UDP目的端口號分別為319和320;直接采用以太方式封裝時,PTP報文的以太網(wǎng)類型為0x88F7。
前面提到了PTP報文類型,下面介紹各種報文的內(nèi)容格式及相關(guān)報文的主要功能。
PTP報文由報文頭、報文主體及報文擴展字段(可選)等部分組成(見圖4),其中報文頭為34字節(jié)(272 bit),對所有PTP報文都是通用的,其格式及字段含義見表1。
圖4 PTP報文的組成
a)傳輸特性。采用UDP/IPv4封裝時bit4填充1、bit5~bit7填充0,采用UDP/IPv6及以太封裝時全部填充0。
b)報文類型。該字段定義報文類型如Sync、Delay_Req及Delay_Resp等。
c)PTP報文版本。該字段定義當(dāng)前協(xié)議版本,IEEE 1588v1定義為1,IEEE 1588v2定義為2。
d)報文長度。該字段定義所發(fā)送PTP報文的總長,包括報文頭、報文主體和報文擴展字段(在擴展字段中用于填充的數(shù)據(jù)除外)。
e)時間域編號。該字段定義PTP報文所屬的時間域。域是指使用協(xié)議彼此相互同步的一個邏輯組。本域時鐘不要求必須與其他域的時鐘保持同步。時鐘類型為OC和BC時,描述報文發(fā)送設(shè)備屬于的時間域。如果是TC模式,描述最初報文發(fā)送設(shè)備屬于的時間域。
f)標(biāo)志域。該字段包括顯示狀態(tài)的多種標(biāo)志。
g)時間修正域。該字段定義是的PTP報文中攜帶的時間信息經(jīng)透明時鐘(TC)時,對駐留時間的一個ns級別的修正值。如果是P2P方式的TC,還包括對路徑傳送時間的修正。
h)源端口ID。該字段定義發(fā)送PTP報文的源端口地址信息,包括時鐘設(shè)備ID和PORT端口ID。
i)序列號。該字段定義不同PTP報文的序列號。
j)控制域。該字段定義IEEE 1588v1版本描述報文類型的字段,類似于1588v2版本的報文類型,只是少了一些選項。
k)日志消息間隔。該字段定義及顯示協(xié)商后的報文發(fā)送間隔。
Announce報文是用來描述時間源能力的報文,其內(nèi)容格式見表2。
表2中:originTimestamp定義為數(shù)值為0或精度為±1 ns時的時間戳,currentUtcOffset定義為 UTC與TAI時間標(biāo)尺間的閏秒時間差,grandmasterPriority1/2表示用戶定義的grandmaster優(yōu)先級1/2,grandmaster-ClockQuality定義為grandmaster的時間質(zhì)量級別,grandmasterIdentity定義為grandmaster的時鐘設(shè)備ID,stepsRemoved定義為grandmaster與Slave設(shè)備間的時鐘路徑跳數(shù),timesource定義為時間源頭類型(如:GPS表示GPS衛(wèi)星傳送時鐘,PTP表示PTP時鐘,NTP表示NTP時鐘,Hand_set表示人工調(diào)整校準(zhǔn)時鐘等)。
Sync報文由Master時鐘發(fā)送,帶有Master的時間信息。如果Master是Two_step模式的時鐘,其發(fā)送的Sync報文中的時間戳將被設(shè)置為0,實際的時間戳將由和該Sync報文相關(guān)聯(lián)的Follow_up報文發(fā)送。Sync報文的內(nèi)容格式見表3。
表3 Sync報文內(nèi)容格式
Delay_Req報文的內(nèi)容格式與Sync報文完全相同。Delay_Req報文由從鐘發(fā)出,類似于Master有One_Step及Two_Step 2種時鐘模式。Slave存在One_Way和Two_Way 2種模式 (單向和雙向)。在One_Way模式下,Slave不需要發(fā)送Delay_Req報文。Delay_Req報文的內(nèi)容格式見表4。
表4 Delay_Req報文內(nèi)容格式
只有在主時鐘是Two_Step時鐘模式時,才會發(fā)送Follow_Up報文,其內(nèi)容格式(見表5)與Sync和Delay_Req報文相同。
當(dāng)Master收到Slave發(fā)出的Delay_Req報文時,會響應(yīng)Delay_Resp報文。Delay_Resp報文的內(nèi)容格式見表6。
表5 Follow_Up報文內(nèi)容格式
表6 Delay_Resp報文內(nèi)容格式
表6中:receive Timestamp定義為響應(yīng)的 Delay_Req報文的接收時間戳 (t4),精度為ns級;requestingPortIdentity定義為響應(yīng)的Delay_Req報文的發(fā)送設(shè)備端口。
該報文僅在P2P TC時鐘模式下才產(chǎn)生,由P2P時鐘作為“延遲請求者”發(fā)出,內(nèi)容格式見表7。
表7 Pdelay_Req Message報文內(nèi)容格式
該報文僅在P2P TC時鐘模式下才會產(chǎn)生,由P2P時鐘作為“延遲響應(yīng)者”發(fā)出,內(nèi)容格式見表8。
表8 Pdelay_Resp Message報文內(nèi)容格式
表8中:receiveReceiptTimestamp在 One_Step模式下的數(shù)值為0;在Two_Step模式下定義為響應(yīng)的Pdelay_Req報文的接收時間戳(t2),精度為ns以上的精確時間戳;requestingPortIdentity定義為響應(yīng)的Pdelay_Req報文的發(fā)送設(shè)備端口ID。如果P2P時鐘模式是Two_Step,Pdelay_Resp Message報文的時間戳將被設(shè)置為0。實際的時間戳將由和該Pdelay_Resp報文相關(guān)聯(lián)的Pdelay_Resp_Follow_Up報文發(fā)送。
只有在P2P時鐘模式是Two_Step時才會產(chǎn)生Pdelay_Resp_Follow_Up報文,其內(nèi)容格式見表9。
表9 Pdelay_Resp_Follow_Upe報文內(nèi)容格式
表9中:responseOriginTimestamp在 Two_Step模式下定義為響應(yīng)的Pdelay_Resp報文的發(fā)送時間戳(t3),精度為ns級以上;requestingPortIdentity定義為響應(yīng)的Pdelay_Resp報文的發(fā)送設(shè)備端口ID。
以上介紹了IEEE 1588v2中規(guī)定的其中9種主要PTP報文的內(nèi)容格式,以及報文中相關(guān)字段的功能定義和特定的時鐘模式所需要的報文等。
從目前分組網(wǎng)絡(luò)時鐘模式應(yīng)用情況來看,全網(wǎng)采用BC時鐘模式、使用二層組播方式是得到大多數(shù)業(yè)界人士認可的。該方式在中國移動3G移動回傳網(wǎng)絡(luò)的同步解決方案中得到了普遍應(yīng)用。因此,在同步網(wǎng)絡(luò)中常遇到的報文也無非就是 Sync、Delay_req、Delay_Resp、Announce及Signaling等。1588v2對鏈路的對稱性要求較為嚴格,但采用TC模式時需要的時間同步設(shè)備和承載設(shè)備均能很好地支持P2P和E2E這2種延時機制。
基于對PTP報文的上述理論認識,筆者也參與了一些分組網(wǎng)絡(luò)環(huán)境下的1588同步測試。分組網(wǎng)絡(luò)環(huán)境下1588同步測試模型見圖5。
圖5 分組網(wǎng)絡(luò)環(huán)境下1588同步測試模型
該測試環(huán)境是由6臺具有1588v2功能的分組傳送網(wǎng)絡(luò) (PTN)設(shè)備組建的一個分組環(huán)網(wǎng)。時間源從PTN-1節(jié)點輸入基準(zhǔn)時間信號 (PTP包),長鏈路經(jīng)PTN-2、PTN-3及PTN-4節(jié)點后至PTN-5,由PTN-5設(shè)備從接收到的PTP包中恢復(fù)出頻率信號 (2 Mbit/s)接至傳輸分析儀測試該信號的漂移性能;恢復(fù)出的時間信號(PTP)接時間間隔分析儀進行測試。全網(wǎng)時鐘模式設(shè)置為BC,在PTN-4與PTN-5間插入抓包儀表進行實時抓包,以分析PTP報文的交互情況。
測試用的抓包儀為Calnex公司生產(chǎn)的Paragon。該儀表具有2個主要功能:一是對其所串入鏈路中的PTP報文進行抓包,通過抓包來分析PTP報文的交互情況;二是在測試網(wǎng)絡(luò)中加載ITU-T G.8621規(guī)定的相關(guān)測試模版。在目前版本中,2項功能尚不能同時使用,即用來抓包時就不能加載測試模版,反之亦然。
根據(jù)圖5所示的組網(wǎng)環(huán)境,通過Paragon儀表截取的其中一段抓包結(jié)果可知:Master每發(fā)1個Sync報文都會有1個單獨的sequence ID,并按遞增順序排列,中間若出現(xiàn)非連續(xù)序號時會有紅色標(biāo)識提醒(僅是提醒,并不一定代表有錯誤);當(dāng)Slave向Master發(fā)送Delay_Req請求后,Master會回復(fù)相應(yīng)的Delay_Resp報文,這2個交互報文的sequence ID是相同的。在抓包結(jié)果中,還能看到PTP報文頭中的transport Specific、Message Type、version PTP、Message Length、domain Number、flags、correction Field、source PortIdentity、control Field及l(fā)og Message Interval等信息,因篇幅受限,不再贅述。
通過抓包及報文分析,還可加深對相關(guān)標(biāo)準(zhǔn)規(guī)范的理解。例如:IEEE 1588規(guī)定Master可采用1步時鐘(one-step clock)及 2 步時鐘(two-step clock)模式,ITU-T G.8265.1又給出了詳細說明,即在“one-step”模式下,Master在發(fā)送的Sync報文中就需打上時間戳,而在 “two-step”模式下,Master的時間信息是由在隨Sync報文后發(fā)送的相應(yīng)Follow-up報文攜帶并向下傳送,因此可通過儀表抓包結(jié)果觀察是否有Follow-up報文來確定PTP的時鐘模式;IEEE 1588中還定義了Master與Slave間單向和雙向交互方式。如果只需從PTP報文中恢復(fù)頻率,僅采用單向方式即可,這樣Slave是不需要向Master發(fā)送Delay_Req請求報文的,同樣Master也不必回復(fù)Delay_Resp報文;有時也會根據(jù)需要來調(diào)整Master發(fā)送Sync報文的速率,例如若需要從PTP中恢復(fù)出更為精準(zhǔn)的頻率信號,就可采用調(diào)高Sync報文的發(fā)送速率的方式,這時也可以通過Paragon進行抓包來分析不同速率下Sync報文的發(fā)送情況。
本文簡要地介紹了IEEE 1588的由來,并結(jié)合表格分析了1588v2中幾種主要報文的功能、內(nèi)容格式及在不同時鐘模式下的PTP報文形式,并根據(jù)實際測試的抓包結(jié)果對報文進行分析,以加深理解。
從目前來看,PTN逐步取代傳統(tǒng)SDH網(wǎng)絡(luò)的發(fā)展趨勢已十分明顯。因此,如何在PTN上實現(xiàn)頻率和時間同步是十分必要的,而1588則是當(dāng)前較為合適的選擇。由于IEEE 1588v2標(biāo)準(zhǔn)還處在不斷發(fā)展和完善之中,所以從技術(shù)研究角度出發(fā),實時關(guān)注和跟蹤1588技術(shù)的發(fā)展趨勢,掌握標(biāo)準(zhǔn)動態(tài)、積累工程應(yīng)用經(jīng)驗?zāi)酥猎诂F(xiàn)網(wǎng)中開展小范圍的技術(shù)試點測試是十分必要的。
[1]IEEE std 1588-2008.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control System[S/OL]. [2011 -02 -01].http://lib.nutn.edu.tw/database/IEL/OPACStdList_2009.htm.
[2]ITU-T G.8261/Y.1361.Timing and synchronization aspects in packet networks.[S/OL].[2011-02-01].http://www.itu.int/itudoc/itu-t/aap/sg15aap/history/g.8261/index.html.