揚(yáng)州萬方電子技術(shù)有限責(zé)任公司 陶 婭 孫晏清 夏小麗
網(wǎng)絡(luò)通信由于其靈活、帶寬大、適應(yīng)性強(qiáng)的特點(diǎn)已在各行各業(yè)中廣泛使用,相較于串口、并口、CAN口通信,UDP點(diǎn)對點(diǎn)通信具有自帶協(xié)議、帶寬大、使用簡單的特點(diǎn)。但實(shí)際場景中是多個(gè)設(shè)備、多個(gè)端口、多種協(xié)議、多個(gè)子網(wǎng)之間的復(fù)雜環(huán)境,其無連接、不可靠特性會因?yàn)閻毫拥木W(wǎng)絡(luò)環(huán)境而大幅降低通信質(zhì)量。為此在實(shí)際使用UDP點(diǎn)對點(diǎn)通信時(shí)應(yīng)在實(shí)際的使用環(huán)境中進(jìn)行大量的測試分析,從而修改、優(yōu)化整個(gè)網(wǎng)絡(luò)拓?fù)?,最終達(dá)到在最劣情況下滿足應(yīng)用業(yè)務(wù)需求的目標(biāo)。
點(diǎn)對點(diǎn)是終端和終端之間的直接通信,而終端的形式和系統(tǒng)種類都比較豐富,為此一種跨平臺、兼容好的測試軟件是測試業(yè)務(wù)開展的重要手段。Wireshark是一款開源、跨平臺、穩(wěn)定的專業(yè)網(wǎng)絡(luò)數(shù)據(jù)抓包和分析工具,經(jīng)過實(shí)際應(yīng)用的檢驗(yàn),能抓取和分析多種網(wǎng)絡(luò)數(shù)據(jù),可滿足點(diǎn)對點(diǎn)間UDP傳輸通信性能的分析需求。
目前終端可能出現(xiàn)的形式有桌面式、服務(wù)器式、嵌入式,可能的連接方式為有線/無線直連、有線/無線中轉(zhuǎn)連接,可能運(yùn)行的操作系統(tǒng)可能為Windows、MAC OS、Linux和UNIX、安卓等,因此面對終端形式、連接方式、運(yùn)行系統(tǒng)多樣化的現(xiàn)狀,選取一種體驗(yàn)統(tǒng)一、性能優(yōu)良、功能豐富的網(wǎng)絡(luò)數(shù)據(jù)抓取分析軟件就顯得尤為重要。
收集、分析了當(dāng)前市面上可查、通用的網(wǎng)絡(luò)數(shù)據(jù)抓取分析軟件,從跨平臺、費(fèi)用、分析能力三個(gè)角度進(jìn)行分析,為數(shù)據(jù)抓取分析軟件的選型提供支撐。收集到的軟件及其分析如表1所示。
表1 各網(wǎng)絡(luò)分析工具多維度分析
通過表1的維度分析,可知選取Wireshark作為數(shù)據(jù)抓取和分析軟件是。
Wireshark主要用于一般分析任務(wù)、故障任務(wù)、安全分析任務(wù)、應(yīng)用程序分析任務(wù),其功能強(qiáng)大,滿足點(diǎn)對點(diǎn)的UDP性能測試需求。
(1)一般分析任務(wù)可用于:
A.找出一個(gè)網(wǎng)絡(luò)內(nèi)發(fā)送數(shù)據(jù)包最多的終端;
B.查看終端使用的程序;
C.抓取正常的網(wǎng)絡(luò)通信數(shù)據(jù);
D.驗(yàn)證特有的網(wǎng)絡(luò)操作;
E.監(jiān)測嘗試連接無線網(wǎng)絡(luò)的終端;
F.捕獲多個(gè)子網(wǎng)絡(luò)的數(shù)據(jù);
G.實(shí)施無人值守?cái)?shù)據(jù)捕獲。
(2)故障任務(wù)分析可用于:
A.創(chuàng)建自定義的故障分析環(huán)境;
B.確定路徑、客戶端和服務(wù)延遲;
C.檢查應(yīng)用程序錯(cuò)誤相應(yīng);
D.可視化網(wǎng)絡(luò)問題;
E.確定重載緩沖區(qū);
F.找出重復(fù)IP;
G.確定WLAN強(qiáng)度;
H.確定程序的網(wǎng)絡(luò)片段。
(3)安全分析的任務(wù)可用于:
A.創(chuàng)建網(wǎng)絡(luò)取證的自定義分析環(huán)境;
B.檢查使用非標(biāo)準(zhǔn)端口的應(yīng)用程序;
C.確定映射遠(yuǎn)程目標(biāo)地址;
D.檢查惡意畸形幀;
E.找出攻擊簽名的關(guān)鍵因素。
(4)應(yīng)用程序分析任務(wù)可用于:
A.分析應(yīng)用程序的協(xié)議工作狀態(tài);
B.統(tǒng)計(jì)應(yīng)用程序的帶寬使用情況。
典型的網(wǎng)絡(luò)場景為直連、有交換無路由、有交換有路由,直連多用于對象始終確定的情況;有交換無路由多用于同一子網(wǎng)內(nèi)的通信;有交換有路由多用于跨子網(wǎng)間的通信。典型的直連場景如圖1所示,有交換無路由的場景如圖2所示,有交換有路由的場景如圖3所示。
圖1 典型直連網(wǎng)絡(luò)場景
圖2 典型有交換無路由網(wǎng)絡(luò)場景
圖3 典型有交換有路由網(wǎng)絡(luò)場景
圖4 基于wireshark的測試流程
從圖1、2、3可以看出可以在能安裝wireshark的終端上安裝,針對不能安裝的終端可以采取外接交換機(jī)的方式進(jìn)行監(jiān)測。在有外部交換機(jī)的基礎(chǔ)上可以采用ARP欺騙或者端口映射的方式進(jìn)行監(jiān)測,ARP欺騙利用MAC地址欺騙,能夠使交換機(jī)認(rèn)為存在兩個(gè)符合目標(biāo)的終端,從而達(dá)到復(fù)制數(shù)據(jù)流的目的;端口映射需要交換機(jī)的支持,通過對交換機(jī)的配置能夠使交換機(jī)將待監(jiān)測的數(shù)據(jù)流進(jìn)行相同復(fù)制后傳給指定的能夠安裝wireshark的終端,從而達(dá)到進(jìn)行監(jiān)測的目的。
綜上,使用wireshark進(jìn)行數(shù)據(jù)捕捉及分析時(shí),應(yīng)首先分析整個(gè)系統(tǒng)的網(wǎng)絡(luò)拓?fù)浼敖K端系統(tǒng),在能夠安裝wireshark的終端安裝軟件進(jìn)行捕捉及分析,若該終端不能安裝軟件,則利用交換機(jī)進(jìn)行終端數(shù)據(jù)流的鏡像捕獲,從而達(dá)到分析的目的?;趙ireshark的測試流程如圖4所示。
通信性能測試首要是通過網(wǎng)卡過濾確定需要捕獲的數(shù)據(jù)流,以便于分析,否則多個(gè)端口、多種協(xié)議會影響實(shí)際的判斷,然后根據(jù)需求進(jìn)行顯示過濾,凸顯需要分析的數(shù)據(jù)幀,然后根據(jù)需求進(jìn)行統(tǒng)計(jì)分析,最終完成通信性能分析。
(1)網(wǎng)卡過濾操作
網(wǎng)卡過濾也叫捕獲過濾,是網(wǎng)絡(luò)數(shù)據(jù)經(jīng)過的第一層過濾器。捕獲過濾首先應(yīng)確定捕獲的網(wǎng)卡,然后根據(jù)伯克利數(shù)據(jù)包過濾器語法進(jìn)行過濾語句編寫。假設(shè)需捕獲192.168.1.15中端口為50001端口的UDP數(shù)據(jù),則捕獲語句為:host 192.168.1. 15 and udp port 5001。
(2)幀間時(shí)延顯示過濾操作
Udp數(shù)據(jù)的幀間時(shí)延是通信性能考核的重要指標(biāo),對其進(jìn)行分析需要不僅需要進(jìn)行顯示過濾的編寫,還需要進(jìn)行幀顯示時(shí)間格式的設(shè)置,通過將時(shí)間顯示格式設(shè)置為自上一個(gè)顯示分組經(jīng)過的秒數(shù),則會出現(xiàn)幀間間隔,如果此時(shí)需要測試時(shí)延指標(biāo),則可以使用伯克利數(shù)據(jù)包過濾器語法進(jìn)行顯示過濾語句的編寫,如周期幀時(shí)延不得超過40ms,則過濾語句為frame.time_delta>0.040。
綜上,對UDP點(diǎn)對點(diǎn)通信的測試主要依賴捕獲過濾及顯示過濾,通過編寫過濾語句進(jìn)行所需數(shù)據(jù)流的篩選,進(jìn)而完成通信性能測試。
UDP點(diǎn)對點(diǎn)通信性能因?yàn)閺?fù)雜的終端形式、連接方式、操作系統(tǒng)及復(fù)雜的網(wǎng)絡(luò)環(huán)境而波動,為評估和優(yōu)化通信質(zhì)量,介紹了wireshark的功能和優(yōu)勢,通過分析典型UDP通信場景及通用測試方法為實(shí)際測試提供參考,分析了wireshark進(jìn)行測試的基本步驟即捕獲過濾和顯示過濾再配合其他功能完成性能測試。為UDP點(diǎn)對點(diǎn)的測試提供支撐,為其他網(wǎng)絡(luò)數(shù)據(jù)的捕獲及分析提供參考。