1. 程式人生 > >我常用的網路測試工具

我常用的網路測試工具

最近學習了一些網路測試方面的東西,先做個小結,也算給自己理清一下思路。

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.
Only applications compiled for the vmkernel can be loaded.Additionally, only binaries explicitly listed in the allowedbinaries list, /etc/vmware/UserWorldBinaries.txt will beallowed This is only useful on Classic. Because we are need to run the Appin kernel level from COS. All app completed for vmkernel need to beran in this way.
Obviously, on Visor, no need to use vmkload_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

以上簡單極少了幾個網路測試工具,主要是讓大家有這麼個東西,具體的使用,還是得去偉大的internet自己獵取。