劉克難
(1.北京全路通信信號研究設計院集團有限公司,北京 100070 2.北京市高速鐵路運行控制系統(tǒng)工程技術研究中心,北京 100070)
信息系統(tǒng)服務于各行各業(yè),與生產生活息息相關,對時鐘準確性的要求很高,特別是分布式部署的系統(tǒng),更加需要各個子系統(tǒng)之間時鐘準確且同步。調度集中控制(CTC)系統(tǒng)作為分布式部署的列車調度指揮自動化系統(tǒng),關系到鐵路的安全生產,更加需要時鐘同步。
從功能方面說,運行圖、行車日志、自動報點、鄰站預告、進路預告、調度命令、進路自動觸發(fā)等都需要嚴格準確的時鐘信息;從維護方面說,程序日志、報警信息也需要準確的時間信息,以方便數(shù)據統(tǒng)計與問題的查找定位;從地面信號系統(tǒng)說,CTC需要給聯(lián)鎖、列控中心、信號集中監(jiān)測、運輸調度管理系統(tǒng)(TDMS)、臨時限速服務器(TSRS)等系統(tǒng)發(fā)布時鐘信息。對此,目前鐵路總公司發(fā)布的《信號地面設備系統(tǒng)時鐘同步方案》(以后簡稱標準)里給出如何實現(xiàn)信號系統(tǒng)時鐘同步的指導方案,規(guī)定CTC內部采用Network Time Protocol(NTP)協(xié)議,對外采用專用協(xié)議。NTP服務在CTC上應用,必須解決由于CTC系統(tǒng)服務器、自律機、終端的操作系統(tǒng)或硬件平臺差異帶來的問題,以及如何使時鐘同步功能具備可監(jiān)管性的問題。下面,本文將針對CTC系統(tǒng)的時鐘同步需求與方案展開討論。
1)CTC中心須配套雙冗余的衛(wèi)星授時儀作為時鐘源;
2)每個設備在其固有的晶振頻率下進行計時,即使初始時間相同,由于各種晶振的特性不同,也會隨著時間的推移而出現(xiàn)誤差。CTC系統(tǒng)各設備時鐘同步,要求同步間隔小于5 min,時差在1 s內;
3)采用NTP協(xié)議實現(xiàn)內部時鐘同步;
4)為避免系統(tǒng)間的干擾,采用串口通信方式為其他信號系統(tǒng)提供時鐘信息,可使用專用協(xié)議。
1)時鐘信息雙機同步
CTC系統(tǒng)關鍵設備均是雙機熱備。當一臺設備故障時,能夠無縫倒切到另一設備繼續(xù)工作,不對既有的系統(tǒng)產生影響。為此,主備機器之間需要同步一些應用數(shù)據,如站場信號設備狀態(tài)、車次號信息、進路信息、接口連接狀態(tài)信息等,這些信息本身需要準確的時鐘信息。另外,在主機切換到備機時,也在保證備機時間正確性的前提下,才能允許其開始業(yè)務處理工作。
2)硬件時鐘同步
除系統(tǒng)時鐘同步外,時鐘同步還應包含硬件時鐘同步,將時間寫入BIOS,以保證在設備斷電重啟后,時間信息的正確性。
3)可視化監(jiān)控
CTC是一個龐大的分布式系統(tǒng),包含應用服務器、通信服務器、各類接口服務器、自律機、以及各種業(yè)務終端設備等,尤其是車站設備繁多,人工檢查校時結果的工作量巨大且效率低下。因此,CTC需要具備監(jiān)控各個設備時鐘同步情況的功能。該功能可部署在中心維護臺,中心維護人員可監(jiān)控所有CTC設備的時鐘信息,以及設備與時鐘源的時間偏離值。中心維護人員可以通過監(jiān)控及時發(fā)現(xiàn)時鐘同步失敗的設備,查找修復問題,避免由于時鐘偏差造成業(yè)務系統(tǒng)的其他問題。
NTP是一種為實現(xiàn)網絡時鐘同步開發(fā)的標準協(xié)議。它可以提供高精準度的時間校正局域網(LAN)上誤差小于1 ms,廣域網(WAN)上誤差幾十ms),且通過加密確認的方式來防止惡意攻擊。2010年6月,NTP發(fā)布第4版(其標準化文檔為RFC5905),使其具備更高的精度、更強的兼容性、更廣的適應性。
NTP客戶端與服務端之間使用高效的UDP協(xié)議傳輸數(shù)據。NTP通過時鐘偏移量與傳遞延遲等信息計算出時間參考值。另外,NTP支持同時從多個時鐘源獲取時鐘信息,利用過濾算法找出相對可靠的時間來源,然后采用它的時間來校時。
NTP官方提供開源的NTP程序,該程序屏蔽了不同版本之間的兼容性。應用系統(tǒng)可以直接使用。
CTC系統(tǒng)包括應用服務器、數(shù)據庫服務器、通信服務器、接口服務器(含TSRS接口、GSM-R接口、TDMS接口、鐵總接口、鄰局接口等)、對外時鐘服務器、中心終端、車站自律機、車務終端、電務維護終端等。時鐘同步功能涉及每一個設備,功能與既有的CTC應用程序獨立,其時鐘同步系統(tǒng)呈現(xiàn)為樹形邏輯結構,具體結構如圖1所示。
從框架可見,整個時鐘同步系統(tǒng)分成4個層級:
第一層:衛(wèi)星授時儀;
第二層:CTC應用服務器;
第三層:CTC中心的其他設備(通信服務器、接口服務器、終端等);
第四層:車站設備(自律機、車務終端等)。
上層設備提供NTP服務端,下層設備從上層設備獲取時間信息。葉子節(jié)點設備(如自律機、車務終端)只需具備NTP客戶端功能。
CTC系統(tǒng)中采用多種操作系統(tǒng),一般服務器與自律機采用性能高效的UNIX系列操作系統(tǒng),終端采用界面友好的windows系列操作系統(tǒng)。
4.2.1 UNIX系列設備
NTP有第三方開源軟件,UNIX系列一般自帶此軟件。其主要程序有服務端程序ntpd與客戶端程序ntpdate等,其中ntpd提供的服務端口為123。ntpd與ntpd之間可進行同步,采用這種同步方式,下層設備能保證與上層設備的偏差在128 ms以下,但其同步的間隔是無法進行設置的。ntpd的輪詢時間約為8 s至36 h之間,此間隔會根據實際網絡情況和系統(tǒng)負載狀況進行實時調整。ntpd對于小于128 ms的偏差,會通過延長或縮短“秒”的手段來實現(xiàn)同步;若偏差在128 ms到1 000 s之間,系統(tǒng)則直接進行時鐘同步;若大于1 000 s,則認為偏差太大,為了防止惡意修改時間,需人工核實后手動調整時間。
綜上可見,ntpd可很好的實現(xiàn)時鐘同步,但其機制與CTC系統(tǒng)的時鐘同步需求有偏差。標準要求CTC系統(tǒng)各個設備5 min同步一次,且時差不能大于1 s。而ntpd無法實現(xiàn)固定間隔同步與立即同步時鐘功能。這就需要ntpdate來實現(xiàn),ntpdate不區(qū)分時間偏差,直接將時鐘源ntpd返回的時鐘同步到本地。這一點與需求吻合。另外,可通過自動化腳本等技術實現(xiàn)對ntpdate周期性調用的控制,實現(xiàn)每5 min同步一次時鐘的需求。采用ntpdate這種絕對服從機制,則需要確保時鐘源正確。
另外,在CTC系統(tǒng)的UNIX設備上實現(xiàn)NTP時,需要注意以下幾點:
1)對于通信服務器、應用服務器等同時充當服務端與客戶端的設備,ntpd與ntpdate要同時存在。此時,使用ntpdate需要使用“-u”參數(shù),才能實現(xiàn)正常同步;
2)ntpd完成自身的時鐘同步后,才會向外部提供時鐘服務。這個過程可能在5 min左右完成。若在此過程中,有客戶端向其請求時鐘信息,則會遭到拒絕,被拒絕的客戶端在下個時鐘同步周期(5min后)即可正常獲得時鐘信息;
3)對于主備機共享工作IP的設備,在倒切時,需要重啟ntpd服務。這是由于ntpd只在啟動時才會遍歷本機的IP地址,并在搜索到的IP地址上建立NTP服務監(jiān)聽端口。如果倒機后,不重啟ntpd,則會導致NTP服務無效。因此,需要采取自動化腳本等手段來控制ntpd,使其倒機后重新啟動。
4.2.2 windows系列設備
windows系列自帶的w32time服務組件實現(xiàn)了NTP時鐘同步功能。校時范圍有限制,當時鐘源與本機時間偏差過大,如出現(xiàn)時差超過最大偏移量(可配置)或日期不一致時,不進行時鐘同步。對w32time同步策略的控制,可以通過修改注冊表實現(xiàn)。
4.2.3 主備機時鐘同步
CTC通過專用的雙機程序來完成主備機之間的數(shù)據通信。時鐘同步功能可依托于既有的雙機程序,不需要額外增加新的模塊。雙機程序只需多同步一類時鐘信息即可。備機將自己的時鐘信息發(fā)給主機,主機向外發(fā)布主備機兩個設備的時鐘信息狀態(tài),供維護監(jiān)控使用。
在對外部系統(tǒng)提供時鐘信息時,需考慮安全性,在系統(tǒng)之間加隔離措施,保持不同系統(tǒng)的網絡獨立性。目前CTC系統(tǒng)通過下面兩種設備對外提供時鐘信息。
4.3.1 中心對外時鐘服務
對外時鐘服務器雖是CTC系統(tǒng)的一部分,但其主要任務是向其他系統(tǒng)提供時鐘信息。因此,對外時鐘服務器與CTC應用服務器的連接方式不采用網絡傳輸,而采用串口專用協(xié)議作為隔離。此處軟件設計成客戶端(對外時鐘服務器)/服務端(應用服務器)模式,使用請求/回執(zhí)機制。之間傳輸數(shù)據的內容除了時鐘信息之外,還需要考慮雙機同步的問題,因此主備狀態(tài)信息也需要傳輸。為了增強實時性,請求信息需維護一個請求序號,服務端回執(zhí)的時間信息中序號如果一致,則認為是實時的回執(zhí)包;否則不予處理?;貓?zhí)包不需考慮重發(fā),因為時間在變,重發(fā)無意義。如果請求與回執(zhí)之間的時間間隔超過設定值,則認為時間信息無效。標準要求時差可以在1 s內,因此傳輸時間、編碼、解碼的毫秒級時間可不考慮。
對外時鐘服務器通過串口方式從CTC應用服務器獲取時鐘信息后,開啟NTP服務對外提供時鐘信息,響應外部系統(tǒng)的時鐘請求。TSRS與RBC(無線閉塞中心)系統(tǒng)比較特殊,CTC系統(tǒng)接口機可以通過專用的應用協(xié)議向其提供時鐘信息,也可采用NTP方式向其提供校時服務。
4.3.2 車站自律機對外時鐘服務
車站自律機與聯(lián)鎖、列控中心通過串口連接,采用通信專用協(xié)議實現(xiàn)了校時功能。
時鐘同步功能實現(xiàn)后,需要監(jiān)控CTC系統(tǒng)各個設備的時鐘同步情況。由運維軟件采集各個設備的時鐘同步信息,采集結果集中在運維終端展示給維護人員。運維終端提供每個設備的時鐘信息,以及與時鐘源的時差。時差超過警戒線的設備,則顯示警戒色;持續(xù)3個校時周期時差依然超過警戒線的設備,則語音報警,并在終端上以閃爍態(tài)明確報警設備。
NTP時鐘同步功能強大,跨平臺適應性好,非常適合應用在多平臺的CTC系統(tǒng)。本文除標準要求之外,討論了一些深化需求,這些深化需求在實際應用中都是必要的。時鐘同步系統(tǒng)屬一個比較獨立的系統(tǒng),與應用模塊獨立。但由于兩者宿主同一臺設備,加上時鐘變化對應用程序有直接的影響,在上線之前需要做充分的實驗,包含性能、兼容性、以及時間突變對程序的影響等。