1 實驗目的
- 掌握Iperf在Linux環境下的安裝和常用命令行參數的含義
- 熟悉Iperf應用實例
- 掌握SDN網絡中使用Iperf測試網絡帶寬等
2 實驗原理
網絡性能測試主要是監測網絡帶寬的使用率,將網絡帶寬利用最大化是保證網絡性能的基礎,但是由於網絡設計不合理、網絡存在安全漏洞等原因,都會導致網絡帶寬利用率不高。要找到網絡帶寬利用率不高的原因,就需要對網絡傳輸進行監控,此時就需要用到一些網絡性能測試工具,而Iperf就是這樣一款網絡帶寬測試工具。
3 實驗任務
本實驗在SDN網絡環境中,使用Iperf測試數據層面兩臺相互通信的虛擬機之間的TCP和UDP帶寬質量,提供網絡延遲抖動、數據包丟失率等統計信息。
本實驗基於兩臺虛擬機VM1、VM2(分別安裝了OpenDaylight Helium版本和Mininet)進行模擬。在兩臺虛擬機建立通信以後,測試TCP吞吐量、UDP丟包和延遲。最後將視線轉移到SDN上來,在Mininet中建立簡單拓撲,使用Iperf測試TCP吞吐量。實驗環境拓撲如下:
4 實驗步驟
4.1單線程測試:
1創建支持openflow1.3協議的mininet虛擬機和OpenDaylight Lithium版本虛擬機
2.使用ifconfig查看兩個虛擬機的ip
可以ping通:
3 將虛擬機mininet作爲服務器端,虛擬機odl作爲客戶端,進行帶寬測試,測試結果如下:
可見iperf的默認時間爲10秒,測得帶寬爲4.35Gb/s,輸入Iperf --help可查詢相關參數的功能,比如:其中t表示運行時間,i表示輸出頻率,n表示傳輸的大小
比如將輸出頻率設定爲5秒運行時間設定爲30秒:
或者傳輸10G,輸出頻率爲5秒:
4.2.多線程測試
其中P是線程的參數,這裏採用了兩線程,可以發現單線程傳輸10G的時候用時是18.8s,使用雙線程傳輸20G時用時38.1s,傳輸10G時用時19.1s,4線程傳輸10g卻要更久,理論上來說,應當是多線程的效率會更高,但是這關係到具體的網絡環境,所以不增反減
4.3 測試UDP丟包和延遲
爲了測試UDP丟包和延遲,需要在兩臺虛擬機上的iperf都加一個-u參數表示使用UDP port:UDP協議是一個非面向連接的輕量級傳輸協議,並且不提供可靠的數據傳輸服務,因此,對UDP應用的關注點不是傳輸數據有多快,而是它的丟包率和延時指標。通過Iperf的“-u”參數即可測試UDP應用的傳輸性能
由此可見傳輸延遲是0.121,平均丟包率爲0,帶寬是99.6Mb,10s內的傳輸大小爲119M
4.4在mininet中使用iperf功能
我這裏使用了昨天的拓撲(7C-7S-14H):