揚州萬方電子技術有限責任公司 陶 婭 孫晏清 夏小麗
網絡通信由于其靈活、帶寬大、適應性強的特點已在各行各業中廣泛使用,相較于串口、并口、CAN口通信,UDP點對點通信具有自帶協議、帶寬大、使用簡單的特點。但實際場景中是多個設備、多個端口、多種協議、多個子網之間的復雜環境,其無連接、不可靠特性會因為惡劣的網絡環境而大幅降低通信質量。為此在實際使用UDP點對點通信時應在實際的使用環境中進行大量的測試分析,從而修改、優化整個網絡拓撲,最終達到在最劣情況下滿足應用業務需求的目標。
點對點是終端和終端之間的直接通信,而終端的形式和系統種類都比較豐富,為此一種跨平臺、兼容好的測試軟件是測試業務開展的重要手段。Wireshark是一款開源、跨平臺、穩定的專業網絡數據抓包和分析工具,經過實際應用的檢驗,能抓取和分析多種網絡數據,可滿足點對點間UDP傳輸通信性能的分析需求。
目前終端可能出現的形式有桌面式、服務器式、嵌入式,可能的連接方式為有線/無線直連、有線/無線中轉連接,可能運行的操作系統可能為Windows、MAC OS、Linux和UNIX、安卓等,因此面對終端形式、連接方式、運行系統多樣化的現狀,選取一種體驗統一、性能優良、功能豐富的網絡數據抓取分析軟件就顯得尤為重要。
收集、分析了當前市面上可查、通用的網絡數據抓取分析軟件,從跨平臺、費用、分析能力三個角度進行分析,為數據抓取分析軟件的選型提供支撐。收集到的軟件及其分析如表1所示。

表1 各網絡分析工具多維度分析
通過表1的維度分析,可知選取Wireshark作為數據抓取和分析軟件是。
Wireshark主要用于一般分析任務、故障任務、安全分析任務、應用程序分析任務,其功能強大,滿足點對點的UDP性能測試需求。
(1)一般分析任務可用于:
A.找出一個網絡內發送數據包最多的終端;
B.查看終端使用的程序;
C.抓取正常的網絡通信數據;
D.驗證特有的網絡操作;
E.監測嘗試連接無線網絡的終端;
F.捕獲多個子網絡的數據;
G.實施無人值守數據捕獲。
(2)故障任務分析可用于:
A.創建自定義的故障分析環境;
B.確定路徑、客戶端和服務延遲;
C.檢查應用程序錯誤相應;
D.可視化網絡問題;
E.確定重載緩沖區;
F.找出重復IP;
G.確定WLAN強度;
H.確定程序的網絡片段。
(3)安全分析的任務可用于:
A.創建網絡取證的自定義分析環境;
B.檢查使用非標準端口的應用程序;
C.確定映射遠程目標地址;
D.檢查惡意畸形幀;
E.找出攻擊簽名的關鍵因素。
(4)應用程序分析任務可用于:
A.分析應用程序的協議工作狀態;
B.統計應用程序的帶寬使用情況。
典型的網絡場景為直連、有交換無路由、有交換有路由,直連多用于對象始終確定的情況;有交換無路由多用于同一子網內的通信;有交換有路由多用于跨子網間的通信。典型的直連場景如圖1所示,有交換無路由的場景如圖2所示,有交換有路由的場景如圖3所示。

圖1 典型直連網絡場景

圖2 典型有交換無路由網絡場景

圖3 典型有交換有路由網絡場景

圖4 基于wireshark的測試流程
從圖1、2、3可以看出可以在能安裝wireshark的終端上安裝,針對不能安裝的終端可以采取外接交換機的方式進行監測。在有外部交換機的基礎上可以采用ARP欺騙或者端口映射的方式進行監測,ARP欺騙利用MAC地址欺騙,能夠使交換機認為存在兩個符合目標的終端,從而達到復制數據流的目的;端口映射需要交換機的支持,通過對交換機的配置能夠使交換機將待監測的數據流進行相同復制后傳給指定的能夠安裝wireshark的終端,從而達到進行監測的目的。
綜上,使用wireshark進行數據捕捉及分析時,應首先分析整個系統的網絡拓撲及終端系統,在能夠安裝wireshark的終端安裝軟件進行捕捉及分析,若該終端不能安裝軟件,則利用交換機進行終端數據流的鏡像捕獲,從而達到分析的目的?;趙ireshark的測試流程如圖4所示。
通信性能測試首要是通過網卡過濾確定需要捕獲的數據流,以便于分析,否則多個端口、多種協議會影響實際的判斷,然后根據需求進行顯示過濾,凸顯需要分析的數據幀,然后根據需求進行統計分析,最終完成通信性能分析。
(1)網卡過濾操作
網卡過濾也叫捕獲過濾,是網絡數據經過的第一層過濾器。捕獲過濾首先應確定捕獲的網卡,然后根據伯克利數據包過濾器語法進行過濾語句編寫。假設需捕獲192.168.1.15中端口為50001端口的UDP數據,則捕獲語句為:host 192.168.1. 15 and udp port 5001。
(2)幀間時延顯示過濾操作
Udp數據的幀間時延是通信性能考核的重要指標,對其進行分析需要不僅需要進行顯示過濾的編寫,還需要進行幀顯示時間格式的設置,通過將時間顯示格式設置為自上一個顯示分組經過的秒數,則會出現幀間間隔,如果此時需要測試時延指標,則可以使用伯克利數據包過濾器語法進行顯示過濾語句的編寫,如周期幀時延不得超過40ms,則過濾語句為frame.time_delta>0.040。
綜上,對UDP點對點通信的測試主要依賴捕獲過濾及顯示過濾,通過編寫過濾語句進行所需數據流的篩選,進而完成通信性能測試。
UDP點對點通信性能因為復雜的終端形式、連接方式、操作系統及復雜的網絡環境而波動,為評估和優化通信質量,介紹了wireshark的功能和優勢,通過分析典型UDP通信場景及通用測試方法為實際測試提供參考,分析了wireshark進行測試的基本步驟即捕獲過濾和顯示過濾再配合其他功能完成性能測試。為UDP點對點的測試提供支撐,為其他網絡數據的捕獲及分析提供參考。