王曉冬
摘 要:針對(duì)網(wǎng)絡(luò)時(shí)間協(xié)議PTP在以太網(wǎng)上的應(yīng)用,研究了PTP協(xié)議的功能和流程,提出了PTP協(xié)議在NS2平臺(tái)下的實(shí)現(xiàn)方案,并通過(guò)仿真研究了PTP協(xié)議在以太網(wǎng)環(huán)境中的同步性能。研究結(jié)果表明,IEEE 1588 標(biāo)準(zhǔn)的PTP協(xié)議在以太網(wǎng)上具有極佳的同步性能,其同步精度可以達(dá)到ns級(jí)別,并且具有良好的抗噪能力。數(shù)值仿真結(jié)果說(shuō)明了該仿真方案的有效性和可行性。
關(guān)鍵詞:時(shí)鐘同步;以太網(wǎng);PTP;仿真;同步性能
The study on Clock Synchronization Technology for Ethernet
Wang Xiao-dong(Nanjing University of Posts and Telecommunications,Nanjing 210003)
Abstract:For the application of network time protocol PTP on ethernet, this paper has made researches on the fucntion and process of PTP and proposed the implemenation soltuion of PTP on NS2 platform. The synchornization performace of PTP on ethernet has been also investigated in this paper through simulation, which indicated that IEEE 1588 PTP on ethernet has excellent synchronization performance which could reach ns level resolution and has good anti-noise capability. The simulation result has proved the validity and feasibility of the proposed solution.
Key words:Time Synchronization;Ethernet;PTP;Simulation;Synchronization Performance
在工業(yè)以太網(wǎng)中,時(shí)鐘同步是核心技術(shù)之一,現(xiàn)有的各種分布式系統(tǒng)都提供了相應(yīng)的時(shí)間同步機(jī)制。隨著網(wǎng)絡(luò)應(yīng)用的不斷深入,在分布式網(wǎng)絡(luò)系統(tǒng)中需構(gòu)造時(shí)鐘系統(tǒng)來(lái)為不同的子網(wǎng)絡(luò)系統(tǒng)提供有效的時(shí)間服務(wù)。有效的時(shí)鐘同步系統(tǒng)是分布式網(wǎng)絡(luò)系統(tǒng)實(shí)時(shí)調(diào)度的前提。目前在以太網(wǎng)應(yīng)用中,特別是在工業(yè)自動(dòng)化控制領(lǐng)域,普遍采用的時(shí)鐘同步協(xié)議是網(wǎng)絡(luò)時(shí)間協(xié)議NTP(Network Time Protoeol)[1]。
自動(dòng)化領(lǐng)域、軍事應(yīng)用領(lǐng)域時(shí)鐘同步的需求日益迫切,無(wú)線通信領(lǐng)域及相關(guān)組織也對(duì)時(shí)鐘同步提出了新的更高要求。尤其隨著以太網(wǎng)應(yīng)用逐漸拓展到工業(yè)自動(dòng)化領(lǐng)域,對(duì)基于工業(yè)以太網(wǎng)的時(shí)鐘同步的要求更為精確(精確到微秒級(jí))。在絕大多數(shù)計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用中,普遍采用的同步協(xié)議是網(wǎng)絡(luò)時(shí)間協(xié)議(Network Time Protocol,簡(jiǎn)稱NTP)。因特網(wǎng)中NTP客戶端的偏移通常在10到100ms之內(nèi),這顯然不符合工業(yè)以太網(wǎng)中時(shí)鐘同步的要求。在這種情況下,用于多播網(wǎng)絡(luò)的精確時(shí)鐘同步協(xié)議IEEE 1588的出現(xiàn)則有效地解決了這一問(wèn)題。
1 以太網(wǎng)中的時(shí)鐘同步技術(shù)
1.1 NTP網(wǎng)絡(luò)時(shí)間同步協(xié)議
NTP是TCP/IP標(biāo)準(zhǔn)協(xié)議族的一員,其工作在IP、UDP協(xié)議之上,目的是在分散的,包括很多網(wǎng)關(guān)和不可靠子網(wǎng)的環(huán)境中提供精確的時(shí)間同步服務(wù)。另外,網(wǎng)絡(luò)時(shí)間協(xié)議還通過(guò)統(tǒng)計(jì)學(xué)技術(shù)提高時(shí)間估計(jì)的有效性,通過(guò)多個(gè)時(shí)間參考源來(lái)保證時(shí)間同步應(yīng)用的可靠性。NTP采用的是Client/Server結(jié)構(gòu),具有相當(dāng)高的靈活性,可以適應(yīng)各種互聯(lián)網(wǎng)環(huán)境。運(yùn)行NTP協(xié)議產(chǎn)生的網(wǎng)絡(luò)開(kāi)銷較少,并具有保證網(wǎng)絡(luò)安全的應(yīng)對(duì)措施,使得NTP可以在互聯(lián)網(wǎng)上獲取可靠和精確的時(shí)間同步。NTP同時(shí)是一個(gè)跨越局域網(wǎng)或廣域網(wǎng)的復(fù)雜的同步時(shí)間協(xié)議,因而它成為互聯(lián)網(wǎng)上公認(rèn)的時(shí)間同步協(xié)議。
NTP以客戶機(jī)和服務(wù)器方式進(jìn)行通信。每次通信包括兩個(gè)數(shù)據(jù)包,即客戶機(jī)發(fā)送一個(gè)請(qǐng)求數(shù)據(jù)包,服務(wù)器接收后回送一個(gè)應(yīng)答數(shù)據(jù)包。兩個(gè)數(shù)據(jù)包都帶有時(shí)間戳。NTP根據(jù)這兩個(gè)數(shù)據(jù)包攜帶的時(shí)間戳確定時(shí)間誤差,并通過(guò)一系列算法來(lái)消除網(wǎng)絡(luò)傳輸?shù)牟淮_定性的影響。
1.2 PTP精確時(shí)間協(xié)議
IEEE 1588定義的精確時(shí)間協(xié)議PTP(Precision Time Protocol)[2]是標(biāo)準(zhǔn)化的精確時(shí)間協(xié)議,同步精度可達(dá)到亞微秒級(jí),并且有達(dá)到更高精度的潛力。PTP協(xié)議集成了網(wǎng)絡(luò)通訊、分布式對(duì)象等多項(xiàng)技術(shù),適用于所有通過(guò)支持多播的局域網(wǎng)進(jìn)行通訊的分布式系統(tǒng),特別適合于以太網(wǎng),但不局限于以太網(wǎng)。
IEEE 1588將時(shí)鐘分為兩種,普通時(shí)鐘(Ordinary Clock,OC)和邊界時(shí)鐘(Boundary Clock,BC),普通時(shí)鐘定義為只有一個(gè)PTP通信端口的時(shí)鐘,邊界時(shí)鐘定義為有一個(gè)以上PTP通信端口的時(shí)鐘,每個(gè)PTP端口提供獨(dú)立的PTP通信。在確定性較差的網(wǎng)絡(luò)設(shè)備如交換機(jī)和路由器上通常使用邊界時(shí)鐘。從通信關(guān)系上PTP時(shí)鐘還可分為主時(shí)鐘和從時(shí)鐘,理論上主時(shí)鐘和從時(shí)鐘的功能任何時(shí)鐘都能實(shí)現(xiàn),但一個(gè)PTP通信子網(wǎng)內(nèi)只能有一個(gè)主時(shí)鐘。
IEEE 1588協(xié)議的工作原理如圖1所示:
⑴Master向Slave發(fā)送Sync報(bào)文,并記錄下該時(shí)刻T1;Slave接收到報(bào)文時(shí)記錄該時(shí)刻T2。
⑵Master向Slave發(fā)送Follow_Up報(bào)文,將T1包含在該報(bào)文里。endprint
⑶Slave向Master發(fā)送Delay_Req報(bào)文,記錄下該時(shí)刻T3;Master收到該報(bào)文時(shí)記錄下接收時(shí)刻T4。
⑷Master向Slave發(fā)送Delay_Resp報(bào)文,將T4包含在該報(bào)文里。
根據(jù)T1,T2,T3,T4這4個(gè)數(shù)據(jù),我們可以計(jì)算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
這就是Master和Slave之間的時(shí)刻差值,根據(jù)該值我們就可以對(duì)Slave時(shí)鐘進(jìn)行校準(zhǔn),使之和Master時(shí)鐘同步。
IEEE1588標(biāo)準(zhǔn)的PTP協(xié)議為基于多播技術(shù)的標(biāo)準(zhǔn)以太網(wǎng)的實(shí)時(shí)應(yīng)用提供了有效的解決方法,它同時(shí)使用硬件和軟件配合來(lái)獲得更精確的定時(shí)時(shí)戳。PTP協(xié)議不像NTP局限于應(yīng)用層,比NTP多一個(gè)攜帶更精確時(shí)戳的報(bào)文,這些都使得PTP可以比NTP達(dá)到更高要求的精確度。
2 NS環(huán)境下精確時(shí)鐘同步協(xié)議的仿真方案
2.1 NS仿真機(jī)制
NS仿真通常是在Linux或Windows這樣的通用的操作系統(tǒng)平臺(tái)實(shí)現(xiàn)的上,用到C++編譯器。我們進(jìn)行仿真前,首先要分析涉及仿真的哪一個(gè)層次。NS仿真分為兩個(gè)層次:一是基于OTcl編程的配置、構(gòu)造層次,利用NS已有的網(wǎng)絡(luò)仿真元素實(shí)現(xiàn)仿真,無(wú)需對(duì)NS本身進(jìn)行任何修改,只要編寫OTcl仿真腳本。另一個(gè)是基于C++和OTcl編程的編譯、配置層次,如果NS中沒(méi)有所需的仿真元素,用戶可通過(guò)NS提供的用戶自我升級(jí)或修改協(xié)議的技術(shù),利用OTcl和NS的接口類實(shí)現(xiàn)NS的更新[3]。NS仿真工作機(jī)制如圖2所示。
2.2 仿真實(shí)現(xiàn)方案
通過(guò)上文的分析,我們決定采用新構(gòu)造一個(gè)NS的Agent(PtpAgent)來(lái)實(shí)現(xiàn)對(duì)PTP協(xié)議的仿真[4]。PtpAgent的功能模塊可分為兩大類:作為Master Clock端和作為Slave Clock端,我們此次實(shí)驗(yàn)的系統(tǒng)方案如下圖3所示。
其中節(jié)點(diǎn)0作為Master Clock,節(jié)點(diǎn)1作為Slave Clock,在兩個(gè)節(jié)點(diǎn)之上都搭建的PtpAgent,兩節(jié)點(diǎn)之間采用雙向鏈路連接。節(jié)點(diǎn)0作為Master一端發(fā)送Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,接收Delay_Req報(bào)文以及發(fā)送Delay_Resp報(bào)文;節(jié)點(diǎn)1作為Slave一端接收Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,發(fā)送Delay_Req報(bào)文以及接收Delay_Resp報(bào)文。
初始參數(shù)設(shè)置為ts=tm+100s,DRIFT=0.5,仿真時(shí)間為100s。
DRIFT為Slave Clock的時(shí)鐘頻率相對(duì)于Master Clock時(shí)鐘頻率的快慢。其值為0.5表示Slave Clock的時(shí)鐘頻率為Master Clock時(shí)鐘頻率的1.5倍。
3 NS環(huán)境下精確時(shí)鐘同步協(xié)議的仿真實(shí)現(xiàn)
為了分析1588協(xié)議在各種不同的網(wǎng)絡(luò)環(huán)境下的同步性能,我們特地選取了帶寬、時(shí)延、噪聲三個(gè)有代表性的因素來(lái)進(jìn)行實(shí)驗(yàn)。
3.1 鏈路帶寬對(duì)同步性能的影響及分析
圖4是分別在10M和100M帶寬的情況下對(duì)PTP同步性能的測(cè)量結(jié)果。其中橫坐標(biāo)是PTP協(xié)議校準(zhǔn)次數(shù),縱坐標(biāo)定義為Master Clock與Slave Clock的時(shí)間差值。比較兩幅圖我們可以看到鏈路帶寬這個(gè)參數(shù)對(duì)PTP協(xié)議的性能幾乎沒(méi)有什么影響。通過(guò)分析PTP協(xié)議的原理我們得知,影響PTP同步性能的關(guān)鍵因素還是發(fā)送和接收Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,Delay_Req報(bào)文以及Delay_Resp報(bào)文的時(shí)刻是否能精確取得。而我們的仿真系統(tǒng)自然能精確取得產(chǎn)生及接收這些報(bào)文的準(zhǔn)確時(shí)間,因此鏈路帶寬在這一前提下并不會(huì)對(duì)PTP協(xié)議的同步性能產(chǎn)生大的影響。
3.2 鏈路時(shí)延對(duì)同步性能的影響及分析
圖5是在10Mb帶寬,0噪聲環(huán)境下鏈路時(shí)延分別為2ms和10ms得到的實(shí)驗(yàn)數(shù)據(jù)。
觀察上圖我們可以發(fā)現(xiàn),鏈路延時(shí)后使得主從時(shí)鐘偏差延后了1個(gè)校準(zhǔn)周期,在16個(gè)周期來(lái)臨的時(shí)刻才進(jìn)入到亞微秒級(jí)的同步區(qū)間。而產(chǎn)生此種變化的原因是鏈路時(shí)延增大后消息在主從時(shí)鐘之間傳遞的時(shí)間增加了,從而導(dǎo)致校準(zhǔn)從時(shí)鐘時(shí)間的步驟增加。
然后我們可以從中看出,盡管系統(tǒng)到達(dá)同步的時(shí)間增加了,但是并不影響到PTP協(xié)議的收斂性及穩(wěn)定性。因而我們可以得出結(jié)論,鏈路時(shí)延對(duì)PTP同步性能的影響很小,僅使其到達(dá)同步狀態(tài)的時(shí)間稍微增加。
3.3 鏈路噪聲對(duì)同步性能的影響及分析
通訊系統(tǒng)中的噪聲一般是設(shè)備內(nèi)部自身產(chǎn)生的,如元器件、線路板、自激振蕩等。Slave Clock的噪聲我們可以理解為時(shí)鐘特性的非線性。下面的仿真實(shí)驗(yàn)結(jié)果說(shuō)明了噪聲對(duì)時(shí)鐘同步協(xié)議的性能影響。
圖6是在10Mb帶寬,2ms延時(shí),噪聲為noise=10-8正態(tài)分布的隨機(jī)變量干擾后得到的實(shí)驗(yàn)數(shù)據(jù)。
從圖中可以看出,在有噪聲的情況下PTP協(xié)議同樣在15次調(diào)整的時(shí)候進(jìn)入到亞微秒的收斂區(qū)間,但其后由于噪聲的干擾,其收斂性不夠穩(wěn)定,但是同步性能仍然能維持在10ns的量級(jí)。通過(guò)上圖我們可以得出結(jié)論,PTP協(xié)議的抗干擾性能優(yōu)異,對(duì)Slave Clock端的時(shí)鐘性能要求不高,因此具有十分廣泛的應(yīng)用場(chǎng)景。
4 結(jié)束語(yǔ)
以太網(wǎng)同步技術(shù)是近年來(lái)的研究熱點(diǎn)之一,其應(yīng)用前景十分廣泛。IEEE 1588是較為成熟的以太網(wǎng)同步技術(shù)之一,所具有的良好同步性能、優(yōu)異的可擴(kuò)展性使得其推廣極為迅速。本文從分析PTP協(xié)議的具體過(guò)程開(kāi)始,提出了PTP協(xié)議的實(shí)現(xiàn)方案,分析了PTP協(xié)議在NS2仿真平臺(tái)下得到的同步性能。通過(guò)所做的工作,可以看出IEEE 1588協(xié)議在以太網(wǎng)上具有極佳的同步性能,其同步精度可以達(dá)到ns級(jí)別,且具有良好的抗噪聲能力,因此具有在復(fù)雜網(wǎng)絡(luò)環(huán)境下部署的能力,有著極好的發(fā)展前景。
[參考文獻(xiàn)]
[1]Mills D.Network Time Protocol(version 3)specification,implementation and analysis[S].Network Working Group Report RFC-1305,University of Delaware,1992.
[2]IEEE Std 1588.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2002.
[3]魏蛟龍,肖艷華,張弛.NS體系結(jié)構(gòu)及其擴(kuò)展[J].計(jì)算機(jī)仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint
⑶Slave向Master發(fā)送Delay_Req報(bào)文,記錄下該時(shí)刻T3;Master收到該報(bào)文時(shí)記錄下接收時(shí)刻T4。
⑷Master向Slave發(fā)送Delay_Resp報(bào)文,將T4包含在該報(bào)文里。
根據(jù)T1,T2,T3,T4這4個(gè)數(shù)據(jù),我們可以計(jì)算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
這就是Master和Slave之間的時(shí)刻差值,根據(jù)該值我們就可以對(duì)Slave時(shí)鐘進(jìn)行校準(zhǔn),使之和Master時(shí)鐘同步。
IEEE1588標(biāo)準(zhǔn)的PTP協(xié)議為基于多播技術(shù)的標(biāo)準(zhǔn)以太網(wǎng)的實(shí)時(shí)應(yīng)用提供了有效的解決方法,它同時(shí)使用硬件和軟件配合來(lái)獲得更精確的定時(shí)時(shí)戳。PTP協(xié)議不像NTP局限于應(yīng)用層,比NTP多一個(gè)攜帶更精確時(shí)戳的報(bào)文,這些都使得PTP可以比NTP達(dá)到更高要求的精確度。
2 NS環(huán)境下精確時(shí)鐘同步協(xié)議的仿真方案
2.1 NS仿真機(jī)制
NS仿真通常是在Linux或Windows這樣的通用的操作系統(tǒng)平臺(tái)實(shí)現(xiàn)的上,用到C++編譯器。我們進(jìn)行仿真前,首先要分析涉及仿真的哪一個(gè)層次。NS仿真分為兩個(gè)層次:一是基于OTcl編程的配置、構(gòu)造層次,利用NS已有的網(wǎng)絡(luò)仿真元素實(shí)現(xiàn)仿真,無(wú)需對(duì)NS本身進(jìn)行任何修改,只要編寫OTcl仿真腳本。另一個(gè)是基于C++和OTcl編程的編譯、配置層次,如果NS中沒(méi)有所需的仿真元素,用戶可通過(guò)NS提供的用戶自我升級(jí)或修改協(xié)議的技術(shù),利用OTcl和NS的接口類實(shí)現(xiàn)NS的更新[3]。NS仿真工作機(jī)制如圖2所示。
2.2 仿真實(shí)現(xiàn)方案
通過(guò)上文的分析,我們決定采用新構(gòu)造一個(gè)NS的Agent(PtpAgent)來(lái)實(shí)現(xiàn)對(duì)PTP協(xié)議的仿真[4]。PtpAgent的功能模塊可分為兩大類:作為Master Clock端和作為Slave Clock端,我們此次實(shí)驗(yàn)的系統(tǒng)方案如下圖3所示。
其中節(jié)點(diǎn)0作為Master Clock,節(jié)點(diǎn)1作為Slave Clock,在兩個(gè)節(jié)點(diǎn)之上都搭建的PtpAgent,兩節(jié)點(diǎn)之間采用雙向鏈路連接。節(jié)點(diǎn)0作為Master一端發(fā)送Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,接收Delay_Req報(bào)文以及發(fā)送Delay_Resp報(bào)文;節(jié)點(diǎn)1作為Slave一端接收Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,發(fā)送Delay_Req報(bào)文以及接收Delay_Resp報(bào)文。
初始參數(shù)設(shè)置為ts=tm+100s,DRIFT=0.5,仿真時(shí)間為100s。
DRIFT為Slave Clock的時(shí)鐘頻率相對(duì)于Master Clock時(shí)鐘頻率的快慢。其值為0.5表示Slave Clock的時(shí)鐘頻率為Master Clock時(shí)鐘頻率的1.5倍。
3 NS環(huán)境下精確時(shí)鐘同步協(xié)議的仿真實(shí)現(xiàn)
為了分析1588協(xié)議在各種不同的網(wǎng)絡(luò)環(huán)境下的同步性能,我們特地選取了帶寬、時(shí)延、噪聲三個(gè)有代表性的因素來(lái)進(jìn)行實(shí)驗(yàn)。
3.1 鏈路帶寬對(duì)同步性能的影響及分析
圖4是分別在10M和100M帶寬的情況下對(duì)PTP同步性能的測(cè)量結(jié)果。其中橫坐標(biāo)是PTP協(xié)議校準(zhǔn)次數(shù),縱坐標(biāo)定義為Master Clock與Slave Clock的時(shí)間差值。比較兩幅圖我們可以看到鏈路帶寬這個(gè)參數(shù)對(duì)PTP協(xié)議的性能幾乎沒(méi)有什么影響。通過(guò)分析PTP協(xié)議的原理我們得知,影響PTP同步性能的關(guān)鍵因素還是發(fā)送和接收Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,Delay_Req報(bào)文以及Delay_Resp報(bào)文的時(shí)刻是否能精確取得。而我們的仿真系統(tǒng)自然能精確取得產(chǎn)生及接收這些報(bào)文的準(zhǔn)確時(shí)間,因此鏈路帶寬在這一前提下并不會(huì)對(duì)PTP協(xié)議的同步性能產(chǎn)生大的影響。
3.2 鏈路時(shí)延對(duì)同步性能的影響及分析
圖5是在10Mb帶寬,0噪聲環(huán)境下鏈路時(shí)延分別為2ms和10ms得到的實(shí)驗(yàn)數(shù)據(jù)。
觀察上圖我們可以發(fā)現(xiàn),鏈路延時(shí)后使得主從時(shí)鐘偏差延后了1個(gè)校準(zhǔn)周期,在16個(gè)周期來(lái)臨的時(shí)刻才進(jìn)入到亞微秒級(jí)的同步區(qū)間。而產(chǎn)生此種變化的原因是鏈路時(shí)延增大后消息在主從時(shí)鐘之間傳遞的時(shí)間增加了,從而導(dǎo)致校準(zhǔn)從時(shí)鐘時(shí)間的步驟增加。
然后我們可以從中看出,盡管系統(tǒng)到達(dá)同步的時(shí)間增加了,但是并不影響到PTP協(xié)議的收斂性及穩(wěn)定性。因而我們可以得出結(jié)論,鏈路時(shí)延對(duì)PTP同步性能的影響很小,僅使其到達(dá)同步狀態(tài)的時(shí)間稍微增加。
3.3 鏈路噪聲對(duì)同步性能的影響及分析
通訊系統(tǒng)中的噪聲一般是設(shè)備內(nèi)部自身產(chǎn)生的,如元器件、線路板、自激振蕩等。Slave Clock的噪聲我們可以理解為時(shí)鐘特性的非線性。下面的仿真實(shí)驗(yàn)結(jié)果說(shuō)明了噪聲對(duì)時(shí)鐘同步協(xié)議的性能影響。
圖6是在10Mb帶寬,2ms延時(shí),噪聲為noise=10-8正態(tài)分布的隨機(jī)變量干擾后得到的實(shí)驗(yàn)數(shù)據(jù)。
從圖中可以看出,在有噪聲的情況下PTP協(xié)議同樣在15次調(diào)整的時(shí)候進(jìn)入到亞微秒的收斂區(qū)間,但其后由于噪聲的干擾,其收斂性不夠穩(wěn)定,但是同步性能仍然能維持在10ns的量級(jí)。通過(guò)上圖我們可以得出結(jié)論,PTP協(xié)議的抗干擾性能優(yōu)異,對(duì)Slave Clock端的時(shí)鐘性能要求不高,因此具有十分廣泛的應(yīng)用場(chǎng)景。
4 結(jié)束語(yǔ)
以太網(wǎng)同步技術(shù)是近年來(lái)的研究熱點(diǎn)之一,其應(yīng)用前景十分廣泛。IEEE 1588是較為成熟的以太網(wǎng)同步技術(shù)之一,所具有的良好同步性能、優(yōu)異的可擴(kuò)展性使得其推廣極為迅速。本文從分析PTP協(xié)議的具體過(guò)程開(kāi)始,提出了PTP協(xié)議的實(shí)現(xiàn)方案,分析了PTP協(xié)議在NS2仿真平臺(tái)下得到的同步性能。通過(guò)所做的工作,可以看出IEEE 1588協(xié)議在以太網(wǎng)上具有極佳的同步性能,其同步精度可以達(dá)到ns級(jí)別,且具有良好的抗噪聲能力,因此具有在復(fù)雜網(wǎng)絡(luò)環(huán)境下部署的能力,有著極好的發(fā)展前景。
[參考文獻(xiàn)]
[1]Mills D.Network Time Protocol(version 3)specification,implementation and analysis[S].Network Working Group Report RFC-1305,University of Delaware,1992.
[2]IEEE Std 1588.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2002.
[3]魏蛟龍,肖艷華,張弛.NS體系結(jié)構(gòu)及其擴(kuò)展[J].計(jì)算機(jī)仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint
⑶Slave向Master發(fā)送Delay_Req報(bào)文,記錄下該時(shí)刻T3;Master收到該報(bào)文時(shí)記錄下接收時(shí)刻T4。
⑷Master向Slave發(fā)送Delay_Resp報(bào)文,將T4包含在該報(bào)文里。
根據(jù)T1,T2,T3,T4這4個(gè)數(shù)據(jù),我們可以計(jì)算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
這就是Master和Slave之間的時(shí)刻差值,根據(jù)該值我們就可以對(duì)Slave時(shí)鐘進(jìn)行校準(zhǔn),使之和Master時(shí)鐘同步。
IEEE1588標(biāo)準(zhǔn)的PTP協(xié)議為基于多播技術(shù)的標(biāo)準(zhǔn)以太網(wǎng)的實(shí)時(shí)應(yīng)用提供了有效的解決方法,它同時(shí)使用硬件和軟件配合來(lái)獲得更精確的定時(shí)時(shí)戳。PTP協(xié)議不像NTP局限于應(yīng)用層,比NTP多一個(gè)攜帶更精確時(shí)戳的報(bào)文,這些都使得PTP可以比NTP達(dá)到更高要求的精確度。
2 NS環(huán)境下精確時(shí)鐘同步協(xié)議的仿真方案
2.1 NS仿真機(jī)制
NS仿真通常是在Linux或Windows這樣的通用的操作系統(tǒng)平臺(tái)實(shí)現(xiàn)的上,用到C++編譯器。我們進(jìn)行仿真前,首先要分析涉及仿真的哪一個(gè)層次。NS仿真分為兩個(gè)層次:一是基于OTcl編程的配置、構(gòu)造層次,利用NS已有的網(wǎng)絡(luò)仿真元素實(shí)現(xiàn)仿真,無(wú)需對(duì)NS本身進(jìn)行任何修改,只要編寫OTcl仿真腳本。另一個(gè)是基于C++和OTcl編程的編譯、配置層次,如果NS中沒(méi)有所需的仿真元素,用戶可通過(guò)NS提供的用戶自我升級(jí)或修改協(xié)議的技術(shù),利用OTcl和NS的接口類實(shí)現(xiàn)NS的更新[3]。NS仿真工作機(jī)制如圖2所示。
2.2 仿真實(shí)現(xiàn)方案
通過(guò)上文的分析,我們決定采用新構(gòu)造一個(gè)NS的Agent(PtpAgent)來(lái)實(shí)現(xiàn)對(duì)PTP協(xié)議的仿真[4]。PtpAgent的功能模塊可分為兩大類:作為Master Clock端和作為Slave Clock端,我們此次實(shí)驗(yàn)的系統(tǒng)方案如下圖3所示。
其中節(jié)點(diǎn)0作為Master Clock,節(jié)點(diǎn)1作為Slave Clock,在兩個(gè)節(jié)點(diǎn)之上都搭建的PtpAgent,兩節(jié)點(diǎn)之間采用雙向鏈路連接。節(jié)點(diǎn)0作為Master一端發(fā)送Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,接收Delay_Req報(bào)文以及發(fā)送Delay_Resp報(bào)文;節(jié)點(diǎn)1作為Slave一端接收Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,發(fā)送Delay_Req報(bào)文以及接收Delay_Resp報(bào)文。
初始參數(shù)設(shè)置為ts=tm+100s,DRIFT=0.5,仿真時(shí)間為100s。
DRIFT為Slave Clock的時(shí)鐘頻率相對(duì)于Master Clock時(shí)鐘頻率的快慢。其值為0.5表示Slave Clock的時(shí)鐘頻率為Master Clock時(shí)鐘頻率的1.5倍。
3 NS環(huán)境下精確時(shí)鐘同步協(xié)議的仿真實(shí)現(xiàn)
為了分析1588協(xié)議在各種不同的網(wǎng)絡(luò)環(huán)境下的同步性能,我們特地選取了帶寬、時(shí)延、噪聲三個(gè)有代表性的因素來(lái)進(jìn)行實(shí)驗(yàn)。
3.1 鏈路帶寬對(duì)同步性能的影響及分析
圖4是分別在10M和100M帶寬的情況下對(duì)PTP同步性能的測(cè)量結(jié)果。其中橫坐標(biāo)是PTP協(xié)議校準(zhǔn)次數(shù),縱坐標(biāo)定義為Master Clock與Slave Clock的時(shí)間差值。比較兩幅圖我們可以看到鏈路帶寬這個(gè)參數(shù)對(duì)PTP協(xié)議的性能幾乎沒(méi)有什么影響。通過(guò)分析PTP協(xié)議的原理我們得知,影響PTP同步性能的關(guān)鍵因素還是發(fā)送和接收Sync報(bào)文,F(xiàn)ollow_Up報(bào)文,Delay_Req報(bào)文以及Delay_Resp報(bào)文的時(shí)刻是否能精確取得。而我們的仿真系統(tǒng)自然能精確取得產(chǎn)生及接收這些報(bào)文的準(zhǔn)確時(shí)間,因此鏈路帶寬在這一前提下并不會(huì)對(duì)PTP協(xié)議的同步性能產(chǎn)生大的影響。
3.2 鏈路時(shí)延對(duì)同步性能的影響及分析
圖5是在10Mb帶寬,0噪聲環(huán)境下鏈路時(shí)延分別為2ms和10ms得到的實(shí)驗(yàn)數(shù)據(jù)。
觀察上圖我們可以發(fā)現(xiàn),鏈路延時(shí)后使得主從時(shí)鐘偏差延后了1個(gè)校準(zhǔn)周期,在16個(gè)周期來(lái)臨的時(shí)刻才進(jìn)入到亞微秒級(jí)的同步區(qū)間。而產(chǎn)生此種變化的原因是鏈路時(shí)延增大后消息在主從時(shí)鐘之間傳遞的時(shí)間增加了,從而導(dǎo)致校準(zhǔn)從時(shí)鐘時(shí)間的步驟增加。
然后我們可以從中看出,盡管系統(tǒng)到達(dá)同步的時(shí)間增加了,但是并不影響到PTP協(xié)議的收斂性及穩(wěn)定性。因而我們可以得出結(jié)論,鏈路時(shí)延對(duì)PTP同步性能的影響很小,僅使其到達(dá)同步狀態(tài)的時(shí)間稍微增加。
3.3 鏈路噪聲對(duì)同步性能的影響及分析
通訊系統(tǒng)中的噪聲一般是設(shè)備內(nèi)部自身產(chǎn)生的,如元器件、線路板、自激振蕩等。Slave Clock的噪聲我們可以理解為時(shí)鐘特性的非線性。下面的仿真實(shí)驗(yàn)結(jié)果說(shuō)明了噪聲對(duì)時(shí)鐘同步協(xié)議的性能影響。
圖6是在10Mb帶寬,2ms延時(shí),噪聲為noise=10-8正態(tài)分布的隨機(jī)變量干擾后得到的實(shí)驗(yàn)數(shù)據(jù)。
從圖中可以看出,在有噪聲的情況下PTP協(xié)議同樣在15次調(diào)整的時(shí)候進(jìn)入到亞微秒的收斂區(qū)間,但其后由于噪聲的干擾,其收斂性不夠穩(wěn)定,但是同步性能仍然能維持在10ns的量級(jí)。通過(guò)上圖我們可以得出結(jié)論,PTP協(xié)議的抗干擾性能優(yōu)異,對(duì)Slave Clock端的時(shí)鐘性能要求不高,因此具有十分廣泛的應(yīng)用場(chǎng)景。
4 結(jié)束語(yǔ)
以太網(wǎng)同步技術(shù)是近年來(lái)的研究熱點(diǎn)之一,其應(yīng)用前景十分廣泛。IEEE 1588是較為成熟的以太網(wǎng)同步技術(shù)之一,所具有的良好同步性能、優(yōu)異的可擴(kuò)展性使得其推廣極為迅速。本文從分析PTP協(xié)議的具體過(guò)程開(kāi)始,提出了PTP協(xié)議的實(shí)現(xiàn)方案,分析了PTP協(xié)議在NS2仿真平臺(tái)下得到的同步性能。通過(guò)所做的工作,可以看出IEEE 1588協(xié)議在以太網(wǎng)上具有極佳的同步性能,其同步精度可以達(dá)到ns級(jí)別,且具有良好的抗噪聲能力,因此具有在復(fù)雜網(wǎng)絡(luò)環(huán)境下部署的能力,有著極好的發(fā)展前景。
[參考文獻(xiàn)]
[1]Mills D.Network Time Protocol(version 3)specification,implementation and analysis[S].Network Working Group Report RFC-1305,University of Delaware,1992.
[2]IEEE Std 1588.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2002.
[3]魏蛟龍,肖艷華,張弛.NS體系結(jié)構(gòu)及其擴(kuò)展[J].計(jì)算機(jī)仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint