陳金春 劉 嶸 周 輝 李 豪
(中國人民解放軍32021部隊, 北京 100094)
網絡時間同步技術具有實現簡單、應用范圍廣和成本低的優勢,近年來廣泛應用于物聯網、分布式視頻、智能電網等領域[1-3]。目前,網絡時間同步技術主要分為以下兩種:一是手動同步技術,即人工根據終端設備與時間統一設備進行比對,手動調整設備的時間,實現全網時間同步。此方法不需要另外開發軟件和硬件,但是需要人工參與,同步精度較低,各設備間時間誤差大。二是基于網絡協議的時間同步技術,主要包括網絡時間協議(Network Time Protocol,NTP)、簡單網絡時間協議(Simple Network Time Protocol,SNTP)、IEEE1588 精密時間協議[4-7]。其中,基于NTP網絡時間協議的同步技術采用廣播方式在網絡內傳輸標準時間數據包,該技術需要時間同步的終端設備利用操作系統進行相應的設置,使自身的時間自動同步于NTP時間服務器,從而實現全網時間同步。該技術操作簡便,但是依賴于操作系統和特定的用戶數據報協議(User Datagram Protocol,UDP)端口,且Windows操作系統標準服務未考慮終端長時間自主保持時間帶來的時間偏差,網絡內各終端設備之間的時間差可達秒級[8-10]。
指揮控制機構中的時間同步、用時保障、事件時標調查等任務對于時間統一的精度有較高的要求,目前基于廣域網絡的時間同步技術的授時精度只能達到秒級,且由于指揮網絡中各終端設備的網絡傳輸路徑不同,導致WEB瀏覽器與服務器之間的傳播延遲達到秒級,造成不同的終端之間存在較大的本地時間誤差,甚至相鄰終端之間的時差達數秒,影響軍事行動指揮的精確度和多部門聯動的協調性。此外,特定軍事行動中指揮中心需要將各部門的時間統一到指揮中心自定義秒步長和固定偏差的時間上,目前尚無類似應用。
針對現有基于廣域網絡的WEB瀏覽器授時精度不高、各終端設備的時間偏差大、時間保持能力低、無法對各終端設備的時間偏差進行監測的技術問題,本文提出了一種基于 WEB 瀏覽器的時間管理方法。
圖1為本方法的流程圖。WEB瀏覽器啟動后的0 s、5 s、10 s和30 s分別執行時間同步流程,時間同步具體流程如圖1所示。

圖1 基于WEB瀏覽器的時間管理方法流程圖
(1)WEB瀏覽器讀取本地Cookie中記錄的時差變量的值Td,如果本地Cookie中沒有存儲該時差變量,則新建Td并將其賦值為0。
(2)WEB瀏覽器讀取客戶端本地系統時間T0,并將其與存儲在Cookie中的時差變量Td作為Ajax(Asynchronous javascript and xml)請求參數一并發送到服務器。
(3)Web服務器接收到步驟(2)中客戶端的請求,解析請求中的兩個參數:客戶端本地時間T0和時差變量Td,將其保存在數據庫中。并向客戶端返回響應數據,數據為Web服務器進行響應時刻的時間值Ts。

(5)Web瀏覽器根據Cookie中存儲的時差變量T0和本地系統時間T1計算時差修正后的本地時間T2=T1+Td,將其作為同步后的時間結果以控件的形式輸出。
為保持Web時間的精度,瀏覽器每10 ms進行一次時間更新,將本地時間與存儲的時差變量相加后同步顯示。由于持續運行的Web時鐘會隨著時間和網絡環境的變化產生較大誤差,使得本地存儲的時差變量無法有效反應Web服務端和客戶端之間的真實時間偏差,因此,采用動態更新時差變量的方法,每隔10 s進行一次時間同步流程,修正網絡環境和時間累計造成的偏差。Web服務器側以10 min為周期按照NTP協議向北斗NTP服務器獲取標準時間。
由上述時間同步流程可知,方法主要利用的是瀏覽器發出時間同步請求和接收到請求響應時的客戶端時間,計算Web服務器響應請求時客戶端的時間,進而與此刻服務端本地時間作差,可計算出客戶端本地時間和Web服務器本地時間的差值。
為了進一步提升網絡時間同步的精度,這里提出了基于最小均方誤差(Least Mean Square,LMS)算法的時差誤差估計方法。
建立時差誤差的線性估計模型:
(1)
式中,y(n)為第n個時刻的時差誤差估計值;wi(n)為第n個時刻的誤差估計模型的第i個權值,i=0,…,N-1。
第n個時刻測得的實際時差誤差為d(n),則第n個時刻的誤差值可表示為:
(2)
LMS算法是調整誤差的線性估計模型的權值,使得其誤差值平方和最小,即:
(3)
采用最陡下降法來其求解該問題,權值的迭代公式為:
(4)
式中,μ為算法步長參數;▽為梯度算子。將式(4)展開計算,得到權值的線性迭代公式為:
(5)
在實際應用中,Web服務器以10 min為周期為北斗NTP服務器獲取標準時間,并計算該標準時間與Web服務器本地系統時間值x(n)的差值,作為實際時差誤差d(n),在一定時間內Web服務器根據其本地系統時間值x(n),利用式(4)和式(5)計算時差誤差的線性估計模型的權值w(n),從而建立基于LMS算法的時差誤差估計模型。在此基礎上,利用該時差誤差估計模型對一定時間內的Web服務器本地系統時間進行修正,以提高其授時精度。

本文提出的基于Web瀏覽器的時間管理方法,通過在客戶端Web瀏覽器啟動后的0 s、5 s、10 s和30 s執行時間同步流程,以及10 ms為周期循環判斷時間同步觸發條件,時間同步觸發條件達到時即執行時間同步流程,以及按照10 min為周期循環執行時間同步流程,時間精度為毫秒級,同時將客戶端本地的時差變量的值和本地的時間發送給Web服務器,便于Web服務器記錄保持客戶端的時間信息,且在時間同步流程中考慮網絡時延的影響,使得客戶端與Web服務器之間的時間同步可達到毫秒級的精度要求。
本文中,基于Web瀏覽器的時間管理方法還包括了在服務端定時向北斗NTP服務器獲取標準時間,更新本地時間基準。Web服務器與北斗NTP服務器連接如圖2所示。

圖2 Web服務器與北斗NTP服務器同步
Web服務器向各終端提供自定義時間或者標準時間,自定義時間可以根據實際需要自定義設置,而標準時間的獲取可通過NTP協議向北斗NTP服務器以一定的時間為周期獲取標準時間,從而使Web服務器的本地系統時間與北斗標準時間同步,Web服務器以10 min為周期按照NTP協議向北斗NTP服務器獲取標準時間。
對基于最小均方誤差算法的時差誤差估計方法進行了仿真分析,其結果如圖3所示。

圖3 基于最小均方誤差算法的時差誤差估計結果圖
由圖3可見,經過50次迭代后,時差估計的誤差基本在0.01 ms以下,因此,本方法可實現高精度的時差誤差估計,有效提高了基于Web瀏覽器的時間管理方法的授時精度。表1為實測記錄,由表1可見,本方法可以根據計算的時間偏差修正本地時間。

表1 授時服務實測記錄
通過對比本方法與傳統方法可以發現(表2),傳統Web瀏覽器用時方法主要有獲取本地計算機時間方法和獲取本地NTP同步后的時間方法兩種。瀏覽器獲取本地時間方法存在本地時間與軍用標準時間不同步引起的偏差;瀏覽器獲取本地NTP同步后的時間存在本地時間易被其他軟件或人為修改引起偏差問題。本文所采用的方法能夠保證Web瀏覽器顯示時間與服務器時間高精度同步,不受本地時間系統精度及偏差的影響,且服務器可記錄終端計算機時間變化情況,具備終端計算機時間的監測功能和時間溯源功能。

表2 方法比較
本文提出的一種基于Web瀏覽器的時間管理方法,基于IE、Chrome、Firefox等通用Web瀏覽器對廣域網分布式部署的終端實現毫秒級精度的時間同步、時間偏差監測、事件時標記錄與查詢等時間管理功能,將傳統客戶端之間可能存在的秒級甚至分鐘級別的誤差縮小到50 ms。提出了基于LMS算法的時差誤差估計方法,保證了各終端在Web瀏覽器上顯示的時間具有高精度高可用性和免維護性,且能夠在各終端操作系統的系統時間發生改變時自動識別并自動修正本地時間同步到Web服務器的時間,保證了各項活動中指揮的精確度和多部門聯動的協調度。