王曉冬
摘 要:針對網絡時間協議PTP在以太網上的應用,研究了PTP協議的功能和流程,提出了PTP協議在NS2平臺下的實現方案,并通過仿真研究了PTP協議在以太網環境中的同步性能。研究結果表明,IEEE 1588 標準的PTP協議在以太網上具有極佳的同步性能,其同步精度可以達到ns級別,并且具有良好的抗噪能力。數值仿真結果說明了該仿真方案的有效性和可行性。
關鍵詞:時鐘同步;以太網;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
在工業以太網中,時鐘同步是核心技術之一,現有的各種分布式系統都提供了相應的時間同步機制。隨著網絡應用的不斷深入,在分布式網絡系統中需構造時鐘系統來為不同的子網絡系統提供有效的時間服務。有效的時鐘同步系統是分布式網絡系統實時調度的前提。目前在以太網應用中,特別是在工業自動化控制領域,普遍采用的時鐘同步協議是網絡時間協議NTP(Network Time Protoeol)[1]。
自動化領域、軍事應用領域時鐘同步的需求日益迫切,無線通信領域及相關組織也對時鐘同步提出了新的更高要求。尤其隨著以太網應用逐漸拓展到工業自動化領域,對基于工業以太網的時鐘同步的要求更為精確(精確到微秒級)。在絕大多數計算機網絡應用中,普遍采用的同步協議是網絡時間協議(Network Time Protocol,簡稱NTP)。因特網中NTP客戶端的偏移通常在10到100ms之內,這顯然不符合工業以太網中時鐘同步的要求。在這種情況下,用于多播網絡的精確時鐘同步協議IEEE 1588的出現則有效地解決了這一問題。
1 以太網中的時鐘同步技術
1.1 NTP網絡時間同步協議
NTP是TCP/IP標準協議族的一員,其工作在IP、UDP協議之上,目的是在分散的,包括很多網關和不可靠子網的環境中提供精確的時間同步服務。另外,網絡時間協議還通過統計學技術提高時間估計的有效性,通過多個時間參考源來保證時間同步應用的可靠性。NTP采用的是Client/Server結構,具有相當高的靈活性,可以適應各種互聯網環境。運行NTP協議產生的網絡開銷較少,并具有保證網絡安全的應對措施,使得NTP可以在互聯網上獲取可靠和精確的時間同步。NTP同時是一個跨越局域網或廣域網的復雜的同步時間協議,因而它成為互聯網上公認的時間同步協議。
NTP以客戶機和服務器方式進行通信。每次通信包括兩個數據包,即客戶機發送一個請求數據包,服務器接收后回送一個應答數據包。兩個數據包都帶有時間戳。NTP根據這兩個數據包攜帶的時間戳確定時間誤差,并通過一系列算法來消除網絡傳輸的不確定性的影響。
1.2 PTP精確時間協議
IEEE 1588定義的精確時間協議PTP(Precision Time Protocol)[2]是標準化的精確時間協議,同步精度可達到亞微秒級,并且有達到更高精度的潛力。PTP協議集成了網絡通訊、分布式對象等多項技術,適用于所有通過支持多播的局域網進行通訊的分布式系統,特別適合于以太網,但不局限于以太網。
IEEE 1588將時鐘分為兩種,普通時鐘(Ordinary Clock,OC)和邊界時鐘(Boundary Clock,BC),普通時鐘定義為只有一個PTP通信端口的時鐘,邊界時鐘定義為有一個以上PTP通信端口的時鐘,每個PTP端口提供獨立的PTP通信。在確定性較差的網絡設備如交換機和路由器上通常使用邊界時鐘。從通信關系上PTP時鐘還可分為主時鐘和從時鐘,理論上主時鐘和從時鐘的功能任何時鐘都能實現,但一個PTP通信子網內只能有一個主時鐘。
IEEE 1588協議的工作原理如圖1所示:
⑴Master向Slave發送Sync報文,并記錄下該時刻T1;Slave接收到報文時記錄該時刻T2。
⑵Master向Slave發送Follow_Up報文,將T1包含在該報文里。endprint
⑶Slave向Master發送Delay_Req報文,記錄下該時刻T3;Master收到該報文時記錄下接收時刻T4。
⑷Master向Slave發送Delay_Resp報文,將T4包含在該報文里。
根據T1,T2,T3,T4這4個數據,我們可以計算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
這就是Master和Slave之間的時刻差值,根據該值我們就可以對Slave時鐘進行校準,使之和Master時鐘同步。
IEEE1588標準的PTP協議為基于多播技術的標準以太網的實時應用提供了有效的解決方法,它同時使用硬件和軟件配合來獲得更精確的定時時戳。PTP協議不像NTP局限于應用層,比NTP多一個攜帶更精確時戳的報文,這些都使得PTP可以比NTP達到更高要求的精確度。
2 NS環境下精確時鐘同步協議的仿真方案
2.1 NS仿真機制
NS仿真通常是在Linux或Windows這樣的通用的操作系統平臺實現的上,用到C++編譯器。我們進行仿真前,首先要分析涉及仿真的哪一個層次。NS仿真分為兩個層次:一是基于OTcl編程的配置、構造層次,利用NS已有的網絡仿真元素實現仿真,無需對NS本身進行任何修改,只要編寫OTcl仿真腳本。另一個是基于C++和OTcl編程的編譯、配置層次,如果NS中沒有所需的仿真元素,用戶可通過NS提供的用戶自我升級或修改協議的技術,利用OTcl和NS的接口類實現NS的更新[3]。NS仿真工作機制如圖2所示。
2.2 仿真實現方案
通過上文的分析,我們決定采用新構造一個NS的Agent(PtpAgent)來實現對PTP協議的仿真[4]。PtpAgent的功能模塊可分為兩大類:作為Master Clock端和作為Slave Clock端,我們此次實驗的系統方案如下圖3所示。
其中節點0作為Master Clock,節點1作為Slave Clock,在兩個節點之上都搭建的PtpAgent,兩節點之間采用雙向鏈路連接。節點0作為Master一端發送Sync報文,Follow_Up報文,接收Delay_Req報文以及發送Delay_Resp報文;節點1作為Slave一端接收Sync報文,Follow_Up報文,發送Delay_Req報文以及接收Delay_Resp報文。
初始參數設置為ts=tm+100s,DRIFT=0.5,仿真時間為100s。
DRIFT為Slave Clock的時鐘頻率相對于Master Clock時鐘頻率的快慢。其值為0.5表示Slave Clock的時鐘頻率為Master Clock時鐘頻率的1.5倍。
3 NS環境下精確時鐘同步協議的仿真實現
為了分析1588協議在各種不同的網絡環境下的同步性能,我們特地選取了帶寬、時延、噪聲三個有代表性的因素來進行實驗。
3.1 鏈路帶寬對同步性能的影響及分析
圖4是分別在10M和100M帶寬的情況下對PTP同步性能的測量結果。其中橫坐標是PTP協議校準次數,縱坐標定義為Master Clock與Slave Clock的時間差值。比較兩幅圖我們可以看到鏈路帶寬這個參數對PTP協議的性能幾乎沒有什么影響。通過分析PTP協議的原理我們得知,影響PTP同步性能的關鍵因素還是發送和接收Sync報文,Follow_Up報文,Delay_Req報文以及Delay_Resp報文的時刻是否能精確取得。而我們的仿真系統自然能精確取得產生及接收這些報文的準確時間,因此鏈路帶寬在這一前提下并不會對PTP協議的同步性能產生大的影響。
3.2 鏈路時延對同步性能的影響及分析
圖5是在10Mb帶寬,0噪聲環境下鏈路時延分別為2ms和10ms得到的實驗數據。
觀察上圖我們可以發現,鏈路延時后使得主從時鐘偏差延后了1個校準周期,在16個周期來臨的時刻才進入到亞微秒級的同步區間。而產生此種變化的原因是鏈路時延增大后消息在主從時鐘之間傳遞的時間增加了,從而導致校準從時鐘時間的步驟增加。
然后我們可以從中看出,盡管系統到達同步的時間增加了,但是并不影響到PTP協議的收斂性及穩定性。因而我們可以得出結論,鏈路時延對PTP同步性能的影響很小,僅使其到達同步狀態的時間稍微增加。
3.3 鏈路噪聲對同步性能的影響及分析
通訊系統中的噪聲一般是設備內部自身產生的,如元器件、線路板、自激振蕩等。Slave Clock的噪聲我們可以理解為時鐘特性的非線性。下面的仿真實驗結果說明了噪聲對時鐘同步協議的性能影響。
圖6是在10Mb帶寬,2ms延時,噪聲為noise=10-8正態分布的隨機變量干擾后得到的實驗數據。
從圖中可以看出,在有噪聲的情況下PTP協議同樣在15次調整的時候進入到亞微秒的收斂區間,但其后由于噪聲的干擾,其收斂性不夠穩定,但是同步性能仍然能維持在10ns的量級。通過上圖我們可以得出結論,PTP協議的抗干擾性能優異,對Slave Clock端的時鐘性能要求不高,因此具有十分廣泛的應用場景。
4 結束語
以太網同步技術是近年來的研究熱點之一,其應用前景十分廣泛。IEEE 1588是較為成熟的以太網同步技術之一,所具有的良好同步性能、優異的可擴展性使得其推廣極為迅速。本文從分析PTP協議的具體過程開始,提出了PTP協議的實現方案,分析了PTP協議在NS2仿真平臺下得到的同步性能。通過所做的工作,可以看出IEEE 1588協議在以太網上具有極佳的同步性能,其同步精度可以達到ns級別,且具有良好的抗噪聲能力,因此具有在復雜網絡環境下部署的能力,有著極好的發展前景。
[參考文獻]
[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體系結構及其擴展[J].計算機仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint
⑶Slave向Master發送Delay_Req報文,記錄下該時刻T3;Master收到該報文時記錄下接收時刻T4。
⑷Master向Slave發送Delay_Resp報文,將T4包含在該報文里。
根據T1,T2,T3,T4這4個數據,我們可以計算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
這就是Master和Slave之間的時刻差值,根據該值我們就可以對Slave時鐘進行校準,使之和Master時鐘同步。
IEEE1588標準的PTP協議為基于多播技術的標準以太網的實時應用提供了有效的解決方法,它同時使用硬件和軟件配合來獲得更精確的定時時戳。PTP協議不像NTP局限于應用層,比NTP多一個攜帶更精確時戳的報文,這些都使得PTP可以比NTP達到更高要求的精確度。
2 NS環境下精確時鐘同步協議的仿真方案
2.1 NS仿真機制
NS仿真通常是在Linux或Windows這樣的通用的操作系統平臺實現的上,用到C++編譯器。我們進行仿真前,首先要分析涉及仿真的哪一個層次。NS仿真分為兩個層次:一是基于OTcl編程的配置、構造層次,利用NS已有的網絡仿真元素實現仿真,無需對NS本身進行任何修改,只要編寫OTcl仿真腳本。另一個是基于C++和OTcl編程的編譯、配置層次,如果NS中沒有所需的仿真元素,用戶可通過NS提供的用戶自我升級或修改協議的技術,利用OTcl和NS的接口類實現NS的更新[3]。NS仿真工作機制如圖2所示。
2.2 仿真實現方案
通過上文的分析,我們決定采用新構造一個NS的Agent(PtpAgent)來實現對PTP協議的仿真[4]。PtpAgent的功能模塊可分為兩大類:作為Master Clock端和作為Slave Clock端,我們此次實驗的系統方案如下圖3所示。
其中節點0作為Master Clock,節點1作為Slave Clock,在兩個節點之上都搭建的PtpAgent,兩節點之間采用雙向鏈路連接。節點0作為Master一端發送Sync報文,Follow_Up報文,接收Delay_Req報文以及發送Delay_Resp報文;節點1作為Slave一端接收Sync報文,Follow_Up報文,發送Delay_Req報文以及接收Delay_Resp報文。
初始參數設置為ts=tm+100s,DRIFT=0.5,仿真時間為100s。
DRIFT為Slave Clock的時鐘頻率相對于Master Clock時鐘頻率的快慢。其值為0.5表示Slave Clock的時鐘頻率為Master Clock時鐘頻率的1.5倍。
3 NS環境下精確時鐘同步協議的仿真實現
為了分析1588協議在各種不同的網絡環境下的同步性能,我們特地選取了帶寬、時延、噪聲三個有代表性的因素來進行實驗。
3.1 鏈路帶寬對同步性能的影響及分析
圖4是分別在10M和100M帶寬的情況下對PTP同步性能的測量結果。其中橫坐標是PTP協議校準次數,縱坐標定義為Master Clock與Slave Clock的時間差值。比較兩幅圖我們可以看到鏈路帶寬這個參數對PTP協議的性能幾乎沒有什么影響。通過分析PTP協議的原理我們得知,影響PTP同步性能的關鍵因素還是發送和接收Sync報文,Follow_Up報文,Delay_Req報文以及Delay_Resp報文的時刻是否能精確取得。而我們的仿真系統自然能精確取得產生及接收這些報文的準確時間,因此鏈路帶寬在這一前提下并不會對PTP協議的同步性能產生大的影響。
3.2 鏈路時延對同步性能的影響及分析
圖5是在10Mb帶寬,0噪聲環境下鏈路時延分別為2ms和10ms得到的實驗數據。
觀察上圖我們可以發現,鏈路延時后使得主從時鐘偏差延后了1個校準周期,在16個周期來臨的時刻才進入到亞微秒級的同步區間。而產生此種變化的原因是鏈路時延增大后消息在主從時鐘之間傳遞的時間增加了,從而導致校準從時鐘時間的步驟增加。
然后我們可以從中看出,盡管系統到達同步的時間增加了,但是并不影響到PTP協議的收斂性及穩定性。因而我們可以得出結論,鏈路時延對PTP同步性能的影響很小,僅使其到達同步狀態的時間稍微增加。
3.3 鏈路噪聲對同步性能的影響及分析
通訊系統中的噪聲一般是設備內部自身產生的,如元器件、線路板、自激振蕩等。Slave Clock的噪聲我們可以理解為時鐘特性的非線性。下面的仿真實驗結果說明了噪聲對時鐘同步協議的性能影響。
圖6是在10Mb帶寬,2ms延時,噪聲為noise=10-8正態分布的隨機變量干擾后得到的實驗數據。
從圖中可以看出,在有噪聲的情況下PTP協議同樣在15次調整的時候進入到亞微秒的收斂區間,但其后由于噪聲的干擾,其收斂性不夠穩定,但是同步性能仍然能維持在10ns的量級。通過上圖我們可以得出結論,PTP協議的抗干擾性能優異,對Slave Clock端的時鐘性能要求不高,因此具有十分廣泛的應用場景。
4 結束語
以太網同步技術是近年來的研究熱點之一,其應用前景十分廣泛。IEEE 1588是較為成熟的以太網同步技術之一,所具有的良好同步性能、優異的可擴展性使得其推廣極為迅速。本文從分析PTP協議的具體過程開始,提出了PTP協議的實現方案,分析了PTP協議在NS2仿真平臺下得到的同步性能。通過所做的工作,可以看出IEEE 1588協議在以太網上具有極佳的同步性能,其同步精度可以達到ns級別,且具有良好的抗噪聲能力,因此具有在復雜網絡環境下部署的能力,有著極好的發展前景。
[參考文獻]
[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體系結構及其擴展[J].計算機仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint
⑶Slave向Master發送Delay_Req報文,記錄下該時刻T3;Master收到該報文時記錄下接收時刻T4。
⑷Master向Slave發送Delay_Resp報文,將T4包含在該報文里。
根據T1,T2,T3,T4這4個數據,我們可以計算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
這就是Master和Slave之間的時刻差值,根據該值我們就可以對Slave時鐘進行校準,使之和Master時鐘同步。
IEEE1588標準的PTP協議為基于多播技術的標準以太網的實時應用提供了有效的解決方法,它同時使用硬件和軟件配合來獲得更精確的定時時戳。PTP協議不像NTP局限于應用層,比NTP多一個攜帶更精確時戳的報文,這些都使得PTP可以比NTP達到更高要求的精確度。
2 NS環境下精確時鐘同步協議的仿真方案
2.1 NS仿真機制
NS仿真通常是在Linux或Windows這樣的通用的操作系統平臺實現的上,用到C++編譯器。我們進行仿真前,首先要分析涉及仿真的哪一個層次。NS仿真分為兩個層次:一是基于OTcl編程的配置、構造層次,利用NS已有的網絡仿真元素實現仿真,無需對NS本身進行任何修改,只要編寫OTcl仿真腳本。另一個是基于C++和OTcl編程的編譯、配置層次,如果NS中沒有所需的仿真元素,用戶可通過NS提供的用戶自我升級或修改協議的技術,利用OTcl和NS的接口類實現NS的更新[3]。NS仿真工作機制如圖2所示。
2.2 仿真實現方案
通過上文的分析,我們決定采用新構造一個NS的Agent(PtpAgent)來實現對PTP協議的仿真[4]。PtpAgent的功能模塊可分為兩大類:作為Master Clock端和作為Slave Clock端,我們此次實驗的系統方案如下圖3所示。
其中節點0作為Master Clock,節點1作為Slave Clock,在兩個節點之上都搭建的PtpAgent,兩節點之間采用雙向鏈路連接。節點0作為Master一端發送Sync報文,Follow_Up報文,接收Delay_Req報文以及發送Delay_Resp報文;節點1作為Slave一端接收Sync報文,Follow_Up報文,發送Delay_Req報文以及接收Delay_Resp報文。
初始參數設置為ts=tm+100s,DRIFT=0.5,仿真時間為100s。
DRIFT為Slave Clock的時鐘頻率相對于Master Clock時鐘頻率的快慢。其值為0.5表示Slave Clock的時鐘頻率為Master Clock時鐘頻率的1.5倍。
3 NS環境下精確時鐘同步協議的仿真實現
為了分析1588協議在各種不同的網絡環境下的同步性能,我們特地選取了帶寬、時延、噪聲三個有代表性的因素來進行實驗。
3.1 鏈路帶寬對同步性能的影響及分析
圖4是分別在10M和100M帶寬的情況下對PTP同步性能的測量結果。其中橫坐標是PTP協議校準次數,縱坐標定義為Master Clock與Slave Clock的時間差值。比較兩幅圖我們可以看到鏈路帶寬這個參數對PTP協議的性能幾乎沒有什么影響。通過分析PTP協議的原理我們得知,影響PTP同步性能的關鍵因素還是發送和接收Sync報文,Follow_Up報文,Delay_Req報文以及Delay_Resp報文的時刻是否能精確取得。而我們的仿真系統自然能精確取得產生及接收這些報文的準確時間,因此鏈路帶寬在這一前提下并不會對PTP協議的同步性能產生大的影響。
3.2 鏈路時延對同步性能的影響及分析
圖5是在10Mb帶寬,0噪聲環境下鏈路時延分別為2ms和10ms得到的實驗數據。
觀察上圖我們可以發現,鏈路延時后使得主從時鐘偏差延后了1個校準周期,在16個周期來臨的時刻才進入到亞微秒級的同步區間。而產生此種變化的原因是鏈路時延增大后消息在主從時鐘之間傳遞的時間增加了,從而導致校準從時鐘時間的步驟增加。
然后我們可以從中看出,盡管系統到達同步的時間增加了,但是并不影響到PTP協議的收斂性及穩定性。因而我們可以得出結論,鏈路時延對PTP同步性能的影響很小,僅使其到達同步狀態的時間稍微增加。
3.3 鏈路噪聲對同步性能的影響及分析
通訊系統中的噪聲一般是設備內部自身產生的,如元器件、線路板、自激振蕩等。Slave Clock的噪聲我們可以理解為時鐘特性的非線性。下面的仿真實驗結果說明了噪聲對時鐘同步協議的性能影響。
圖6是在10Mb帶寬,2ms延時,噪聲為noise=10-8正態分布的隨機變量干擾后得到的實驗數據。
從圖中可以看出,在有噪聲的情況下PTP協議同樣在15次調整的時候進入到亞微秒的收斂區間,但其后由于噪聲的干擾,其收斂性不夠穩定,但是同步性能仍然能維持在10ns的量級。通過上圖我們可以得出結論,PTP協議的抗干擾性能優異,對Slave Clock端的時鐘性能要求不高,因此具有十分廣泛的應用場景。
4 結束語
以太網同步技術是近年來的研究熱點之一,其應用前景十分廣泛。IEEE 1588是較為成熟的以太網同步技術之一,所具有的良好同步性能、優異的可擴展性使得其推廣極為迅速。本文從分析PTP協議的具體過程開始,提出了PTP協議的實現方案,分析了PTP協議在NS2仿真平臺下得到的同步性能。通過所做的工作,可以看出IEEE 1588協議在以太網上具有極佳的同步性能,其同步精度可以達到ns級別,且具有良好的抗噪聲能力,因此具有在復雜網絡環境下部署的能力,有著極好的發展前景。
[參考文獻]
[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體系結構及其擴展[J].計算機仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint