NTP時間同步伺服器(北斗授時裝置)應用農產品安全追溯系統

ahjzdz發表於2020-12-10

NTP時間同步伺服器應用於農產品安全追溯系統

 

摘要:農產品質量安全追溯系統中各計算機裝置間必須保持精確的時間同步,才能保證對農產品各種相關資訊的記錄準確可靠。基於簡單網路時間協議(NTP/SNTP),結合農產品質量安全追溯系統的網路結構特點,設計了一種低成本、低負載、較為可靠的時間同步方案,選用 GPS 作為整個系統的時鐘源,構建了中心伺服器級、分割槽伺服器級以及生產、銷售企業或組織級三個級別構成的時間同步網路,並可以根據實際情況靈活調整。將時間同步的服務端和客戶端的實現封裝成為單獨的類庫,採取動態連結庫的形式,便於與現有的追溯系統整合。系統各裝置間時間同步的精度可以達到數十毫秒, 滿足農產品質量追溯的要求。

 

引言

農產品質量安全追溯系統要求在農產品生產、加工、運輸、銷售的各個環節詳細記錄過程檔案資訊,實現源頭可追溯、流向可跟蹤、資訊可儲存、產品可召回的目標。追溯系統是促進生產資訊透明化,提高食品衛生安全的重要措施。時間資訊在過程檔案的記錄中具有十分重要的作用,整個系統的各種計算機裝置之間必須保持精確的時間同步,才能保證對農產品的各種相關資訊的記錄儲存準確有效,保證這些記錄作為追溯分析依據的權威性和公信性。而追溯系統基於多種不同的計算機和網路通訊裝置工作,這些裝置主要依靠自身的時鐘振盪器工作,由於溫溼度變化、電磁干擾、振盪器老化和生產除錯等原因,其時鐘的振盪頻率和標準頻率之間存在一些誤差,裝置與裝置之間存在著一定的時間誤差,這些誤差初看來似乎微不足道,而在長期積累後會產生相當大的影響。同時,在追溯系統中還較多的使用了包括掌上電腦在內的嵌入式裝置來讀取農產品的標識,以及在現場填報過程檔案資料。這些嵌入式裝置多采用電池供電,其時鐘不準確的現象更為突出,經常需要進行時間校準,以保證檔案記錄中的時間與標準時間一致。在目前的追溯系統中,裝置的時間校準往往取決於使用者的習慣,手段常為參照自選的標準手工設定時鐘,這種辦法效率低下、準確程度較低,無法滿足對農產品從生產到流通的全過程進行精確溯源、全面追蹤的要求。

本文在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 所示。

客戶機/伺服器模式原理

現已知 T 1 T 2 T 3 T 4 和引數 TQ TR ,可以得出時鐘偏移量Δ T 的方程式有:

T 2=T 1+T Q+ ΔT       (1式)

T 4=T 3+T R- ΔT         (2式)

 

假設傳送和響應 NTP 包在網路上的延遲時間 TQ、TR 相等,則根據方程式(1)和方程式(2)可以得出:

由方程式(3)可以看出客戶機系統時鐘偏差量ΔT與 T1、T2 差值和 T4、T3 差值相關,而與 T2、T3 的差值無關,即時鐘偏差量與時鐘伺服器的響應速度無關。客戶 機根據時鐘偏移量ΔT 來調整本系統時鐘,以使其時間與伺服器時間一致。

2、系統時間同步的設計和實現

時間同步對於農產品質量安全追溯系統有著重要的作用,為了使系統內各裝置之間保持時間同步,需要解決四個方面的問題:一是儘量選取非常精確的時間源,各裝置與該時間源的誤差值應較小;二是自動實現時間同步,排除人工因素;三是降低系統開銷,適應現有追  溯系統的網路條件,同時具備較好的擴充能力;四是儘量遮蔽異質網路和裝置之間的差異。系統時間同步的設計方案將逐一討論這些問題。

2.1網路結構

農產品質量安全追溯系統一般由多個子系統構成, 包括生產子系統、加工子系統、運輸子系統、銷售子系統,以及對使用者許可權進行配置管理的子系統等,這些子系統透過網路連結為一個整體進行工作。其中涉及的網 絡多種多樣, 包括乙太網、 無線 WLAN 網路、GPRS/CDMA 無線網路、藍芽/紅外傳輸網路等。同時子系統執行的計算機軟、硬體環境也存在較大的差異。  為適應現有的網路條件,使系統差異較大的網路和裝置環境能順利的協同工作,滿足不同的裝置進行校時的需要,設計了一個統一的與各子系統相對獨立的時間同步網路,其結構如圖 2 所示。

圖 2 系統時間同步網路結構

 

整個時間同步網路結構分為三級,依次為中心伺服器級、分割槽伺服器級以及生產、銷售企業或組織級。各個級別包括不同的計算機裝置:中心伺服器是儲存中央資料庫的專門計算機,是依據農產品種類或涉及的行業,而劃分的特定伺服器,例如肉雞質量溯源中心伺服器, 在國家或省一級設定。分割槽伺服器是根據集中填報資料、審查資料的需要而設定的介於中心伺服器和第三級裝置之間的計算機。最後一級是實際供應鏈中的企業或集體組織的計算機,覆蓋農產品生產、加工、運輸、銷售的各個環節,包括臺式電腦、掌上電腦、標識讀寫儀等多種型別的裝置。中心伺服器和分割槽伺服器之間使用有線的網路環境進行互聯,而分割槽伺服器和第三級裝置之間既可以使用有線的網路環境,也可以使用無線網路進行通訊,以充分利用現有的網路裝置資源。第一級裝置(中心伺服器)從標準的時鐘源獲取準確的時間,向第二級裝置授時,實現與第二級裝置的時間同步,第二級裝置向第三級裝置授時,實現與第三級裝置的時間同步。同時,第二級裝置除了會向第一級裝置請求校時外,還可以彼此之間進行校時,由於不同的通路其網路傳輸延時不同,透過從多種通路分別請求校時,大大保證了系統的可靠性和校時的準確性。同理,第三級裝置向多個第二級裝置請求校時,一方面可以獲取更精準的時間,另一方面也可以在某一個裝置出現故障時仍能正常工作。整個時間同步網路較為可靠,能穩定地實現整個網路內裝置的時間同步,除非大部分的裝置同時出現癱瘓,在區域性計算機出現意外情況下仍能正常工作。

系統在時間同步時使用 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/北斗衛星時間作為第一級伺服器的標準時鍾源,使用序列通訊介面方式獲取 GPS/北斗衛星時間,其誤差在毫秒級,準確可靠;

2)整個網路的成本較低,僅需要增加作為時鐘源的GPS北斗硬體裝置;

3)具有較大的靈活性,可以根據實際追溯系統的結構和現有網路情況調整網路的級別,可以隨時加入或減  少連結到網路的裝置;

4)系統執行採取的是多對多的模式,一個伺服器對應於多個客戶端,一個客戶端也可以對應多個伺服器,存在多條通路,不僅可以減少一個伺服器的負荷,還可以在網路或裝置存在故障時起到分流和備用的作用,增強了系統工作的可靠性和穩定性;

5)整個系統的負載較小,一個NTP資料包的位元組數僅為幾十個位元組,且第三級裝置校時的頻率是在每30 min內進行 2 次,系統開銷非常小。

4、結     論

本文從分析 NTP/SNTP 協議入手,結合農產品質量追溯系統的結構特點,提出了基於 SNTP 的時間同步辦法, 建立了系統時間同步網路,並將時間同步的服務端和客戶端封裝為獨立的類庫,以實現與各種現有系統的裝配。與現有系統進行整合裝配的應用表明,基於 SNTP  的時間同步網路負載較小,是農產品質量安全追溯系統中實現時間同步的有效辦法。本文主要探討的是一個時間源的情況下整個系統進行校時的辦法,實際情況下的可能存在多個不同的時間源,需要進一步研究在這種情況如何穩定可靠地實現系統的時間同步。

 

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69969420/viewspace-2741206/,如需轉載,請註明出處,否則將追究法律責任。

相關文章