我常用的網路測試工具
最近學習了一些網路測試方面的東西,先做個小結,也算給自己理清一下思路。
1. 網路相關測什麼?
From internet: 網路效能五項指標:Availability, Response time, networkutilization, network throughput, networking bandwidthcapacity.
轉到我們實際的產品<你暫且認為他是個OS>中,一般網路相關的*功能*測試<FVT>,主要是涉及到針對各種傳輸協議,各種資料包大小,各種網路裝置,不通型別節點之間,以及壓力情況下網路的連通性。當然還有很重的一部分,產品本身方面實現的功能,比如流量控制,分散式switch實現,VLAN,資料資訊過濾,等等。
2. 常見的測試工具。
目前存在的網路測試工具非常多,每種工具都有自己的優勢。就像這個地球上存在的人一樣。當時我們還是要有所取捨,選擇一個適合自己的。參看followinglink,if you have interest to 瞭解一下相關的工具。
http://www.oschina.net/p/netperf/similar_projects?lang=0&sort=time
這裡我們只是簡單介紹一下,我最近學習並可能會用到的幾個。 Netperf, Iperf, LTP,Curlloader...我們盡最大努力只用免費開源的。。。。。
1> Netperf.
Netperf主要針對基於TCP或者UDP的傳輸。可進行批量資料傳輸測試和請求/應答模式傳輸的測試。其測試結果反映兩個系統之間傳送和接收資料的速度和效率。基於C/S模式。測試首先要建立一個控制連線,傳遞有關配置和以後的結果資訊。開發語言C/C++.並且具有基於ESX-VMkernel的編譯版本。
Usage:
Netserver/(vmkload_app -i vmktcp)netserver-uw
netperf/((vmkload_app -i vmktcp /netperf-uw -H host -tTCP_STREAM/UDP_RR -l 60 -***
BTW,帶一下vmktcp的介紹
“vmkload_appis a program launcher that loads vmkernel usermode applicationsonto the VMkernel. The APP is executed with the given APP-PARAMSand managed by the VMkernel. vmkload_app waits for the APP toterminate, and will relay the standard input and output of the APPto and from its standard output, and if a signal(7) is sent tovmkload_app it will be caught and forwarded to the APP.
2> Iperf.
Iperf可測試TCP/UDP頻寬質量。Iperf可以測量最大TCP頻寬,具有多種引數和UDP特性,Iperf可以報告頻寬,延遲抖動和資料包丟失。基於都是需要在2端檢查連線情況下,iperf和netperf 很相似.不同的是,iperf 更深入的通過windows size和QOS 裝置來檢查TCP/UDP的效率情況.這個工具,是給需要優化TCP/IP stacks以及測試這些stacks 效率的管理員們量身定做的.iperf作為一個二進位制程式,可執行在server 或者client 任一模式下.預設使用50001 埠.
Usage:
-s 以server模式啟動,eg:iperf -s
-c host以client模式啟動,host是server端地址,eg:iperf -c 222.35.11.23
3> LTP.
LTP, Linux Test Project.就是一個工具箱, 裡面放了一堆用來測試Linux各個components的工具。這個
LTP測試的過程主要分為兩個階段:
第一階段——初始測試,主要用於測試系統的可靠性,包括LTP測試套件在硬體和作業系統上24小時的成功運轉
第二階段——壓力測試,主要驗證產品在系統高使用率時的健壯性。
我們這裡使用初始測試,來驗證網路套件在硬體和作業系統上成功執行。Testgeneric networking protocols like tcp/udp, icmp, ssh, tftp,ftp…with LTP suite
Usage:
Set RHOST, PASSWD
/home/ltp/LTPtest/runltp-N -p -l output.log
4> Curlloader
curlloader,Web應用測試和模擬負載的工具。可以模擬上萬的客戶端請求,並且每個請求來自不同的IP地址,支援使用者認證,登入等web交換過程。在我們的測試中,它用來測試HTTPservice
Usage:
Creat一個配置檔案test.conf提供相關要模擬的客戶端的資訊。
# curl-loader –f test.conf
5> tcpdump, tcpreply, tcprewrite, tshark.
首先必須要說一個pcap file format.pcap - packet captured....
tcpdump抓包,建立了一個.pcap檔案
tcprewrite對.pcap 檔案進行改寫
tcpreply, 重放.pcap檔案|
tshark,
在我的測試中,
1. 首先利用tcprewrite,將一個普通的.pcap檔案改寫成一個SNA包,通過改變
--enet-dmac 和 --enet-smac
2. 啟動tcpdump 等待抓包
3. 利用tcpreply重放SNA資料包
4. 利用tshark對收到的包進行分析
Usage:
# tcprewrite --enet-dmac=00:0C:29:4A:E6:71--enet-smac=00:0C:29:B3:AA:40 --infile=test.pcap --outfile=send.pcap
安裝tshark
#tcpreplay-i eth1 -M 0.5 send.pcap
#tshark -x -r receive.pcap > receive.txt