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