陳金春 劉 嶸 周 輝 李 豪
(中國人民解放軍32021部隊, 北京 100094)
網(wǎng)絡(luò)時間同步技術(shù)具有實現(xiàn)簡單、應(yīng)用范圍廣和成本低的優(yōu)勢,近年來廣泛應(yīng)用于物聯(lián)網(wǎng)、分布式視頻、智能電網(wǎng)等領(lǐng)域[1-3]。目前,網(wǎng)絡(luò)時間同步技術(shù)主要分為以下兩種:一是手動同步技術(shù),即人工根據(jù)終端設(shè)備與時間統(tǒng)一設(shè)備進行比對,手動調(diào)整設(shè)備的時間,實現(xiàn)全網(wǎng)時間同步。此方法不需要另外開發(fā)軟件和硬件,但是需要人工參與,同步精度較低,各設(shè)備間時間誤差大。二是基于網(wǎng)絡(luò)協(xié)議的時間同步技術(shù),主要包括網(wǎng)絡(luò)時間協(xié)議(Network Time Protocol,NTP)、簡單網(wǎng)絡(luò)時間協(xié)議(Simple Network Time Protocol,SNTP)、IEEE1588 精密時間協(xié)議[4-7]。其中,基于NTP網(wǎng)絡(luò)時間協(xié)議的同步技術(shù)采用廣播方式在網(wǎng)絡(luò)內(nèi)傳輸標(biāo)準(zhǔn)時間數(shù)據(jù)包,該技術(shù)需要時間同步的終端設(shè)備利用操作系統(tǒng)進行相應(yīng)的設(shè)置,使自身的時間自動同步于NTP時間服務(wù)器,從而實現(xiàn)全網(wǎng)時間同步。該技術(shù)操作簡便,但是依賴于操作系統(tǒng)和特定的用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)端口,且Windows操作系統(tǒng)標(biāo)準(zhǔn)服務(wù)未考慮終端長時間自主保持時間帶來的時間偏差,網(wǎng)絡(luò)內(nèi)各終端設(shè)備之間的時間差可達(dá)秒級[8-10]。
指揮控制機構(gòu)中的時間同步、用時保障、事件時標(biāo)調(diào)查等任務(wù)對于時間統(tǒng)一的精度有較高的要求,目前基于廣域網(wǎng)絡(luò)的時間同步技術(shù)的授時精度只能達(dá)到秒級,且由于指揮網(wǎng)絡(luò)中各終端設(shè)備的網(wǎng)絡(luò)傳輸路徑不同,導(dǎo)致WEB瀏覽器與服務(wù)器之間的傳播延遲達(dá)到秒級,造成不同的終端之間存在較大的本地時間誤差,甚至相鄰終端之間的時差達(dá)數(shù)秒,影響軍事行動指揮的精確度和多部門聯(lián)動的協(xié)調(diào)性。此外,特定軍事行動中指揮中心需要將各部門的時間統(tǒng)一到指揮中心自定義秒步長和固定偏差的時間上,目前尚無類似應(yīng)用。
針對現(xiàn)有基于廣域網(wǎng)絡(luò)的WEB瀏覽器授時精度不高、各終端設(shè)備的時間偏差大、時間保持能力低、無法對各終端設(shè)備的時間偏差進行監(jiān)測的技術(shù)問題,本文提出了一種基于 WEB 瀏覽器的時間管理方法。
圖1為本方法的流程圖。WEB瀏覽器啟動后的0 s、5 s、10 s和30 s分別執(zhí)行時間同步流程,時間同步具體流程如圖1所示。
圖1 基于WEB瀏覽器的時間管理方法流程圖
(1)WEB瀏覽器讀取本地Cookie中記錄的時差變量的值Td,如果本地Cookie中沒有存儲該時差變量,則新建Td并將其賦值為0。
(2)WEB瀏覽器讀取客戶端本地系統(tǒng)時間T0,并將其與存儲在Cookie中的時差變量Td作為Ajax(Asynchronous javascript and xml)請求參數(shù)一并發(fā)送到服務(wù)器。
(3)Web服務(wù)器接收到步驟(2)中客戶端的請求,解析請求中的兩個參數(shù):客戶端本地時間T0和時差變量Td,將其保存在數(shù)據(jù)庫中。并向客戶端返回響應(yīng)數(shù)據(jù),數(shù)據(jù)為Web服務(wù)器進行響應(yīng)時刻的時間值Ts。
(5)Web瀏覽器根據(jù)Cookie中存儲的時差變量T0和本地系統(tǒng)時間T1計算時差修正后的本地時間T2=T1+Td,將其作為同步后的時間結(jié)果以控件的形式輸出。
為保持Web時間的精度,瀏覽器每10 ms進行一次時間更新,將本地時間與存儲的時差變量相加后同步顯示。由于持續(xù)運行的Web時鐘會隨著時間和網(wǎng)絡(luò)環(huán)境的變化產(chǎn)生較大誤差,使得本地存儲的時差變量無法有效反應(yīng)Web服務(wù)端和客戶端之間的真實時間偏差,因此,采用動態(tài)更新時差變量的方法,每隔10 s進行一次時間同步流程,修正網(wǎng)絡(luò)環(huán)境和時間累計造成的偏差。Web服務(wù)器側(cè)以10 min為周期按照NTP協(xié)議向北斗NTP服務(wù)器獲取標(biāo)準(zhǔn)時間。
由上述時間同步流程可知,方法主要利用的是瀏覽器發(fā)出時間同步請求和接收到請求響應(yīng)時的客戶端時間,計算Web服務(wù)器響應(yīng)請求時客戶端的時間,進而與此刻服務(wù)端本地時間作差,可計算出客戶端本地時間和Web服務(wù)器本地時間的差值。
為了進一步提升網(wǎng)絡(luò)時間同步的精度,這里提出了基于最小均方誤差(Least Mean Square,LMS)算法的時差誤差估計方法。
建立時差誤差的線性估計模型:
(1)
式中,y(n)為第n個時刻的時差誤差估計值;wi(n)為第n個時刻的誤差估計模型的第i個權(quán)值,i=0,…,N-1。
第n個時刻測得的實際時差誤差為d(n),則第n個時刻的誤差值可表示為:
(2)
LMS算法是調(diào)整誤差的線性估計模型的權(quán)值,使得其誤差值平方和最小,即:
(3)
采用最陡下降法來其求解該問題,權(quán)值的迭代公式為:
(4)
式中,μ為算法步長參數(shù);▽為梯度算子。將式(4)展開計算,得到權(quán)值的線性迭代公式為:
(5)
在實際應(yīng)用中,Web服務(wù)器以10 min為周期為北斗NTP服務(wù)器獲取標(biāo)準(zhǔn)時間,并計算該標(biāo)準(zhǔn)時間與Web服務(wù)器本地系統(tǒng)時間值x(n)的差值,作為實際時差誤差d(n),在一定時間內(nèi)Web服務(wù)器根據(jù)其本地系統(tǒng)時間值x(n),利用式(4)和式(5)計算時差誤差的線性估計模型的權(quán)值w(n),從而建立基于LMS算法的時差誤差估計模型。在此基礎(chǔ)上,利用該時差誤差估計模型對一定時間內(nèi)的Web服務(wù)器本地系統(tǒng)時間進行修正,以提高其授時精度。
本文提出的基于Web瀏覽器的時間管理方法,通過在客戶端Web瀏覽器啟動后的0 s、5 s、10 s和30 s執(zhí)行時間同步流程,以及10 ms為周期循環(huán)判斷時間同步觸發(fā)條件,時間同步觸發(fā)條件達(dá)到時即執(zhí)行時間同步流程,以及按照10 min為周期循環(huán)執(zhí)行時間同步流程,時間精度為毫秒級,同時將客戶端本地的時差變量的值和本地的時間發(fā)送給Web服務(wù)器,便于Web服務(wù)器記錄保持客戶端的時間信息,且在時間同步流程中考慮網(wǎng)絡(luò)時延的影響,使得客戶端與Web服務(wù)器之間的時間同步可達(dá)到毫秒級的精度要求。
本文中,基于Web瀏覽器的時間管理方法還包括了在服務(wù)端定時向北斗NTP服務(wù)器獲取標(biāo)準(zhǔn)時間,更新本地時間基準(zhǔn)。Web服務(wù)器與北斗NTP服務(wù)器連接如圖2所示。
圖2 Web服務(wù)器與北斗NTP服務(wù)器同步
Web服務(wù)器向各終端提供自定義時間或者標(biāo)準(zhǔn)時間,自定義時間可以根據(jù)實際需要自定義設(shè)置,而標(biāo)準(zhǔn)時間的獲取可通過NTP協(xié)議向北斗NTP服務(wù)器以一定的時間為周期獲取標(biāo)準(zhǔn)時間,從而使Web服務(wù)器的本地系統(tǒng)時間與北斗標(biāo)準(zhǔn)時間同步,Web服務(wù)器以10 min為周期按照NTP協(xié)議向北斗NTP服務(wù)器獲取標(biāo)準(zhǔn)時間。
對基于最小均方誤差算法的時差誤差估計方法進行了仿真分析,其結(jié)果如圖3所示。
圖3 基于最小均方誤差算法的時差誤差估計結(jié)果圖
由圖3可見,經(jīng)過50次迭代后,時差估計的誤差基本在0.01 ms以下,因此,本方法可實現(xiàn)高精度的時差誤差估計,有效提高了基于Web瀏覽器的時間管理方法的授時精度。表1為實測記錄,由表1可見,本方法可以根據(jù)計算的時間偏差修正本地時間。
表1 授時服務(wù)實測記錄
通過對比本方法與傳統(tǒng)方法可以發(fā)現(xiàn)(表2),傳統(tǒng)Web瀏覽器用時方法主要有獲取本地計算機時間方法和獲取本地NTP同步后的時間方法兩種。瀏覽器獲取本地時間方法存在本地時間與軍用標(biāo)準(zhǔn)時間不同步引起的偏差;瀏覽器獲取本地NTP同步后的時間存在本地時間易被其他軟件或人為修改引起偏差問題。本文所采用的方法能夠保證Web瀏覽器顯示時間與服務(wù)器時間高精度同步,不受本地時間系統(tǒng)精度及偏差的影響,且服務(wù)器可記錄終端計算機時間變化情況,具備終端計算機時間的監(jiān)測功能和時間溯源功能。
表2 方法比較
本文提出的一種基于Web瀏覽器的時間管理方法,基于IE、Chrome、Firefox等通用Web瀏覽器對廣域網(wǎng)分布式部署的終端實現(xiàn)毫秒級精度的時間同步、時間偏差監(jiān)測、事件時標(biāo)記錄與查詢等時間管理功能,將傳統(tǒng)客戶端之間可能存在的秒級甚至分鐘級別的誤差縮小到50 ms。提出了基于LMS算法的時差誤差估計方法,保證了各終端在Web瀏覽器上顯示的時間具有高精度高可用性和免維護性,且能夠在各終端操作系統(tǒng)的系統(tǒng)時間發(fā)生改變時自動識別并自動修正本地時間同步到Web服務(wù)器的時間,保證了各項活動中指揮的精確度和多部門聯(lián)動的協(xié)調(diào)度。