產品詳情
NTP/PTP網絡時鐘服務器
NTP/PTP網絡時鐘服務器
NTP/PTP網絡時鐘服務器
NTP時間同步服務器應用于農產品安全追溯系統
摘要:農產品質量安全追溯系統中各計算機設備間必須保持精確的時間同步,才能保證對農產品各種相關信息的記錄準確可靠。基于簡單網絡時間協議(NTP/SNTP),結合農產品質量安全追溯系統的網絡結構特點,設計了一種低成本、低負載、較為可靠的時間同步方案,選用 GPS 作為整個系統的時鐘源,構建了中心服務器級、分區服務器級以及生產、銷售企業或組織級三個級別構成的時間同步網絡,并可以根據實際情況靈活調整。將時間同步的服務端和客戶端的實現封裝成為單獨的類庫,采取動態鏈接庫的形式,便于與現有的追溯系統集成。系統各設備間時間同步的精度可以達到數十毫秒, 滿足農產品質量追溯的要求。
引言
農產品質量安全追溯系統要求在農產品生產、加工、運輸、銷售的各個環節詳細記錄過程檔案信息,實現源頭可追溯、流向可跟蹤、信息可存儲、產品可召回的目標。追溯系統是促進生產信息透明化,提高食品衛生安全的重要措施。時間信息在過程檔案的記錄中具有十分重要的作用,整個系統的各種計算機設備之間必須保持精確的時間同步,才能保證對農產品的各種相關信息的記錄存儲準確有效,保證這些記錄作為追溯分析依據的權威性和公信性。而追溯系統基于多種不同的計算機和網絡通信設備工作,這些設備主要依靠自身的時鐘振蕩器工作,由于溫濕度變化、電磁干擾、振蕩器老化和生產調試等原因,其時鐘的振蕩頻率和標準頻率之間存在一些誤差,設備與設備之間存在著一定的時間誤差,這些誤差初看來似乎微不足道,而在長期積累后會產生相當大的影響。同時,在追溯系統中還較多的使用了包括掌上電腦在內的嵌入式設備來讀取農產品的標識,以及在現場填報過程檔案數據。這些嵌入式設備多采用電池供電,其時鐘不準確的現象更為突出,經常需要進行時間校準,以保證檔案記錄中的時間與標準時間一致。在目前的追溯系統中,設備的時間校準往往取決于使用者的習慣,手段常為參照自選的標準手工設定時鐘,這種辦法效率低下、準確程度較低,無法滿足對農產品從生產到流通的全過程進行精確溯源、全22面追蹤的要求。
本文在NTP/SNTP時間同步技術的基礎上,結合農產品質量安全追溯系統的網絡結構特點,設計了一種低成本、低負載、較為可靠的時間同步方案,選用GPS /北斗衛星作為整個系統的時鐘源,構建了中心服務器級、分區服務器級以及生產、銷售企業或組織級三個級別構成的時間同步網絡,可以根據實際情況靈活增減級別,并在時鐘源以下的設備級別加入新的設備。整個網絡穩定可靠、精度較高,能充分滿足農產品質量追溯的要求。
1、NTP/SNTP 時間同步原理
時間同步是指網絡各節點設備的時鐘時刻和時間間隔與世界標準時間(Universal Time Coordinated, UTC)同步,保證各設備的時間信息基于 UTC 時間的誤差限定在足夠小的范圍內。
NTP(Network Time Protocol,網絡時間協議)由美國德拉瓦大學的 David L.Mills 教授于 1985 年提出,用于實現互聯網上計算機的精確時間同步。SNTP(Simple Network Time Protocol)的全稱是“簡單網絡時間同步協議”,是一個簡化了的NTP服務器和NTP客戶端策略,不需要實現 NTP 協議的所有功能,其功能是使網絡內設備的時鐘與標準的時鐘源保持同步。SNTP對性能差異很大的客戶端及服務器均能適用,且適用于客戶端及服務器所在網絡有大范圍的網絡延遲和抖動的情況。
SNTP協議同步系統時鐘有兩種工作模式:
一是廣播模式(Multicast/Broadcast mode):此種工作模式適用于高速的局域網內部,服務器在固定周期向多個客戶機主動發出時間信息,客戶機根據此時間信息校正系統時鐘;二是客戶機/服務器模式(Client/Server mode),客戶機定時向授時服務器請求時間信息,根據雙方交換的時間信息,實現客戶機與授時服務器時鐘的同步。
客戶機/服務器模式下客戶機首先向服務器發送一個NTP 包,其中包含了該包離開客戶機時的時間戳 T1,當服務器接收到該包時,依次填入數據包到達時的時間戳T2 和包離開時的時間戳 T3,然后立即把包返回給客戶機, 客戶機接收到響應包時再填入包回到客戶機的時間戳T4,客戶機利用這 4 個時間戳和包交換的往返延遲(TQ 和 TR)就能夠計算出客戶機與服務器之間的時鐘偏移量ΔT,如圖 1 所示。
圖 1 客戶機/服務器模式原理
現已知 T1、T2、T3、T4和參數 TQ、TR,可以得出時鐘偏移量ΔT 的方程式有:
T2=T1+TQ+ΔT(1式)
T4=T3+TR-ΔT (2式)
假設發送和響應 NTP 包在網絡上的延遲時間 TQ、TR 相等,則根據方程式(1)和方程式(2)可以得出:
由方程式(3)可以看出客戶機系統時鐘偏差量ΔT與 T1、T2 差值和 T4、T3 差值相關,而與 T2、T3 的差值無關,即時鐘偏差量與時鐘服務器的響應速度無關。客戶 機根據時鐘偏移量ΔT 來調整本系統時鐘,以使其時間與服務器時間一致。
2、系統時間同步的設計和實現
時間同步對于農產品質量安全追溯系統有著重要的作用,為了使系統內各設備之間保持時間同步,需要解決四個方面的問題:一是盡量選取非常精確的時間源,各設備與該時間源的誤差值應較小;二是自動實現時間同步,排除人工因素;三是降低系統開銷,適應現有追 溯系統的網絡條件,同時具備較好的擴充能力;四是盡量屏蔽異質網絡和設備之間的差異。系統時間同步的設計方案將逐一討論這些問題。
2.1網絡結構
農產品質量安全追溯系統一般由多個子系統構成, 包括生產11子系統、加工子系統、運輸子系統、銷售子系統,以及對用戶權限進行配置管理的子系統等,這些子系統通過網絡連結為一個整體進行工作。其中涉及的網 絡多種多樣, 包括以太網、 無線 WLAN 網絡、GPRS/CDMA 無線網絡、藍牙/紅外傳輸網絡等。同時子系統運行的計算機軟、硬件環境也存在較大的差異。 為適應現有的網絡條件,使系統差異較大的網絡和設備環境能順利的協同11工作,滿足不同的設備進行校時的需要,設計了一個統一的與各子系統相對獨立的時間同步網絡,其結構如圖 2 所示。
圖 2 系統時間同步網絡結構
整個時間同步網絡結構分為三級,依次為中心服務器級、分區服務器級以及生產、銷售企業或組織級。各個級別包括不同的計算機設備:中心服務器是保存中央數據庫的專門計算機,是依據農產品種類或涉及的行業,而劃分的特定服務器,例如肉雞質量溯源中心服務器, 在國家或省一級設置。分區服務器是根據集中填報數據、審11查數據的需要而設置的介于中心服務器和第三級設備之間的計算機。最后一級是實際供應鏈中的企業或集體組織的計算機,覆蓋農產品生產、加工、運輸、銷售的各個環節,包括臺式電腦、掌上電腦、標識讀寫儀等多種類型的設備。中心服務器和分區服務器之間使用有線的網絡環境進行互聯,而分區服務器和第三級設備之間既可以使用有線的網絡環境,也可以使用無線網絡進行通信,以充分利用現有的網絡設備資源。第22一級設備(中心服務器)從標準的時鐘源獲取準確的時間,向第二級設備授時,實現與第二級設備的時間同步,第二級設備向第三級設備授時,實現與第三級設備的時間同步。同時,第二級設備除了會向第22一級設備請求校時外,還可以彼此之間進行校時,由于不同的通路其網絡傳輸延時不同,通過從多種通路分別請求校時,大大保證了系統的可靠性和校時的準確性。同理,第三級設備向多個第二級設備請求校時,一方面可以獲取更精準的時間,另一方面也可以在某一個設備出現故障時仍能正常工作。整個時間同步網絡較為可靠,能穩定地實現整個網絡內設備的時間同步,除非大部分的設備同時出現癱瘓,在局部計算機出現意外情況下仍能正常工作。
系統在時間同步時使用NTP/SNTP 協議,其傳輸基于用戶數據報協議(User Datagram Protocol, UDP),要求的資源開銷和網絡帶寬很小,能有效地避免擁塞。同時該協 議是 TCP/IP 的應用層協議,支持 TCP/IP 的網絡都可以使用這種方法進行校時。追溯系統涉及多種異質網絡和 設備絕大多數都對 TCP/IP 協議提供了很好的支持,因此可以不關心異質網絡和設備之間的差別,實現追溯系統 內整體的時間的同步。測試表明NTP/SNTP時間同步網絡在廣域網范圍內可以達到幾十毫秒的精度,完全可以滿足追溯系統對時間同步精度的要求。
目前的農產品質量追溯系統的數據庫結構包括中心數據庫和并列數據庫,采用的也不一定都是時間同步網絡結構的三級結構,這時也可以直接將三級網絡結構縮減為二級甚至一級使用,或者擴充至更多級別,只要保證選用一個穩定、可靠、成本較低的時鐘源,其它設備都通過 SNTP 協議方式與該時鐘源進行時間校準, 即可以實現整個系統內的時鐘同步。時間同步網絡結構的三級結構在設計上有較大的彈性,除了上述的可以減增級別外,還可以在時鐘源以下的設備級別加入新的設備,只要該設備及其連接的網絡支持TCP/IP協議,即可以構成一個完整的系統時間同步網絡,實現新加入設備的時間與原有設備一致。
2.2 時間同步辦法
按照時間同步網絡結構來組織和提供校時服務:中心服務器作為授時服務的中心節點為整個系統提供時間同步源;第三級設備作為校時客戶端向第二級設備發送NTP 包請求校時,獲得基準時鐘后校正本地計算機系統, 使用的是 SNTP 的客戶機/服務器工作模式;第二級設備扮演兩種角色,一方面作為校時客戶端向中心服務器和同級的其它計算機請求并校正時間,一方面作為服務器向第三級或同級的其它計算機提供校時服務,使用的也是 SNTP 的客戶機/服務器工作模式。整個時間同步網絡內的設備在某一時刻都只可能是校時的客戶機或服務器之一,達到了統一處理的目的。
為了使中心服務器能夠提供準確時間,要為其配有準確的時鐘來源,這一時間應該是國際標準時間(UTC)。授時服務器獲得 UTC 的時間來源可以是原子鐘、天文臺或者 GPS/北斗衛星。GPS /北斗除了可以獲取精準的導航定位信息,還可以獲取時間偏差小于 30 ns 的實時時鐘信息,且接收機成本較低,在此采用 GPS北斗衛星作為標準的時鐘源。GPS北斗的校時可以使用脈沖中斷和串行通信接口及網口等多種方式,脈沖方式精度高,但需要計算機加裝脈沖接收裝置,而串口通信方式可以直接獲取絕對時間值,且普通計算機均配有串行接口,其精度達到毫秒級,因此使用這種方式獲取GPS/北斗時間。中心服務器通過RS232 串口與GPS/北斗接收機相連,每隔一秒接收一次 GPS/北斗衛星的準確時鐘,將自身的時鐘設置為與衛星時鐘保持一致。
二級設備每隔 10 min 向中心服務器和同級的其它計算機發送 NTP 包請求校時,采用加權平均的辦法計算出當前的時鐘偏差量。如中心服務器的權重為 0.6,其它計算機的權重為 0.4,依據實際到中心服務器或其它計算機的距離或網絡延遲可以將權重設置為不同的值。時鐘偏 差量=與中心服務器的時鐘偏差量×中心服務器的權重+ 與其它計算機的時鐘偏差量×其它計算機的權重,按計 算出的時鐘偏差量進行時間校準。
三級設備向二級設備請求校時時,可以直接根據各 二級設備返回的時鐘偏差量的均值來校準當前時間。三 級設備在啟動運行后,每隔 30 min 請求進行時間校準, 并在該時間間隔內隨機在 0~30 min 之間再次進行時間校準,全部校時過程都自動完成。這樣既可以保證時間同步的精確性,又可以減少人為手工校時帶來的干擾。
2.3 時間同步類庫
為簡化時間同步網絡的建立過程,降低與追溯系統 其它模塊的耦合性,提高校時模塊的準確性與獨立性, 將時間同步的服務端和客戶端的實現封裝為單獨的類 庫,采取動態鏈接庫的形式,它們可以十分方便地與現 有的追溯系統進行集成裝配,以快速搭建完整的時間同 步網絡。
時間同步的服務端類庫的作用是在指--定的端口上監 聽是否有 NTP 數據包到達,在新到達的 NTP 數據包中插入本地計算機的當前時間,然后再更換目的地址和源地 址將該數據包再發送出去。
時間同步的服務端類的定義如下,
class CTimingServer : public CObject
{
public:
CTimingServer ();//構造函數
void SetServerPort(UINT port);//指--定服務使用的端口,默認為 123
int StartServer();//進行校時服務int StopServer();//停止校時服務
};
時間同步的客戶端類庫的作用是從配置文件中讀取 時間同步網絡中進行校時服務的計算機的 IP 地址及端口號,向各個校時服務計算機發送 NTP 數據包,收到響應后按指--定的規則計算出時鐘偏差量,根據計算出的時鐘 偏差量進行時間校準。
時間同步的客戶端類庫的定義如下,
class CTimingClient : public CObject
{
public:
CTimingClient();//構造函數int Timing();//進行校時操作
//獲取或設置超時時間,超過超時時間未收到服務器響應認為校時失敗
void SetTimeout(DWORD dwTimeout); DWORD GetTimeout();
protetcted:
//提升執行權限,以設置系統時間BOOL EnableSetTimePriviledge();
//恢復執行權限
void RevertSetTimePriviledge();
};
3、系統時間同步網絡的特點
1)以 GPS/北斗衛星時間作為第22一級服務器的標準時鐘源,使用串行通信接口方式獲取 GPS/北斗衛星時間,其誤差在毫秒級,準確可靠;
2)整個網絡的成本較低,僅需要增加作為時鐘源的GPS北斗硬件設備;
3)具有較大的靈活性,可以根據實際追溯系統的結構和現有網絡情況調整網絡的級別,可以隨時加入或減 少連結到網絡的設備;
4)系統運行采取的是多對多的模式,一個服務器對應于多個客戶端,一個客戶端也可以對應多個服務器,存在多條通路,不僅可以減少一個服務器的負荷,還可以在網絡或設備存在故障時起到分流和備用的作用,增強了系統工作的可靠性和穩定性;
5)整個系統的負載較小,一個NTP數據包的字節數僅為幾十個字節,且第三級設備校時的頻率是在每30 min內進行 2 次,系統開銷非常小。
4、結 論
本文從分析NTP/SNTP 協議入手,結合農產品質量追溯系統的結構特點,提出了基于 SNTP 的時間同步辦法, 建立了系統時間同步網絡,并將時間同步的服務端和客戶端封裝為獨立的類庫,以實現與各種現有系統的裝配。與現有系統進行集成裝配的應用表明,基于 SNTP 的時間同步網絡負載較小,是農產品質量安全追溯系統中實現時間同步的有效辦法。本文主要探討的是一個時間源的情況下整個系統進行校時的辦法,實際情況下的可能存在多個不同的時間源,需要進一步研究在這種情況如何穩定可靠地實現系統的時間同步。

