a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式分布系統中網絡設備的時間同步

嵌入式分布系統中網絡設備的時間同步

作者: 時間:2013-01-23 來源:網絡 收藏

引言

  隨著我國航天事業的飛速發展,將逐步構建多群、多任務、多功能相對獨立的測控計算機結構體系。由于實現功能的不同,系統的組織結構與操作系統也千差萬別,對時間精度的要求很不相同。整個系統必須在統一的時間尺度下進行工作,因此各節點之間時間的統一具有必要性;另一方面,當今世界寬帶網絡飛速發展,各種支持網絡系統也越來越多,各個網絡系統之間互聯也需要高精度、通用的時間同步。在這種狀況下,如何探索和研制簡便、可靠、準確和通用的網絡授時系統就成為迫切需要解決的問題。

  要實現時間同步,主要完成兩方面的工作內容:第一,通過某種授時方式獲取精確時間;第二,將精確時間同步到網絡中的每一臺設備,這也是網絡時間同步系統的設計難點。

  本文將要介紹的是一種基于嵌入式實時操作系統的NTP網絡授時服務器,其內核響應速度快,可以方便地支持實時處理,克服了以往開發網絡授時服務器的弊端。本文介紹了NTP服務器的原理、系統總體任務及其通信機制設計,并針對NTP協議運行在下的一些問題進行了相應的改進,同時通過性能測試分析表明本系統的有效性。

1 NTP工作原理

1.1 NTP協議

  NTP協議是通過網絡的通信來實現計算機時鐘的同步,而數據本身在網絡上的傳輸也是需要時間的。因此,要獲得準確的當前時間,就必須考慮網絡延遲造成的影響。實際上,可通過計算報文的來回程時間來估計網絡延遲。網絡時間同步的最主要問題是,如何獲得當前的準確時間。NTP通過一系列同步算法選擇精確時間,規避網絡延遲,保證網絡時間同步的安全性。

  NTP 協議支持3種對時工作方式。

① 主從模式(Server/Client mode):用戶向一個或幾個服務器提出服務請求,根據所交換的信息計算兩地時間偏差和網絡延遲,從中選擇認為最準確的時間偏差并調整本地的時鐘。

② 廣播模式(Multicast/Broadcast mode):此種模式適用于高速的局域網中。局域網中的一個或多個服務器以固定的時間周期向某個多播地址廣播自己的時標,客戶端不計算時間偏差和網絡延遲,直接用接收到的時標修正自己的時鐘,忽略各種誤差。

③ 對稱模式(Symmetric mode):兩個以上的時間服務器互為主從進行時間消息的通信,相互校正對方的時間以維持整個同步子網的時間一致性。

  根據本系統的特點,最終確定選用主從模式。因為系統中各個子系統的結構和功能是完全相同的,所以只需要先實現一個子節點的服務,就可以以相同的方法實現所有子節點的時鐘同步。

1.2 NTP原理與實現

  本系統的NTP協議的對時工作是在主從工作方式下實現。NTP算法首先就要根據服務器和客戶端的往返報文來確定兩地時鐘的差值和報文在網絡中傳輸的延遲。這里定義,客戶端和時間服務器之間的時間偏差(offset)用希臘字母θ表示,對時過程中的網絡路徑延遲(delay)用希臘字母δ表示。

  假設子節點A要向服務器方B請求時間服務。A首先要生成一個標準的NTP查詢信息包,通過網絡發送到B。B收到查詢信息包后,根據自己的本地時間,生成一個標準的NTP時間信息包,通過網絡發回給A。分布式系統中的NTP實現原理圖如圖1所示。

圖1 分布式系統中NTP實現原理圖

  其中,T1為子節點A發送查詢請求時間,T2為服務器B收到查詢請求時間,T3為服務器B回復時間信息包時間,T4為子節點A接收到的時間信息包時間,T1、T2、T3和T4以客戶方的時間系統為參照,δ1為請求信息在網上傳播所消耗的時間,δ2為回復信息在網上傳播所消耗的時間。

  其過程如下:

① 客戶端首先向時間服務器發送一個NTP 數據包,同時在數據包上打上客戶端本機的發送時間戳T1;
② 服務器接收到客戶NTP 數據包后,同時在數據包上打上服務器本機的接收時間戳T2;
③ 服務器向客戶返回NTP 數據包后,同時在數據包上打上服務器本機的發送時間戳T3;
④ 客戶端接收到服務器返回的NTP 數據包,同時在數據包上打上客戶端接收時間戳T4。

  當完成了整個過程之后,客戶端就擁有了4個時間T1~T4,并通過他們算出A與B時間上的差值,用以參考并調整客戶方時鐘。

  這里設定服務器的時鐘是準確的,服務器和客戶端時鐘的時間偏差是θ,從客戶端發送報文到服務器端的路徑延遲是δ1,從服務器到客戶端的路徑延遲是δ2,路徑延遲總和是δ. 那么可以列出3個方程式:


  假設從客戶端到服務器的路徑延遲和從服務器到客戶端的路徑延遲相等,即δ1=δ2=δ/2 ,以上3個方程式變為:


  可以求出,服務器和客戶端時鐘的時間偏差θ=[(T2-T1)+(T3-T4)]/2,客戶端與服務器總的網絡路徑延遲δ=(T4-T1)-(T3-T2)。

圖2 NTP時間偏差與網絡延時

  服務器和客戶端之間的時間差異可以從圖2中看出。

  在知道了如何用NTP 算法計算精確的時間偏差值后,需要使用時間偏差值來調整本地時鐘的時間,才算完成了NTP 時間同步的全部工作。

2 分布式系統整體架構及實現

2.1 分布式系統架構

  目前課題的整個系統是由5塊相同的嵌入式開發板組成,硬件平臺是PowerPC MPC8548ERM,移植的操作系統為 5.5,開發板之間的連接通信目前實現了3種方式,即以太網、串口和Rapid IO方式,本方案時間同步協議的實現是基于以太網通信介質的。其中一塊開發板作為時間服務器,并通過串口和上位機相連接,以實現通過上位機來控制整個分布式系統。NTP網絡分布式系統結構如圖3所示。

圖3 NTP網絡分布式系統結構

  本課題目前基于UDP協議實現分布式系統中NTP協議的時間同步。

2.2 NTP設計實現

  由于整個系統是獨立的分布式系統,整個系統對絕對時間的要求不高,只需要各子系統之間的相對時間達到一致即可。所以首先需要確立一個子系統作為服務器端,此端受上位機系統的控制。系統運行時,通過上位機向此服務器端發送預設的時鐘值,此時鐘源就作為整個分布式系統的參考時鐘源。 而其他子系統作為客戶端,可以在合適的時候向服務器申請時間校準服務。

  NTP服務器上的時間戳為從1900年1月1日0時0分至今的秒數(UTC時間)。而子節點獲取的時間戳為1970年1月1日0時0分至今的秒數(程序中的time(NULL)返回的是UTC時間)。所以,要對子節點的時間戳與服務器時間戳計算時,需在子節點的時間戳基礎上加上1900~1970年的秒數:3 600 s×24×(365×70+17)。

  在程序實現中,每隔固定的一段時間子節點就需要進行時鐘校對。校對時,子節點首先需要調用系統底層提供的本地時間查詢函數,得到當前系統準確時間,然后將此時鐘數據打包成專用的NTP數據格式,形成時間查詢包,再通過已經搭建好的如圖3所示的分布式網絡環境,將時間查詢包發送到服務器端。

  時鐘服務器端在接收到客戶端發送來的時間查詢包的時候,將調用本地時鐘查詢函數來記錄此時間請求數據包到達的精確時間,然后根據NTP 協議的實現原理,再次調用系統時間來形成用以回饋給客戶端的時間信息包,并同時將時間信息包發回客戶端。當客戶端收到此時間信息包后,即可根據NTP的時間計算和校準公式來計算網絡延時和與服務器的時間差值,并在規定的時間范圍內實現自身的時鐘同步。此即一次完整的時間校準過程。程序設計流程如圖4所示。

圖4 NTP程序設計流程

  在子系統軟件對服務器返回的時間信息包進行分析的過程中,還要進行網絡時延的估計。這一部分的設計對于提高時間同步的精度至關重要,因此在軟件設計前需要對網絡狀態和時延數據進行大量的統計分析,以確定較好的時延補償方法。

3 性能評估

  由系統測試獲得,服務器和客戶端兩端的運行時的時鐘數據有:T1=1970010100:00:00:583, 轉化后為0 s+583 ms;T2=2011082216:17:21:368, 轉化后為1 314 029 841 s+368 ms;T3=2011082216:17:23:568, 轉化后為1 314 029 843 s+568 ms;T4=1970010100:00:02:799, 轉化后為2 s 799 ms。

  為了計算和時間校對的方便,程序會將時鐘數值單位轉換成s和ms。
  根據公式可以計算出:
① 時鐘的時間偏差θ=[(T2-T1)+(T3-T4)]/2=1 314 029 840.776 s。
② 客戶端與服務器平均網絡路徑延遲δ=[(T4-T1)-(T3-T2)]/2=8 ms。

  在請求時間同步的客戶端計算出時間偏差值和網絡路徑延時后,會根據設置的閾值進行參考比對。如果計算所得值在閾值范圍內,則進行本地時鐘的調整;如果所得值超出了這個閾值范圍,則認為這個時間信息有誤或者沒有必要進行本地時鐘值的調整,即不進行時鐘調整。

  有關資料中對10 000次校時請求的往返網絡時延進行統計,90%以上的網絡時延不到1 ms,引起的網絡延時誤差小于±1 ms。在實際的測量過程中,系統時間的測量誤差一般為±10 ms。因此,測量誤差為影響結果的主要因素。另一方面,對于偶然出現的網絡時延較大的情況,應該在程序中設置網絡時延箝位值δ0,即當δ>δ0時丟棄該時間信息包,重新發送校時請求,從而起到保證校時精度的作用。

  對10 000次校時請求計算出的時差值進行統計后得出,相對于其均值,時差值大約分布在±50 ms區間范圍內,形成一條單一斜率的曲線。通常,為了避免由于校時間隔較小形成校時頻繁,應根據時差走勢圖在程序中設置時差箝位值θ0,即當θ θ0時,不對本地時鐘進行更新,直接退出。

  由實際的測試數據可以看出本設計方案能符合應用需求。

4總結

  本文研究和討論了NTP服務器的任務設計方案和服務器實現的關鍵算法。系統選用WindRiver公司開發的嵌入式實時操作系統VxWorks以及高性能處理器PowerPc MPC8548ERM,穩定性有了明顯的提高,保證了服務器系統能夠長時間持續工作。網絡時間服務系統的構建并不復雜,但要保證達到較高的授時精度,不僅需要對網絡時延估計進行深入的分析和研究,而且建立時間服務器網絡授時體系也是非常必要的。多個時間服務器在不同的區域的合理分布,能有效保證廣域網的授時精度。

本文引用地址:http://www.j9360.com/article/257175.htm


評論


相關推薦

技術專區

關閉