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