使用測試工具iPerf監(jiān)控?zé)o線網(wǎng)絡(luò)性能
很多公司都在將自己的無線網(wǎng)絡(luò)升級到802.11n,以實現(xiàn)更大的吞吐量、更廣的覆蓋范圍和更高的可靠性,然而保證無線LAN(WLAN)的性能對于確保足夠的網(wǎng)絡(luò)容量和覆蓋率尤為重要。下面,我們將探討如何通過iPerf來測定網(wǎng)絡(luò)性能,這是一個簡單易用測量TCP/UDP的吞吐量、損耗和延遲的工具。
下載鏈接:http://down.51cto.com/data/172890
應(yīng)用前的準(zhǔn)備
iPerf是專門用于簡化TCP性能優(yōu)化的工具,使用它可以很容易地測量吞吐量和帶寬的***值。當(dāng)與UDP一起使用時,iPerf還可以測量數(shù)據(jù)丟失和延遲(抖動)。iPerf可以在任何IP 網(wǎng)絡(luò)上運行,包括本地以太網(wǎng),因特網(wǎng)接入連接和Wi-Fi網(wǎng)絡(luò)。
使用iPerf之前,必須安裝兩個組件:iPerf 服務(wù)器(用于監(jiān)聽到達(dá)的測試請求)和iPerf客戶端(用于發(fā)起測試會話)。iPerf可通過開放源代碼或可執(zhí)行二進(jìn)制方式獲取,它支持許多操作系統(tǒng)平臺,包括Win32、Linux、FreeBSD、MacOS X、OpenBSD和Solaris。你可以在NLANR上下載iPerf的Win32安裝程序,而Java GUI版本(JPerf)則可以從SourceForge下載。
為了測量Wi-Fi性能,你可能需要在所測試的接入點(AP)的以太網(wǎng)主機上游位置上安裝iPerf——這個也就是你的測試服務(wù)器。接著,在一個或更多的Wi-Fi筆記本上安裝iPerf——這些將是你的測試客戶端。這個就是典型的Wi-Fi客戶端與有線服務(wù)器之間的應(yīng)用網(wǎng)絡(luò)。如果你的目的是測量AP性能,那么可以把iPerf服務(wù)器與AP放置在相同LAN上,并通過高速或超高速以太網(wǎng)連接。如果你的目的是清除瓶頸問題,那么可以將iPerf服務(wù)器要與實際的應(yīng)用服務(wù)器放置在相同位置,這樣就會有一個可比較的網(wǎng)絡(luò)通道。
另外,iPerf 服務(wù)器和客戶端可以同時安裝在Wi-Fi筆記本上的。當(dāng)你要在無線客戶端上支持視頻或語音通信,那么這對于測量客戶端到客戶端性能是有幫助的。同樣,要確保iPerf流量能夠穿越你要測試的整個網(wǎng)絡(luò)通道。比如,如果你要在相鄰位置的Wi-Fi客戶端上測量性能的***值,你必須把你的iPerf客戶端和服務(wù)器接入到相同的AP上。如果你想要觀察穿越上流交換機或WAN的路由是如何影響網(wǎng)絡(luò)性能的,那么可以把你的iPerf服務(wù)器接入到一個中央AP上,并且將iPerf客戶端與在不同的地點的AP連接。
使用測試工具iPerf監(jiān)控?zé)o線網(wǎng)絡(luò)性能:運行iPerf
運行iPerf
在默認(rèn)的情況下,iPerf客戶端與指定的監(jiān)聽5001端口的iPerf服務(wù)器建立一個TCP會話。比如,在命令提示符上執(zhí)行命令:iperf –s,打開iPerf服務(wù)器;然后打開另一個窗口來啟動你的iPerf客戶端:
上面命令是你可以用來測量通過某個計算機回環(huán)地址(127.0.0.1)吞吐量。如果執(zhí)行失敗,那么這就表示你沒有正確的安裝iPerf。默認(rèn)的情況下,iPerf運行一個10秒鐘的測試,測量所傳輸?shù)淖止?jié)總數(shù)(如270兆字節(jié))和相應(yīng)的帶寬使用估計(如226兆比特每秒)。測試長度可以通過指定時間參數(shù)(-t seconds)或緩沖參數(shù)(-n buffers)控制。而且,你還可以在指定時間間隔(-i seconds)中看到測試的結(jié)果。
如果要長時間地運行多個的測試,你應(yīng)該更愿意將iPerf服務(wù)器作為后臺程序運行,并將服務(wù)器輸出寫入一個日志文件中。在Win32平臺上,它可以通過把iPerf作為服務(wù)(iPerf --s --D --o logfile.txt)安裝來實現(xiàn)。如果你測試的流量將要通過網(wǎng)絡(luò)防火墻,那么要確保打開端口5001或指定iPerf使用已經(jīng)開放的端口(如,iPerf --c --p 80)。如果你的iPerf服務(wù)器處于NAT防火墻之后,那么你可能需要配置一個端口轉(zhuǎn)發(fā)規(guī)則來進(jìn)行連接(這種情況在服務(wù)器到客戶端流量的雙向測試中也一樣適用)。***,要禁用你的iPerf客戶端和服務(wù)器上的任何個人防火墻。當(dāng)客戶端能夠到達(dá)服務(wù)器時,你就可以開始測量網(wǎng)絡(luò)性能了。
測量TCP吞吐量
為了確定***TCP吞吐量,iPerf嘗試從客戶端盡可能快地向服務(wù)器上發(fā)送數(shù)據(jù)。默認(rèn)時數(shù)據(jù)是以8KB大小緩沖發(fā)送的,這也是通過操作系統(tǒng)的默認(rèn)的TCP窗口大小值。為了模擬特定TCP應(yīng)用,你可以指定你的iPerf客戶端從一個特定的文件(-F 文件名)或交互式輸入(-I)來發(fā)送數(shù)據(jù)。比如:
如果你沒有指定發(fā)送方式,iPerf客戶端只會使用一個單一的線程。而你可以修改為使用多個并行線程(-P數(shù)目)來發(fā)送數(shù)據(jù)。在測試Wi-Fi時,在同一臺筆記本上的多線程可能會略微增加整體的吞吐量。
#p#
但是,有時你將需要使用多臺擁有各自Wi-Fi適配器的筆記本來模擬幾個不同位置用戶體驗的性能。這是因為在同一個筆記本上運行的多線程仍然共享同一個Wi-Fi適配器上的占用時間。
另外一方面,如果你的筆記本上擁有多個激活的適配器,你可以使用IP地址(-B IPAddress)將iPerf客戶端綁定到一個適配器上。這個對于同時連接到Ethernet和Wi-Fi(3G、Wi-Fi)的多連接筆記本來說是相當(dāng)重要的。
iPerf原先是開發(fā)用來輔助TCP參數(shù)優(yōu)化的,但在此我們不想深入研究TCP窗戶尺度和***段長度,因為這不是我們目前討論的重點。然而,在測試高吞吐量AP時,你可能發(fā)現(xiàn)有必要對TCP參數(shù)進(jìn)行調(diào)優(yōu),以便在每個iPerf 客戶端上獲得更大吞吐量——詳細(xì)請閱讀DrTCP。
使用測試工具iPerf監(jiān)控?zé)o線網(wǎng)絡(luò)性能:測量UDP丟包和延遲
iPerf同樣也可以用于測量UDP數(shù)據(jù)包吞吐量、丟包和延遲指標(biāo)。與TCP測試不同的是,UDP測試不采取盡可能快地發(fā)送流量的方式。與之相對的是,iPerf嘗試發(fā)送1 Mbps的流量,這個流量是打包在1470字節(jié)的UDP數(shù)據(jù)包中(成為以太網(wǎng)的一幀)。我們可以通過指定一個目標(biāo)帶寬參數(shù)來增加數(shù)據(jù)量,單位可以是Kbps 或Mbps(-b #K 或 --b #M)。舉例如下:
然而,上面的例子只說明了iPerf客戶端能夠以多快的速度傳輸數(shù)據(jù)。為了得到更多關(guān)于UDP發(fā)送的數(shù)據(jù),我們必須查看服務(wù)器上的結(jié)果:
這樣,我們就可以看到吞吐量(間隔1秒測量的),以及丟包數(shù)(丟失的數(shù)據(jù)屯接收到的數(shù)據(jù)對比)和延遲(如jitter——在連續(xù)傳輸中的平滑平均值差)。延遲和丟失可以通過應(yīng)用的改變而被兼容。比如,視頻流媒體通過緩沖輸入而能夠容忍更多的延遲,而語音通訊則隨著延遲增長性能下降明顯。
UDP測試可以通過改變報文緩沖長度進(jìn)行優(yōu)化,長度單位為Kbytes 或 Mbytes(-l #K or #M)。與以太網(wǎng)幀的1500比特的MTU(***轉(zhuǎn)換單位)不同的是,802.11數(shù)據(jù)幀可以達(dá)到2304比特(在加密之前)。
但是,如果你正在測試的路徑中包括Ethernet和802.11,那么要控制你的測試數(shù)據(jù)包長度,使它在一個Ethernet幀以內(nèi),以避免分片。
另一個有趣的iPerf UDP測試選項是服務(wù)類型(Type of Service, ToS),它的大小范圍從0x10 (最小延遲) 到0x2 (最少費用)。在使用802.11e來控制服務(wù)質(zhì)量的WLAN中,ToS是映射在Wi-Fi多媒體(WMM)存取范疇的。
對比兩種方式
在802.11a/b/g網(wǎng)絡(luò)中,無線電的傳輸性能變化在在兩個方向上都很相似。比如,當(dāng)距離導(dǎo)致數(shù)據(jù)傳輸率下降或干擾造成重要數(shù)據(jù)包丟失時,發(fā)送和接收的應(yīng)用吞吐量都受到影響。
在802.11n網(wǎng)絡(luò)中,MIMO天線和多維空間流使問題又有所不同。從筆記本發(fā)送到AP上的數(shù)據(jù)幀可能(有意地)使用一個完全與從AP發(fā)送到筆記本上幀時不同的空間路徑。這樣的結(jié)果是,現(xiàn)在對兩個方向的測試都很重要的。幸運的是,iPerf本身就已經(jīng)擁有這個功能,這是由兩個選項所控制的:
--d選項是用于告訴iPerf服務(wù)器馬上連接回iPerf客戶端的由--L 所指定端口,以支持同時測試兩個方向的傳輸。
--r選項雖然有些類似,但是它是告訴iPerf服務(wù)器等到客戶端測試完成后再在相反的方向中重復(fù)之前的測試。
***,如果你需要支持多點傳送應(yīng)用,那么可以使用-B選項指定多點傳送組IP地址來啟動多個iPerf服務(wù)器。然后再打開你的iPerf客戶端,連接之前啟動的多點傳送組iPerf服務(wù)器。
使用測試工具iPerf監(jiān)控?zé)o線網(wǎng)絡(luò)性能:圖形化測試結(jié)果
如本文介紹的,iPerf程序可以在命令行下運行,它或者也在一個名為JPerf的Java實現(xiàn)前端工具上運行。JPerf不僅能簡化復(fù)雜命令行參數(shù)的構(gòu)造,而且它還保存測試結(jié)果——同時實時圖形化顯示結(jié)果。
事實上,iPerf測試工具被嵌入到一些其它的網(wǎng)絡(luò)流量分析工具中——包括底層LAN分析工具,如AirMagnet。比如,在下面的屏幕截圖中顯示了一個Wi-Fi筆記本上運行的AirMagnet作為iPerf客戶端與安裝在有線網(wǎng)絡(luò)上的常規(guī)iPerf服務(wù)器進(jìn)行交互的情況。
總結(jié)
正如我們所看到的,iPerf簡化了對基于TCP數(shù)據(jù)流應(yīng)用和UDP數(shù)據(jù)包應(yīng)用的端對端性能測定。然而,iPerf仍然無法模擬所有類型的應(yīng)用——比如,對于交互式上網(wǎng)的模擬就不是很好。同時,用于iPerf Wi-Fi測試的WLAN適配器也會影響你的測試——為了獲得更好的測試結(jié)果,我們可以配置一個類似于“實際”用戶的有代表性的適配器。
盡管如此,iPerf仍然是一個非常方便的工具,它可以幫助你生成和檢測WLAN應(yīng)用流量。同時,因為iPerf可以方便以開源軟件方式獲取,因此使用它來在其它位置重復(fù)創(chuàng)建測試環(huán)境是一個很好的方法——如分公司、供應(yīng)商技術(shù)支持等等。想要了解更多關(guān)于iPerf的信息,可以閱讀NLANR上的更老的文件或者瀏覽SourceForge上新的項目頁面。