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