張大林 郝梓騰 王洪偉 林思雨
(北京交通大學(xué), 北京 100044)
從上世紀(jì)90年代開始,我國高速鐵路動車組技術(shù)歷經(jīng)自主探索、引進(jìn)消化吸收再創(chuàng)新以及自主創(chuàng)新三個階段,復(fù)興號中國標(biāo)準(zhǔn)動車組標(biāo)志著我國真正意義上具備了完全自主知識產(chǎn)權(quán)的動車組技術(shù)。2020年,我國400 km/h高速動車組在中車唐山公司下線,昭示著我國高速動車組技術(shù)進(jìn)入了新的階段,有助于推動中國鐵路“走出去”,對促進(jìn)國際經(jīng)濟(jì)、文化融合發(fā)展具有重要意義。
高速動車組結(jié)構(gòu)復(fù)雜,子系統(tǒng)眾多,列車通信網(wǎng)絡(luò)是承擔(dān)監(jiān)測、控制等重要信息的關(guān)鍵,也是提升動車組信息化、智能化的核心。傳統(tǒng)的列車通信網(wǎng)絡(luò)有絞線式列車總線(Wire Train Bus, WTB)、多功能車輛總線(Multifunction Vehicle Bus, MVB)、CAN、ARCNET和LonWorks等。傳統(tǒng)總線式列車網(wǎng)絡(luò)具有實時性好、抗干擾能力強(qiáng)和穩(wěn)定性高的優(yōu)勢,但其傳輸速率較低(MVB總線通信速率為1.5Mbit/s,WTB總線通信速率為1 Mbit/s),無法滿足大吞吐量的要求,且其擴(kuò)展性較差,單一的總線實現(xiàn)功能難以應(yīng)對復(fù)雜的通信任務(wù)[1]。隨著智能化時代的到來,列車通信網(wǎng)路的作用已不僅僅局限于簡單的數(shù)據(jù)傳輸,還需實現(xiàn)網(wǎng)絡(luò)故障診斷、優(yōu)先級調(diào)度等更多功能,目前的現(xiàn)場總線技術(shù)已不能滿足高速列車發(fā)展的需求[2]。以以太網(wǎng)為代表的高速率傳輸技術(shù)已成了列車通信網(wǎng)絡(luò)的發(fā)展方向,并陸續(xù)裝備到我國多類型號的動車組列車上,我國400 km/h的高速動車組也采用以太網(wǎng)技術(shù)來實現(xiàn)高速列車的網(wǎng)絡(luò)控制、智能化自動輔助駕駛等功能。
以太網(wǎng)使用CSMA/CD協(xié)議,可能會導(dǎo)致通信節(jié)點之間的信息傳輸沖突,并導(dǎo)致數(shù)據(jù)丟失或不確定的傳輸時延等,從而無法滿足列車通信對實時性和確定性的要求[3]。鑒于列車通信網(wǎng)絡(luò)在動車組安全、高效運營過程中的關(guān)鍵作用,對基于以太網(wǎng)的列車通信網(wǎng)絡(luò)開展安全性和可靠性測試具有重要意義。
為保障列車通信網(wǎng)絡(luò)信息傳輸?shù)目煽啃院桶踩裕熊噷崟r數(shù)據(jù)協(xié)議(Train Real-Time Data Protocol, TRDP)得到了廣泛的應(yīng)用[4]?;贠SI網(wǎng)絡(luò)模型,TRDP位于TCP/UDP傳輸層之上[5],應(yīng)用層之下,屬于第五層協(xié)議。TRDP協(xié)議主要用于列車通信網(wǎng)絡(luò)中過程數(shù)據(jù)和消息數(shù)據(jù)兩種實時通信數(shù)據(jù)的傳輸。過程數(shù)據(jù)是實時周期性傳輸?shù)?,消息?shù)據(jù)是實時非周期性傳輸?shù)?。過程數(shù)據(jù)長度小,一般用于控制單元發(fā)出的控制命令和遠(yuǎn)程輸入、輸出模塊反饋的運行狀態(tài)信息,但其數(shù)據(jù)量大、對可靠性、確定性,實時性要求高。消息數(shù)據(jù)一般用于設(shè)備狀態(tài)信息和故障報警信息,數(shù)據(jù)量長短不一,對實時性要求較低[6]。TRDP對過程數(shù)據(jù)的幀結(jié)構(gòu)、交互模型和通信流程都進(jìn)行了規(guī)定。
因此,本文以TRDP協(xié)議為基礎(chǔ),基于BS架構(gòu)構(gòu)建面向高速動車組列車通信網(wǎng)絡(luò)的實時檢測技術(shù),實現(xiàn)對時延、丟包、亂序、吞吐量等關(guān)鍵服務(wù)質(zhì)量參數(shù)的測試和統(tǒng)計分析,驗證列車車載網(wǎng)絡(luò)的可靠性和安全性。
面向TRDP的以太網(wǎng)通信網(wǎng)絡(luò)監(jiān)測平臺的主要目標(biāo)是實現(xiàn)對列車通信網(wǎng)絡(luò)各類業(yè)務(wù)運行情況的實時監(jiān)測,并可實現(xiàn)統(tǒng)計結(jié)果實時展示告警、歷史統(tǒng)計結(jié)果查詢、監(jiān)測報告導(dǎo)出等功能。因此,本文設(shè)計了列車以太網(wǎng)通信網(wǎng)絡(luò)性能監(jiān)測平臺,通過大數(shù)據(jù)技術(shù)對列車網(wǎng)絡(luò)流量進(jìn)行實時計算,并實現(xiàn)對列車網(wǎng)絡(luò)流量實時采集存儲、各類業(yè)務(wù)TRDP網(wǎng)絡(luò)數(shù)據(jù)包的性能指標(biāo)統(tǒng)計、網(wǎng)絡(luò)監(jiān)測統(tǒng)計結(jié)果的實時展示、統(tǒng)計數(shù)據(jù)的管理與監(jiān)測報告的導(dǎo)出以及TRDP網(wǎng)絡(luò)數(shù)據(jù)包發(fā)包規(guī)則與監(jiān)測標(biāo)準(zhǔn)的配置等功能。性能監(jiān)測平臺基本需求如表1所示。
表1 性能監(jiān)測平臺需求分析表
TRDP數(shù)據(jù)包的基本信息配置主要應(yīng)用于對網(wǎng)絡(luò)性能指標(biāo)的計算和當(dāng)前性能指標(biāo)是否符合傳輸標(biāo)準(zhǔn)的判斷,包括Comid、源IP地址、目的IP地址、發(fā)送周期、數(shù)據(jù)包大小、最大丟包率閾值、時延抖動閾值等測試標(biāo)準(zhǔn)。
TRDP協(xié)議的每類業(yè)務(wù)均對應(yīng)一個Comid特性,并以此為基礎(chǔ),實時監(jiān)測列車通信網(wǎng)絡(luò)各類業(yè)務(wù)的數(shù)據(jù)包丟失情況、數(shù)據(jù)包亂序情況及數(shù)據(jù)傳輸時延情況。要求能實時統(tǒng)計當(dāng)前通信網(wǎng)絡(luò)的帶寬占用情況,設(shè)計算法實現(xiàn)對通信網(wǎng)絡(luò)中丟包、亂序情況的實時計算,統(tǒng)計出數(shù)據(jù)包總量及各類業(yè)務(wù)中丟失數(shù)據(jù)包的數(shù)據(jù)量、亂序數(shù)據(jù)包的數(shù)據(jù)量和最大時延抖動,并根據(jù)每類業(yè)務(wù)的測試標(biāo)準(zhǔn)將丟失數(shù)據(jù)包、亂序數(shù)據(jù)包及最大時延抖動進(jìn)行輸出。
為讓用戶直觀了解當(dāng)前列車網(wǎng)絡(luò)狀態(tài)的性能指標(biāo),要求實時展示當(dāng)前的數(shù)據(jù)包總量、數(shù)據(jù)包丟失數(shù)量及數(shù)據(jù)包亂序情況。分別以柱狀圖和折線圖的形式呈現(xiàn)當(dāng)前每類業(yè)務(wù)的數(shù)據(jù)包丟失與亂序數(shù)量,要求折線圖按照秒級進(jìn)行展示,并具有篩選功能,柱狀圖按照分鐘級別的粒度進(jìn)行排序展示。
數(shù)據(jù)管理模塊主要是為了讓用戶可以對歷史統(tǒng)計數(shù)據(jù)進(jìn)行回溯管理,進(jìn)一步分析網(wǎng)絡(luò)鏈路中可能出現(xiàn)的異常情況。數(shù)據(jù)管理需求主要是能根據(jù)時間、Comid、源IP地址、目的IP地址等查詢條件查詢歷史數(shù)據(jù)。報告導(dǎo)出需求主要是能根據(jù)Comid、目標(biāo)地址、源地址及時間等查詢條件生成報表,根據(jù)時間、業(yè)務(wù)ID等條件自定義生成報告。
平臺實行模塊化設(shè)計,基本架構(gòu)如圖1所示。平臺架構(gòu)分為數(shù)據(jù)采集層、數(shù)據(jù)傳輸層、數(shù)據(jù)處理層、數(shù)據(jù)存儲層、數(shù)據(jù)應(yīng)用層五層,設(shè)計過程中多采用分布式架構(gòu),對處理性能擴(kuò)展及列車控制中心遠(yuǎn)程監(jiān)控列車網(wǎng)絡(luò)通信具有借鑒意義。
圖1 檢測平臺架構(gòu)圖
根據(jù)用戶需求分析,性能檢測平臺可細(xì)分為數(shù)據(jù)采集模塊、性能指標(biāo)計算模塊和數(shù)據(jù)應(yīng)用模塊。其中,數(shù)據(jù)采集模塊又可分為基本信息配置模塊、網(wǎng)絡(luò)流量采集模塊和數(shù)據(jù)包解析模塊,性能指標(biāo)計算模塊主要包括丟包計算、亂序計算、時延計算及吞吐量計算,數(shù)據(jù)應(yīng)用模塊又可分為數(shù)據(jù)實時展示模塊、歷史數(shù)據(jù)管理模塊和監(jiān)測報告導(dǎo)出等模塊,功能架構(gòu)如圖2所示。
圖2 檢測平臺功能架構(gòu)圖
性能檢測平臺中的數(shù)據(jù)庫主要用于存儲列車通信網(wǎng)絡(luò)中所產(chǎn)生和統(tǒng)計的數(shù)據(jù),因此數(shù)據(jù)庫設(shè)計的簡潔性、易拓展性等特點對于平臺十分重要,好的數(shù)據(jù)庫設(shè)計能使平臺更易進(jìn)行更新和維護(hù)。在數(shù)據(jù)庫設(shè)計過程中,首先根據(jù)需求分析確定實體關(guān)系(性能監(jiān)測平臺實體關(guān)系如圖3所示),再根據(jù)實體關(guān)系設(shè)計數(shù)據(jù)庫的概念模型,然后將概念模型轉(zhuǎn)換為數(shù)據(jù)庫的邏輯數(shù)據(jù)模型,最后將邏輯數(shù)據(jù)模型轉(zhuǎn)換為更高級的物理數(shù)據(jù)模型。
圖3 性能監(jiān)測平臺實體關(guān)系圖
動車組列車通信網(wǎng)絡(luò)檢測平臺主要包含TRDP網(wǎng)絡(luò)數(shù)據(jù)采集、網(wǎng)絡(luò)性能計算、數(shù)據(jù)存儲、統(tǒng)計結(jié)果應(yīng)用等多個模塊。
平臺采用WinPcap抓取網(wǎng)絡(luò)數(shù)據(jù)包(數(shù)據(jù)類型為十六進(jìn)制ASCii碼)后,首先將抓取的數(shù)據(jù)包數(shù)據(jù)轉(zhuǎn)化為十六進(jìn)制數(shù)據(jù),然后直接解析出數(shù)據(jù)包的Comid。目前,解析的數(shù)據(jù)包主要是基于UDP傳輸?shù)倪^程數(shù)據(jù),過程數(shù)據(jù)的TRDP數(shù)據(jù)包最大為1 472字節(jié),在傳輸過程中不會產(chǎn)生IP數(shù)據(jù)報分片問題,因此可直接根據(jù)TRDP協(xié)議格式對網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行解析。解析過程中,平臺會丟棄無法正確解析成TRDP協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包。由于網(wǎng)絡(luò)性能指標(biāo)計算模塊是根據(jù)TRDP網(wǎng)絡(luò)數(shù)據(jù)包的序列號實現(xiàn)網(wǎng)絡(luò)通信監(jiān)測的,因此每類業(yè)務(wù)在傳輸及存儲過程中均需保證順序性。根據(jù)每類業(yè)務(wù)Comid的唯一性,將數(shù)據(jù)包存入不同的先進(jìn)先出隊列當(dāng)中,存入隊列之后,由對應(yīng)進(jìn)程解析出源IP地址、目的IP地址、Comid、序列號、消息類型、etbTopoCnt、opTrnTopoCnt、datasetLength等數(shù)據(jù)包內(nèi)容信息,并將信息賦值于數(shù)據(jù)包對象。業(yè)務(wù)流程如圖4所示。
圖4 TRDP網(wǎng)絡(luò)數(shù)據(jù)包采集流程圖
為避免出現(xiàn)數(shù)據(jù)包順序錯亂,解析后便將網(wǎng)絡(luò)數(shù)據(jù)包存儲到Mysql數(shù)據(jù)庫當(dāng)中,如此讀取的網(wǎng)絡(luò)數(shù)據(jù)包順序便與采集的順序一致。
性能計算模塊通過利用采集到的數(shù)據(jù)包對列車通信網(wǎng)絡(luò)的性能進(jìn)行實時計算,主要采用Flink數(shù)據(jù)處理引擎對Mysql的BinLog日志進(jìn)行解析,將解析后的數(shù)據(jù)利用丟包、時延、亂序以及吞吐量的計算方法進(jìn)行實時統(tǒng)計。數(shù)據(jù)采集模塊的采樣數(shù)據(jù)需存儲到Mysql數(shù)據(jù)庫中,因此,需要實現(xiàn)Flink與Mysql的整合。利用Flink的窗口機(jī)制、鍵值狀態(tài)、水印等特性實現(xiàn)對基于TRDP協(xié)議的列車通信網(wǎng)絡(luò)的實時性能計算,數(shù)據(jù)流處理的流程如圖5所示。
圖5 數(shù)據(jù)流處理流程圖
以此為基礎(chǔ),使用Flink實時拉取Mysql中的日志消息,對列車以太網(wǎng)通信進(jìn)行性能指標(biāo)統(tǒng)計,分析當(dāng)前通信鏈路各類業(yè)務(wù)的通信情況。對于異常信息,將數(shù)據(jù)存儲到數(shù)據(jù)庫的同時,也通過Kafka傳輸?shù)綉?yīng)用層,應(yīng)用層會對性能指標(biāo)統(tǒng)計結(jié)果進(jìn)行實時顯示。
3.2.1丟包與亂序計算
當(dāng)?shù)贜個數(shù)據(jù)包到達(dá)時,首先與狀態(tài)版本號進(jìn)行比較,若小于當(dāng)前狀態(tài)版本號,則將該條數(shù)據(jù)丟棄。若大于當(dāng)前版本號,則將其作為新版本號,此后流程同第一個數(shù)據(jù)包到達(dá)流程相同。對于相同的版本號,首先更新狀態(tài)時間(定時器會使用該時間判斷是否將狀態(tài)中丟失的數(shù)據(jù)包進(jìn)行輸出),之后遍歷緩存的丟失數(shù)據(jù)包,并對該數(shù)據(jù)包經(jīng)過的數(shù)據(jù)包步長進(jìn)行遞增,對于經(jīng)歷的數(shù)據(jù)包步長大于給定值的,認(rèn)為屬于丟包,計算丟包率并與規(guī)則進(jìn)行比對后,對其信息進(jìn)行封裝,存儲于列表當(dāng)中。在遍歷判斷數(shù)據(jù)包丟失的過程中,也會進(jìn)行數(shù)據(jù)包的亂序計算,判斷當(dāng)前數(shù)據(jù)包的序列號在緩存的丟失數(shù)據(jù)包中是否存在,若存在則將其從緩存中移除,并將其標(biāo)記為亂序數(shù)據(jù)包,更新亂序數(shù)據(jù)包狀態(tài)統(tǒng)計的數(shù)量。
3.2.2時延抖動與吞吐量計算
時延抖動與吞吐量都是網(wǎng)絡(luò)性能檢測的重要性能指標(biāo)。時延抖動可確保列車網(wǎng)絡(luò)管理員實時觀察列車網(wǎng)絡(luò)設(shè)備在運行過程中的異常抖動現(xiàn)象,其計算方式是以前一個到來的數(shù)據(jù)包的嗅取時間為標(biāo)準(zhǔn),用當(dāng)前數(shù)據(jù)包的時間減去前一個到來的數(shù)據(jù)包的時間后,與規(guī)則中的閾值進(jìn)行比對,對異常情況進(jìn)行標(biāo)記。吞吐量的計算是將數(shù)據(jù)包嗅取的時間作為時間窗口的時間,利用Assign Times Tamps And Watermarks來定義生成水印的邏輯,通過為數(shù)據(jù)流設(shè)置滾動窗口,來統(tǒng)計每一秒中數(shù)據(jù)包總量的大小。
平臺的前端界面包含亂序、丟包、時延、吞吐量及數(shù)據(jù)包的實時顯示等。
為保障基于TRDP的列車通信網(wǎng)絡(luò)檢測平臺在真實運營場景中的適應(yīng)性,需搭建具有高擬真度的測試環(huán)境對平臺進(jìn)行性能測試。測試環(huán)境的硬件部分由網(wǎng)絡(luò)設(shè)備和計算設(shè)備組成。其中,網(wǎng)絡(luò)設(shè)備主要通過無線路由器搭建小型局域網(wǎng),實現(xiàn)標(biāo)準(zhǔn)的TRDP網(wǎng)絡(luò)通信;計算設(shè)備用來進(jìn)行軟件環(huán)境部署,主要包括用于TRDP數(shù)據(jù)發(fā)送的計算機(jī)1臺、用于數(shù)據(jù)采集、處理與展示的計算機(jī)1臺??紤]本地計算機(jī)性能的局限性,利用2臺阿里云網(wǎng)絡(luò)服務(wù)器分別作為消息隊列和時序數(shù)據(jù)庫服務(wù)器。硬件配置如表2所示。
表2 性能測試硬件配置表
在性能測試階段,為對網(wǎng)絡(luò)數(shù)據(jù)包采集系統(tǒng)進(jìn)行壓力測試,并驗證數(shù)據(jù)采集設(shè)備的采集能力,使用采集設(shè)備進(jìn)行發(fā)包與捕獲,同時開啟WireShark抓取數(shù)據(jù)包。測試中,采用同時開啟80個線程,以5 ms作為發(fā)送周期,發(fā)送長度為1 432字節(jié)的數(shù)據(jù)包來模擬列車設(shè)備發(fā)送的不同業(yè)務(wù)數(shù)據(jù)包,所發(fā)送數(shù)據(jù)包全部被收包設(shè)備的數(shù)據(jù)采集器捕獲,測試結(jié)果如圖6所示。
圖6 數(shù)據(jù)采集對比圖
在網(wǎng)絡(luò)性能計算模塊中,以并行度1讀取存儲在Mysql數(shù)據(jù)庫的BinLog日志,測試了25 190條數(shù)據(jù)在Flink處理引擎中處于不同并行度時的處理速度,分別以并行度1、并行度2、并行度4及并行度6執(zhí)行網(wǎng)絡(luò)性能統(tǒng)計的算子,對數(shù)據(jù)處理模塊的處理速度進(jìn)行測試,測試結(jié)果如圖7所示。
圖7 不同并行度計算速度比較圖
本文設(shè)計了基于TRDP協(xié)議的列車通信實時檢測平臺,對列車網(wǎng)絡(luò)進(jìn)行長時間實時監(jiān)測,分析列車通信網(wǎng)絡(luò)中各類業(yè)務(wù)的通信狀況,對出現(xiàn)的異常信息進(jìn)行實時統(tǒng)計。該平臺包括TRDP網(wǎng)絡(luò)數(shù)據(jù)采集、性能指標(biāo)計算、實時展示、數(shù)據(jù)管理及監(jiān)測報告導(dǎo)出五大模塊,對保障列車運行的安全性和可靠性具有重大意義,對以400 km/h高速動車組為代表的高速鐵路技術(shù)的推廣和應(yīng)用具有重要的推動作用。