丁永紅
(淮南聯合大學,安徽 淮南 232001)
?
基于ORBUS時間系統的網絡時間同步
丁永紅
(淮南聯合大學,安徽淮南232001)
摘要:時間同步在分布式計算機中起了很大的作用,分布式中計算機對計算機的可靠性與精確性要求很高。關于NTP/SNTP協議是基于ORBUS時間系統的,它是一種在網絡時間上同步的組織方式。這種協議可以使得跨網段時間同步節點數降低,而且也可以減少網絡方面的開支等等,本論文對NTP網絡時間同步系統進行了詳細的分析,研究的NTP協議可以應用于繁瑣分布式網絡,相比于其他的協議,NTP協議的這種同步方式要在網絡時間同步中的應用需要在精度、穩定性方面加以提高。NTP/SNTP協議本身具備的網絡時間同步組織方式在分布式網絡中有著很好的適用性。
關鍵詞:網絡時間同步;ORBUS時間系統;NTP/SNTP協議
當今社會,Internet的發展與日俱增,Internet的應用范圍已經波及到了許多的領域,Internet在廣域網、局域網方面的應用滿足了這一領域的市場需求。在這個環境背景下,分布式的發展就不得不加以重視了,計算機工作的完成,需要加強準備工作與任務安排,同時在可靠性方面加以提高,在效率方面加以完善。對計算機高可靠性和高效率方面的要求需要一些關鍵的技術,其中最基本的技術就是時間上同步的技術,應用時間同步技術的領域包括航空管理系統、核能發電系統等,它們對精確度與可靠度的要求很高,因為一個很小的錯誤會導致嚴重的后果,必須認真對待,而且精確度與可靠性還體現在軟件開發以及電子商務等方面。但是現實與理想總是有差別的,計算機的時鐘工作是會因外部環境改變而變化的,比如溫度、電源這些客觀因素會導致時鐘運行不穩定,所以要想實現時鐘同步不是很容易。
許多時間同步軟、硬件都依賴于系統平臺,擴展性差導致很難在異構的環境下融合進去,所以時間同步利用中間件技術可以很好的滿足這種情況。中間件技術CORBA會給出一些必要的關于時間服務的接口,ORBUS時間系統的優點在于可以把時間精確到毫秒級,可以滿足小型局域網對時間方面精確度的要求。想要對系統進行改進,可以在精度與穩定性方面著手,從而擴大適用范圍,比如可以應用到廣域網上去。
網絡時間協議是基于UDP的一種協議,端口號是123,而且也是經過了網絡上同步的計算機時間協議,該協議采用的思想也是分層思想,時間上同步的精確度主要是基于時鐘源硬件上的精確度與網絡傳輸過程中的延遲。NTP協議一共有五個版本的,分別是V0/V1/V2/V3/V4。現今V3/V4是用的比較多的版本。在不同情況下,使用哪個版本都是有規定的。在原理上,NTP時鐘同步包括頻率上的同步與時間上的同步。頻率上的同步是使得各自的頻率相同,而相位上沒要求相同;對應的,時間同步是指絕對的時間是相同的,時鐘的同步技術做到了從脈模式、PTP模式等。NTP是1985年由美國的David l.Mills教授發明的,是一種用來保證計算機在時間上實現同步的協議,用在分布式的服務器與客戶機上。
實現網絡時間同步的技術是來自1981年的Internet時鐘服務,這個Internet時鐘服務用ICMP協議中的時間戳與時間戳的響應消息來實現主機間的時間查詢與時鐘同步,而且這個服務另外還使用到了GGP協議,就是所謂的網關至網關協議。NTP是應用層上的Internet標準協議,是位于IP協議與UDP協議上面的協議,網絡時間協議的優勢在于時間精確度高,并且廣泛應用到多個領域中。
一、相關技術
時間同步服務器是針對自動化系統中的計算機、控制裝置等進行校時的高科技產品,時間同步服務器從GPS衛星上獲取標準的時間信號,將這些信息通過各種接口類型來傳輸給自動化系統中需要時間信息的設備(計算機、保護裝置、故障錄波器、事件順序記錄裝置、安全自動裝置、遠動RTU),這樣就可以達到整個系統的時間同步。時間同步服務器采用SMT表面貼裝技術生產,大規模集成電路設計,以高速芯片進行控制,具有精度高、穩定性好、功能強、無積累誤差、不受地域氣候等環境條件限制、性價比高、操作簡單等特點,全自動智能化運行、免操作維護、適合無人值守的領域,廣泛應用于電力、金融、通信、交通、廣電、石化、冶金、國防、教育、IT、公共服務設施等各個領域。時間同步技術由兩部分組成,就是邏輯上的時鐘同步和物理上的時鐘同步。物理上的時鐘同步又可以細分成分布式系統中的分布式算法與集中式算法。集中式算法普遍應用Cristian算法與Berkeley算法,而分布式算法普遍應用平均值算法、SNTP、NTP等等。網絡時間協議(NTP)和簡單網絡時間協議(SNTP)隨著當今信息技術的突飛猛進,已逐漸成為了Internet標準協議中重要的一個,不斷適用多個領域。
關于NTP時間同步方面的問題,至今為止,有很多時間同步技術來解決。這些技術彼此間都有著他們本身的特性,而且時間同步技術之間在時間精確度方面也有區別,常見的技術主要有:
1.長短波授時時間同步技術
通過使用無線電信號授時歷經了80多年,縱觀國內外,國外有長波授時的羅蘭-C系統,國內在這方面的技術也有發展,大多數用于軍事和導航方面。
2.電話撥號時間同步技術
電話撥號授時簡稱為ACTS,其所需要的設備很少,主要是模擬調制解調器、客戶端軟件、電話線、PC等等。通常這種情況是比較適合用家庭個人計算機的,但是實時性不滿足。
3.GPS時間同步技術
時間同步技術已經有了一定的發展歷史,而且這方面的研究比較多,國際上用的比較多的是來自美國的GPS與來自前蘇聯的GLANASS系統以及來自我國的“北斗”系統。GLANASS系統的適用性不高,主要是因為數量上的限制,以及在穩定性與可靠性方面達不到要求,而“北斗”系統適時覆蓋這方面也很難達到要求,所以相比較下GPS的適用性比較強。
4.互聯網時間同步技術
互聯網上實現時間同步是一件很方便的事情,而且這種方式普遍應用于局域網中,同時微軟公司把NTP應用到了Windows XP系統中去,一旦計算機聯網可以計算了,那么局域網、廣域網上的時間校準也可以計算出來。NTP協議用到的是RFC1350標準,而簡化的網絡時間協議(SNTP)則是用到了RFC1769標準。在 NTP協議中會有一個64位的時間戳,時間分辨率可以達到200ps,時間精確度上可以達到1-50ms。然而事實證明互聯網時間同步技術在國際上的時間精確度是幾百甚至秒級的標準。同時對于Time協議(RFC868)和Daytime協議(RFC867)時間校準度是1s。
二、NTP/SNTP協議的工作原理
在計算機的世界里,時間非常重要,例如火箭發射這種科研活動,對時間的統一性和準確性要求就非常高,是按照A這臺計算機的時間,還是按照B這臺計 算機的時間?NTP就是用來解決這個問題的,NTP(Network Time Protocol,網絡時間協議)是用來使網絡中的各個計算機時間同步的一種協議。它的用途是把計算機的時鐘同步到世界協調時UTC,其精度在局域網內可達0.1ms,在互聯網上絕大多數的地方其精度可以達到1-50ms。
NTP/SNTP是通過客戶機服務器的形式來完成通信的,先是客戶機把一個來自請求的數據包發送出去,服務器收到這個請求后就進行回應,發回一個數據包,這來回的兩個數據包自身帶著時間戳,客戶機與服務器間的時間偏移量和網絡延遲可以通過這4個時間戳計算。
通過圖1中顯示可以看出:把t1設為來自客戶機發送給查詢請求時的時間戳,t2設為服務器收到查詢請求時的時問戳,t3為服務器回復時間信息時的時間戳,t4為客戶機收到時間信息時的時間戳,可以得到信息在網絡上的傳輸時間是(t4-t1)-(t3-t2),如果請求信息和回復信息這兩者的網上傳輸時間是一樣的,那么單程網絡延遲就是等于:[(t4-t1)-(t3-t2)]/2,時間的偏移量是[(t2-t1)-(t4-t3)]/2。
NTP/SNTP的同步模型如圖1:

圖1 NIP/SNTP的同步模型
由上可知道,時間偏移量的計算是客戶機利用t1,t2,t3,t4這四個變量求出的。NTP需要設計成適合任何客戶端與服務器的,即使客戶端與服務器之間性能的差異也很大,而且NTP也可以用在范圍比較大的網絡延遲與抖動方面上。NTP計算出最初的時間偏移量后,利用相關的算法與機制得到時間偏移量的最佳值來改變本地的時鐘。
三、基于ORBUS時間系統的網絡時間同步的設計與實現
分布式網絡由多個較小的局域網絡組成,好比屬于Internet系列的有許多的子域,對于企業而言,通常其內部的網絡是多個不同的部門組成的,而與此同時,部門內部的網絡就組成了一個高速的局域網。鑒于網絡處于不一樣的環境下,基于ORBUS的時間系統對網絡時間要求同步。NTP協議的分層思想主要是應用于規模較大的分布式網絡中,把網絡進行分層管理,其中的第一層主要是無線電時鐘與UTC的同步,或者是收到的GPS秒脈沖與UTC的時間同步,其中第二層中有很多的時間上同步的服務器和第一層是同步的,第二層的存在給第三層提供了時間同步的服務冗余。第三層的時間服務器與很多的局域網都有聯系。
四、網絡中時間同步的NTP協議的實現
基于ORBUS時間系統NTP/SNTP的這種同步模型,實現同步的過程需要設置服務器端的時間戳,其中t2是用函數_ftime()來得到的,t3-t2是用函數QueryPerformance-Counter()得到的,得到了t3-t2的值,又知道了t2的值,那么很容易可以得到t3的值了,要想從繼承信息中得到相應的統計信息與層次信息,可以在UTO對象中添加一個OR-BUS_set_str_tp_dp_ep()的方法,目的是為了用到t2與t3的時間。對于時間同步系統的這個設計,我們不需要了解底層的一些具體通信,只需要考慮到CORBA的可擴展性,本論文主要講到的是ORBUS的時間同步系統是建立在原來的ORBUS的時間系統上的。
基于ORBUS的時間系統的NTP同步設計用到了NTP分層的思想,通過網絡分成多個層,每一層之間都彼此有著聯系,上一層為下一層服務,下一層向上一層提出請求服務,并且這兩個進程之間是彼此分開的、獨立的,繼承的信息客戶進程從上層那里得到信息與本層的信息,從而進行層與層之間的信息傳遞。在運行的時候,客戶的進程就會發送請求,服務器的進程就會得到服務器的時間戳與另外一些繼承之類的信息,然后客戶進程就把需要更新的數據寫到繼承的信息里,從而實現本機在時間上的同步。基于NTP的同步實現模型如圖2:

圖2 基于NTP的同步實現模型
分布式的網絡,基于ORBUS的NTP同步協議,其算法思想應用到了Cristian,通過時鐘濾波的算法思想進行了動態網絡延遲,可以降低網絡上的誤差,另外,通過時鐘選擇的算法與部分的時間服務器選擇性的同步,實現網絡方面的時間同步。
五、結語
本論文研究了移動智能設備上對時間的精確性需求,也分析了時間同步方法與協議的需求,把NTP協議作為底層上的時間同步協議,在整個系統的設計上提出了多層模塊化設計,借此把業務層和表現層進行了分離。在系統的開發過程中,開發模式采用了跨編譯環境,系統構建的過程中業務方面的代碼復用性很高,這樣可以利用起來進行表現層的定制,搭建出適應于各種智能終端的系統,從而實現時間同步,最后通過測試實驗,可以得出了系統兼容性高、資源的運行占有率低的特性,另外還可以實現一些移動設備時間同步達到毫秒級精度的效果。
文章編號:2095-4654(2016)04-0017-03
收稿日期:2016-01-04
中圖分類號:TP393
文獻標識碼:A