基於流表項刪除的測試與分析

2021-07-06 05:43:25 字數 3283 閱讀 3889

一 測試目的

本測試的目的是為了得知在執行openflow協議的sdn網路中,交換機上的流表項的生存時間問題,即流表項被生成後在流表中持續時間的問題。我們知道流表項中的timeout欄位為流表項維護了最大空閒時間(idle_timeout),也就是一條流表項不再匹配資料報時能夠持續的最大時間。那麼這個idle_timeout的預設值是多少,當這個時間計數器結束後流表項是否被刪除,以及能否手動配置這個時間欄位是本測試的主要目的。

二 分析方法

可以通過軟體實現本次測試。floodlight是乙個sdn控制器,可以獲取資料層的鏈路以及流資訊。mininet是乙個軟體虛擬化平台,可以用來模擬sdn中的網路拓撲,可以靈活地構件自定義的網路拓撲,並連線到控制器,形成乙個sdn網路環境。openvswitch(ovs)是乙個虛擬交換機,支援openflow協議,在其上可以靈活地進行配置,比如增加或者刪除一條流表項等,並可以通過控制器來遠端獲取交換機上的資料資訊。因此本次實驗就是基於以上的虛擬化平台進行的。

三 過程與結果

3.1 floodlight+mininet實驗

3.1.1實驗目的:本實驗的目的是為了得到idle_timeout的預設值,並且通過實驗觀察該計數器結束後,流表項是否被刪除。

3.1.2實驗過程

在mininet環境下建立乙個depth=3,fanout=2的樹形拓撲結構,如下圖所示

圖3-1-1 拓撲環境建立圖

首先,在網路初始時,通過控制器的rest api檢視當前所有交換機中的流資訊,入下所示:

圖3-1-2 

可以看到,網路中的7臺交換機都是沒有流資料的。

接下來,對主機h1和h5進行ping連線,:

圖3-1-3 主機h1和h2 ping連線圖

此時立即通過控制器的rest api檢視當前所有的交換機中的流資訊:

圖3-1-4當前所有交換機中流資訊顯示

圖3-1-5約5s後所有交換機中流資訊顯示

3.2 floodlight+ovs實驗

3.2.1實驗目的:

在ovs上新建流表項,並設定好這些流表的idle_timeout時間,並在floodlight控制器提供的web埠上觀察流表資訊,驗證idle_timeout時間結束以後這些流表是否結束。

3.2.2實驗過程:

1) 實驗環境搭建:

在640伺服器上安裝ovs和floodlight控制器,並由floodlight實現對ovs的控制。檢視目前ovs上的配置資訊(floodlight所在的伺服器的ip為:10.103.24.66;網橋byod的ip為:10.103.26.148)

圖3-2-1 網橋byod的配置資訊

2)在ovs上新增流表項:

在ovs上可以手動新增流表項,並且自定義流表項的字段資訊。為了實驗驗證,主要對idle_timeout欄位進行配置。

2.1首先新增一條流表項,而不配置其idle_timeout欄位,發現這條流表項會一直存在於流表中而不被刪除。如下所示:

新增一條流表項「priority=1,in_port=12,actions=output:1」

圖3-2-2 新增一條流表項

通過floodlight提供的rest api,獲取流表資訊,如下:

,"actions":}]}}

發現這條流表項的預設idletime被設定為0,當下的持續存在時間為:1077s,並且這條流會一直存在而不被刪除。

2.2新增兩條流表項,配置其idle_timeout分別為10s和20s。過程如下:

新增一條流表項「priority=1,in_port=12,actions=output:1」

新增一條流表項「priority=1,in_port=12, idle_time=20,actions=output:1」

圖3-2-3 新增一條流表項

在新增流表項之前,通過floodlight rest api得到的流表集合資訊如下:

}
說明此時網路中沒有流表項。

在新增完以上兩條流表以後,可以看到floodlight的rest api上的流表集合為:

,"actions":},,"actions":}]}}
在10s過後,流表集合的資訊如下:
,"actions":}]}}
20s過後,資訊如下:
}
這說明,在idle_timeout計數結束之後,這條流表項就會被刪除。
四 分析與結論通過以上的實驗,可以發現。在floodlight和mininet實驗結果中發現預設的idle_timeout欄位的值為5s,並且這個計數器結束後,流表項即刻被刪除。在floodlight和ovs的實驗結果中,可以發現ovs可以手動配置流表項的idle_timeout欄位,並且該欄位維護的時間結束後,流表項即刻被刪除。

Java IO流 效率測試與分析

效率測試 測試檔案mp4檔案,大小為9,223,457 位元組 1 fileinputstream和fileoutputstream 使用read 和write 方法進行讀寫 private static void method1 string srcpath,string destpath thr...

測試分析 基於狀態的測試

前言 這一篇比較特別,內容提供者是我的好朋友jingle 專業的ios測試工程師。什麼叫基於狀態的測試 基於狀態的測試,是一種基於模型的測試,常用於事件驅動的系統中,這些系統往往是實時系統,比如數字技術和硬體電路。實際中的系統,比如下面這些通常會用到狀態機 1 作業處理系統 2 atm機 3 介面處...

基於流的I O 流與緩衝

基於流的操作最終都會呼叫read或write進行操作。即流的內部封裝了這兩個系統呼叫。緩衝分如下三種 全緩衝 相應巨集 io full buf 直到緩衝區被填滿,菜呼叫系統i o函式。磁碟檔案讀寫通常是全緩衝的。行緩衝 相應巨集 io line buf 直到遇到換行符 n 才呼叫系統i o函式。標準...