摘 要:網(wǎng)絡(luò)數(shù)據(jù)采集是網(wǎng)絡(luò)系統(tǒng)研制過程中重要的一環(huán),能夠為系統(tǒng)排故分析提供可靠的數(shù)據(jù)支撐,保障系統(tǒng)安全穩(wěn)定運(yùn)行。為提高數(shù)據(jù)采集系統(tǒng)對復(fù)雜網(wǎng)絡(luò)的采集效率,文章設(shè)計一款基于虛擬分布式技術(shù)的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng),并圍繞系統(tǒng)實現(xiàn)、可靠性與實時性分析等方面展開論述,通過對系統(tǒng)架構(gòu)的改進(jìn),計算機(jī)硬件資源得以充分利用,提高了數(shù)據(jù)采集的效率,可為系統(tǒng)試驗分析提供可靠支撐。
關(guān)鍵詞:分布式計算;虛擬化技術(shù);數(shù)據(jù)采集
中圖分類號:TN92;TP274+.2 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2024)08-0006-05
DOI:10.19850/j.cnki.2096-4706.2024.08.002
0 引 言
隨著通信網(wǎng)絡(luò)技術(shù)和計算機(jī)應(yīng)用技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)監(jiān)控技術(shù)和網(wǎng)絡(luò)偵聽技術(shù)均得到大幅提升,將主流網(wǎng)絡(luò)監(jiān)控技術(shù)和網(wǎng)絡(luò)數(shù)據(jù)包采集技術(shù)應(yīng)用到地面測發(fā)控通信系統(tǒng)的運(yùn)維與保障上,能夠提高網(wǎng)絡(luò)監(jiān)控的實時性、穩(wěn)定性與可靠性,同時提高系統(tǒng)數(shù)據(jù)包的采集能力,從而為通信系統(tǒng)提供可靠的分析數(shù)據(jù)源,為試驗故障診斷提供信息和技術(shù)支撐,給地面測發(fā)控通信系統(tǒng)的運(yùn)行保駕護(hù)航。
目前主流的網(wǎng)絡(luò)數(shù)據(jù)包采集技術(shù)受限于硬件驅(qū)動和計算機(jī)處理性能,軟件抓包性能難以滿足測發(fā)控網(wǎng)絡(luò)系統(tǒng)的業(yè)務(wù)需求,當(dāng)骨干網(wǎng)絡(luò)系統(tǒng)處于業(yè)務(wù)數(shù)據(jù)傳輸峰值時,會導(dǎo)致抓包數(shù)據(jù)丟失,從而無法滿足系統(tǒng)故障診斷與定位需求。針對該問題,本文提出一種基于虛擬分布式技術(shù)的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)框架,該框架融合虛擬機(jī)技術(shù)與分布式部署技術(shù)[1,2],在保留軟件抓包驅(qū)動及算法優(yōu)勢不變的情況下,升級系統(tǒng)部署模式,提高系統(tǒng)整體抓包能力。
1 網(wǎng)絡(luò)拓?fù)湓O(shè)計
基于虛擬分布式技術(shù)的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)適用于測發(fā)控通信專網(wǎng)[3-5]的流量監(jiān)控與數(shù)據(jù)包采集。系統(tǒng)旁接在骨干交換機(jī)上,通過業(yè)務(wù)端口的映射(將需要采集的多個業(yè)務(wù)端口流量映射到一個監(jiān)聽口上),實現(xiàn)對整體網(wǎng)絡(luò)多個骨干交換機(jī)的數(shù)據(jù)采集。系統(tǒng)主要由云服務(wù)器設(shè)備、云虛擬機(jī)系統(tǒng)與虛擬抓包服務(wù)程序組成。將多套虛擬機(jī)抓包服務(wù)部署在云服務(wù)器中的不同虛擬機(jī)系統(tǒng)中,實現(xiàn)分布式數(shù)據(jù)包采集功能。與傳統(tǒng)數(shù)據(jù)采集框架相比,通信網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計未變化,主要改變了抓包程序的部署模式。系統(tǒng)拓?fù)淇傮w框架設(shè)計圖如圖1所示。
傳統(tǒng)數(shù)據(jù)采集架構(gòu)只能采集一個骨干交換機(jī)的數(shù)據(jù),需要多臺抓包服務(wù)器來完成整個網(wǎng)絡(luò)骨干交換機(jī)的數(shù)據(jù)抓取,該設(shè)計方案硬件成本與運(yùn)維成本較高,可擴(kuò)展性差,已經(jīng)不再適用于目前大數(shù)據(jù)流量下的測發(fā)控網(wǎng)絡(luò)系統(tǒng)。
虛擬分布式數(shù)據(jù)采集架構(gòu)可以虛擬多個抓包終端,部署的數(shù)量由云服務(wù)器的物理以太網(wǎng)接口決定,相較傳統(tǒng)的數(shù)據(jù)采集架構(gòu),虛擬分布式數(shù)據(jù)采集架構(gòu)的采集能力得到大幅的提升,且具備更好的擴(kuò)展性。
2 系統(tǒng)架構(gòu)設(shè)計
本系統(tǒng)積極吸取華為交換機(jī)流量鏡像技術(shù)、分布式云技術(shù)、LibPcap軟件抓包技術(shù)[6,7]、ElasticSearch數(shù)據(jù)庫技術(shù),以SpringBoot框架作為系統(tǒng)服務(wù)后端,Vue框架作為界面前端搭建基于虛擬分布式數(shù)據(jù)采集系統(tǒng)。系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
2.1 物理層
物理層主要負(fù)責(zé)生產(chǎn)業(yè)務(wù)流量,測發(fā)控網(wǎng)絡(luò)由多臺互連核心交換機(jī)與多臺接入交換機(jī)組成,業(yè)務(wù)工作站與業(yè)務(wù)終端設(shè)備通信產(chǎn)生的流量數(shù)據(jù),都會通過交換機(jī)流量鏡像技術(shù),生成一份流量拷貝到交換機(jī)數(shù)據(jù)采集口,供數(shù)據(jù)采集設(shè)備進(jìn)行采集接收。
2.2 鏈路層
鏈路層主要負(fù)責(zé)流量數(shù)據(jù)拷貝,云服務(wù)器通常包含多個網(wǎng)卡接口,每個網(wǎng)卡接口能夠配置一個軟件抓包服務(wù)來采集從交換機(jī)數(shù)據(jù)采集口傳輸過來的數(shù)據(jù)流量。數(shù)據(jù)包到網(wǎng)卡后,通過網(wǎng)卡驅(qū)動觸發(fā)硬件中斷,將數(shù)據(jù)拷貝到內(nèi)核緩沖區(qū),再通過Socket套接字將數(shù)據(jù)從內(nèi)核緩沖區(qū)發(fā)送至用戶緩沖區(qū),用戶應(yīng)用程序不斷遍歷用戶緩沖區(qū)來獲取流量數(shù)據(jù)[8]。
2.3 數(shù)據(jù)層
數(shù)據(jù)層主要負(fù)責(zé)儲存采集到的流量數(shù)據(jù),主要用到的數(shù)據(jù)庫包括MySQL數(shù)據(jù)庫和ElasticSearch數(shù)據(jù)庫。MySQL數(shù)據(jù)庫主要用來保存系統(tǒng)配置信息,ElasticSearch數(shù)據(jù)庫主要用來保存數(shù)據(jù)原始流量信息。
2.4 應(yīng)用層
應(yīng)用層主要負(fù)責(zé)接收流量數(shù)據(jù)并保存至數(shù)據(jù)庫,以及對數(shù)據(jù)進(jìn)行可視化管理。主要包括數(shù)據(jù)解析軟件和數(shù)據(jù)采集軟件,數(shù)據(jù)解析軟件基于Spring Boot框架和Vue框架,構(gòu)建基于B/S架構(gòu)的應(yīng)用軟件系統(tǒng);數(shù)據(jù)采集軟件基于Qt框架,以服務(wù)程序的形式實現(xiàn)流量數(shù)據(jù)的采集與儲存。
2.5 用戶層
用戶層主要負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的可視化管理,包括數(shù)據(jù)的查詢、下載以及刪除功能。系統(tǒng)界面將以Web服務(wù)的方式呈現(xiàn)。
3 基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)實現(xiàn)
3.1 硬件實現(xiàn)
傳統(tǒng)數(shù)據(jù)采集系統(tǒng)采用集中式架構(gòu),將抓包程序部署在一臺性能強(qiáng)大的獨(dú)立服務(wù)器操作系統(tǒng)當(dāng)中,不能有效地利用硬件資源,且數(shù)據(jù)采集能力受到系統(tǒng)CPU分配機(jī)制的影響,無法滿足通信網(wǎng)絡(luò)中大流量數(shù)據(jù)的實時、穩(wěn)定地采集要求。隨著云技術(shù)與分布式計算[9]的逐漸成熟,測發(fā)控系統(tǒng)[10]也引入了云計算設(shè)備來提高系統(tǒng)計算能力[11],這為本文數(shù)據(jù)采集系統(tǒng)實現(xiàn)提供了硬件支持。針對傳統(tǒng)數(shù)據(jù)采集系統(tǒng)存在的問題,本文提出一種虛擬分布式部署方式,能有效利用硬件設(shè)備的計算資源,提高系統(tǒng)整體的數(shù)據(jù)采集能力。
3.1.1 交換機(jī)端口鏡像
某交換機(jī)存在端口數(shù)N個,若將所有端口數(shù)據(jù)拷貝至某端口進(jìn)行集中式采集,會因數(shù)據(jù)包流量過大導(dǎo)致數(shù)據(jù)采集系統(tǒng)丟棄數(shù)據(jù)。本文提出一種分布式采集方案,假設(shè)某云服務(wù)器物理網(wǎng)卡數(shù)量為M個,將交換機(jī)N個端口劃分成M個子區(qū)域,每個子區(qū)域提供一個數(shù)據(jù)映射端口進(jìn)行數(shù)據(jù)采集。端口劃分可以按數(shù)量劃分,也可以按流量劃分。分布式采集的優(yōu)勢在于,有效降低了抓包程序的運(yùn)行負(fù)荷,提高了整體系統(tǒng)的數(shù)據(jù)采集穩(wěn)定性。
3.1.2 云平臺環(huán)境搭建
如圖3(a)所示,端口劃分之后,傳統(tǒng)抓包程序部署模式已經(jīng)不能滿足業(yè)務(wù)需求,需要根據(jù)交換機(jī)端口子區(qū)域劃分個數(shù)進(jìn)行抓包程序部署。連接交換機(jī)子區(qū)域采集端口與云服務(wù)器物理網(wǎng)口,在云服務(wù)器中搭建M臺虛擬機(jī)系統(tǒng),對物理網(wǎng)卡與虛擬網(wǎng)卡進(jìn)行數(shù)據(jù)映射,將抓包程序分別部署在每一臺虛擬機(jī)。不同的虛擬機(jī)抓包程序分別處理不同的物理網(wǎng)卡數(shù)據(jù),達(dá)到分布式處理效果,如圖3(b)所示。傳統(tǒng)抓包程序部署模式與分布式部署模式對比如圖3所示。
交換機(jī)端口劃分完成數(shù)據(jù)包不同區(qū)域的分發(fā),通過物理網(wǎng)口連接,將數(shù)據(jù)包傳遞到云服務(wù)器,云服務(wù)器的物理網(wǎng)卡與每個虛擬機(jī)的虛擬網(wǎng)卡進(jìn)行綁定,每個抓包程序能在虛擬機(jī)內(nèi)抓取云物理機(jī)的物理網(wǎng)卡數(shù)據(jù),實現(xiàn)完整的基于虛擬分布式技術(shù)的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng),如圖4所示。
3.2 軟件實現(xiàn)
在虛擬分布式部署方式的基礎(chǔ)上,搭建網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng),用來儲存網(wǎng)絡(luò)數(shù)據(jù)采集流量以及對數(shù)據(jù)進(jìn)行可視化管理。
3.2.1 基于Qt的數(shù)據(jù)采集軟件
數(shù)據(jù)采集軟件主要負(fù)責(zé)接收數(shù)據(jù)鏈路層傳遞過來的網(wǎng)絡(luò)流量數(shù)據(jù)包,并實時記錄采集數(shù)據(jù)包數(shù)量回傳給前端界面進(jìn)行顯示。數(shù)據(jù)采集軟件主要包括WebSocket傳輸模塊、LibPcap數(shù)據(jù)采集模塊、主線程模塊。數(shù)據(jù)采集軟件模塊框圖如圖5所示。
WebSocket傳輸模塊主要負(fù)責(zé)向前端界面?zhèn)鬟f數(shù)據(jù)包采集數(shù)量以及采集口信息,比如網(wǎng)卡名等信息;
LibPcap數(shù)據(jù)采集模塊主要負(fù)責(zé)數(shù)據(jù)接收與保存,當(dāng)網(wǎng)絡(luò)流量數(shù)據(jù)包從網(wǎng)卡驅(qū)動發(fā)送至應(yīng)用層后,模塊觸發(fā)響應(yīng)函數(shù),將流量數(shù)據(jù)保存為.pcap文件;
主線程模塊主要負(fù)責(zé)加載數(shù)據(jù)采集軟件的配置項參數(shù),初始化WebSocket線程以及LibPcap線程;
3.2.2 基于SpringBoot的數(shù)據(jù)解析軟件
數(shù)據(jù)解析軟件主要負(fù)責(zé)對硬盤上存儲的.pcap文件進(jìn)行業(yè)務(wù)解析,解析內(nèi)容包括源IP地址、目的IP地址、源端口、目的端口、傳輸協(xié)議等。解析后的信息將保存到ElasticSearch(ES)數(shù)據(jù)庫中,方便前端界面進(jìn)行快速檢索。數(shù)據(jù)解析軟件主要包括JPcap模塊、ES數(shù)據(jù)庫模塊、數(shù)據(jù)包下載模塊。數(shù)據(jù)解析模塊框圖如圖6所示。
1)JPcap模塊主要負(fù)責(zé)解析由數(shù)據(jù)采集軟件產(chǎn)生的.pcap文件,將其解析為用戶可理解的數(shù)據(jù)信息,并將解析結(jié)果保存在ES數(shù)據(jù)庫中。
2)ES數(shù)據(jù)庫模塊主要負(fù)責(zé)解析軟件中涉及ES數(shù)據(jù)庫的相關(guān)操作,比如增刪查改等數(shù)據(jù)操作。
3)數(shù)據(jù)包下載模塊主要負(fù)責(zé)將.pcap文件打包傳遞給前端用戶,方便用戶進(jìn)行故障診斷與排查。
3.2.3 基于Vue的軟件界面
用戶界面基于Vue框架,采用WebStorm編譯器開發(fā),主要包括數(shù)據(jù)包查詢、查詢條件輸入框、數(shù)據(jù)包下載、歷史數(shù)據(jù)包管理功能。用戶界面示意圖如圖7所示。
4 可靠性與實時性分析
4.1 可靠性分析
數(shù)據(jù)采集系統(tǒng)承載了整個網(wǎng)絡(luò)系統(tǒng)的記錄功能,一旦失效所造成的損失十分巨大,有效地對系統(tǒng)可靠性進(jìn)行評估是極為重要的。選取交換機(jī)為信息傳輸起始點(diǎn),抓包程序為信息傳輸終結(jié)點(diǎn),對整體信息傳輸系統(tǒng)進(jìn)行建模。首先分析傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的可靠性,如圖8所示,系統(tǒng)為串聯(lián)系統(tǒng),根據(jù)圖8列出系統(tǒng)可靠性方程:
式中R0、Rs、Rp、Rc分別為傳統(tǒng)數(shù)據(jù)采集系統(tǒng)、交換機(jī)、數(shù)據(jù)傳輸、抓包程序的可靠性參數(shù)。
基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)為串并系統(tǒng),如圖9所示。根據(jù)圖9列出系統(tǒng)可靠性方程:
式中Rn為基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)可靠性,M為云服務(wù)器物理網(wǎng)口數(shù)量,式中設(shè)為4。
由以上可靠性建模與分析可知,與傳統(tǒng)數(shù)據(jù)采集系統(tǒng)相比較,基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)可靠性更高。
4.2 實時性分析
基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)采用分布式處理架構(gòu),數(shù)據(jù)傳輸過程不同于傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),因此有必要分析信息傳輸?shù)膶崟r性。以交換機(jī)端口輸出數(shù)據(jù)量作為信源,抓包設(shè)備捕獲數(shù)據(jù)包作為信宿,傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)與基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)實時性如圖10所示。
由圖10可知,傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)信息傳輸時間T0和基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)傳輸時間Tn分別為:
式中M為云服務(wù)器物理網(wǎng)口數(shù)量。比較兩者公式易得T0>Tn,因此基于虛擬分布式技術(shù)的數(shù)據(jù)采集系統(tǒng)信息傳輸時間比傳統(tǒng)數(shù)據(jù)采集系統(tǒng)更快。
5 結(jié) 論
基于虛擬分布式技術(shù)的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)相對于傳統(tǒng)數(shù)據(jù)采集系統(tǒng),有效利用了硬件資源,提高了數(shù)據(jù)處理效率,增加了系統(tǒng)可靠性。系統(tǒng)部分設(shè)計思路已應(yīng)用于長征火箭統(tǒng)型地面測發(fā)控通信系統(tǒng)設(shè)計當(dāng)中,系統(tǒng)工作正常穩(wěn)定,為系統(tǒng)排故、試驗、保障提供有力支撐,對于其他類型通信網(wǎng)絡(luò)同樣具有借鑒意義。
參考文獻(xiàn):
[1] 馬宗瑞,岳瑋,姚京紅,等.一種面向運(yùn)載火箭測發(fā)控的虛擬化系統(tǒng)優(yōu)化設(shè)計 [J].導(dǎo)彈與航天運(yùn)載技術(shù):中英文,2023(3):111-117.
[2] 魏永國,張海波,歐陽李青,等.運(yùn)載火箭測發(fā)控系統(tǒng)服務(wù)器集群虛擬化的設(shè)計與實現(xiàn) [J].上海航天:中英文,2023,40(S1):115-121.
[3] 王之平,黃晨,王銘瑤,等.CZ-2F運(yùn)載火箭遠(yuǎn)程輔助測試系統(tǒng)的設(shè)計與應(yīng)用 [J].導(dǎo)彈與航天運(yùn)載技術(shù),2022(1):121-125+137.
[4] 王曉林,王銘瑤,白冰,等.一種基于自主發(fā)射控制的運(yùn)載火箭地面測發(fā)控系統(tǒng)設(shè)計 [J].導(dǎo)彈與航天運(yùn)載技術(shù),2022(2):84-90.
[5] 張晨光,呂明,劉巧珍.基于云計算一體化測試發(fā)控系統(tǒng)設(shè)計與分析 [J].導(dǎo)彈與航天運(yùn)載技術(shù),2018(3):114-118.
[6] 廖俊云,范明鈺,王光衛(wèi).一種改進(jìn)的基于WinPcap的快速抓包方法 [J].計算機(jī)應(yīng)用研究,2005(9):235-236+239.
[7] 呂雪峰,彭文波,宋澤宇.網(wǎng)絡(luò)分析揭秘:原理、實踐與WinPcap深入解析 [M].北京:機(jī)械工業(yè)出版社,2012.
[8] 白冰,王丹.基于簡單網(wǎng)絡(luò)管理協(xié)議的運(yùn)載火箭網(wǎng)絡(luò)監(jiān)控系統(tǒng)研究 [J].導(dǎo)彈與航天運(yùn)載技術(shù),2013(3):69-72.
[9] GEORGE C,JEAN D,TIM K,等.分布式系統(tǒng)概念與設(shè)計:第5版 [M]. 金蓓弘,馬應(yīng)龍,譯.北京:機(jī)械工業(yè)出版社,2013.
[10] 余力凡,張磊.運(yùn)載火箭測發(fā)控網(wǎng)絡(luò)設(shè)計 [J].航天控制,2008(4):68-74.
[11] 金海,廖小飛.面向計算系統(tǒng)的虛擬化技術(shù) [J].中國基礎(chǔ)科學(xué),2008,10(6):12-18.
作者簡介:馬宗瑞(1991—),男,漢族,北京人,工程師,碩士,主要研究方向:火箭地面測發(fā)控系統(tǒng)設(shè)計;盧頔(1984—),男,漢族,北京人,高級工程師,博士,主要研究方向:火箭地面測發(fā)控系統(tǒng)設(shè)計;鐘偉(1980—),男,漢族,廣西桂林人,高級工程師,碩士,主要研究方向:通信網(wǎng)絡(luò)智能化管控設(shè)計;曾慶豪(1995—),男,漢族,廣西桂林人,助理工程師,碩士,主要研究方向:通信網(wǎng)絡(luò)智能化管控設(shè)計;曹藝(1991—),男,漢族,廣西桂林人,助理工程師,碩士,主要研究方向:數(shù)據(jù)挖掘與分析。
收稿日期:2023-08-03
Design and Analysis of Network Data Acquisition System Based on
Virtual Distributed Technology
MA Zongrui1, LU Di1, ZHONG Wei2, ZENG Qinghao2, CAO Yi2
(1.Beijing Institute of Aerospace Systems Engineering, Beijing 100076, China;
2.The 34th Research Institute of China Electronics Technology Group Corporation, Guilin 541004, China)
Abstract: Network data acquisition is an important part in the development process of network systems, which can provide reliable data support for system troubleshooting analysis and ensure the safe and stable operation of the system. In order to improve the acquisition efficiency of data acquisition systems for complex networks, this paper designs a network data acquisition system based on virtual distributed technology, and discusses the system implementation, reliability, and real-time analysis. By improving the system architecture, computer hardware resources can be fully utilized, improving the efficiency of data acquisition and providing reliable support for system experimental analysis.
Keywords: distributed computing; virtualization technology; data acquisition