2020軟體定義網路實驗三

2022-07-31 18:12:10 字數 2468 閱讀 9257

實驗 3:mininet 實驗——測量路徑的損耗率

一、實驗目的

在實驗 2 的基礎上進一步熟悉 mininet 自定義拓撲指令碼,以及與損耗率相關的設定;初步了解 mininet 安裝時自帶的 pox 控制器指令碼編寫,測試路徑損耗率。

二、實驗任務

h0 向 h1 傳送資料報,由於在 mininet 指令碼中設定了連線損耗率,在傳輸過程中會丟失一些包,本次實驗的目的是展示如何通過控制器計算路徑損耗速率(h0-s0-s1-h1)。這裡假設控制器預先知道網路拓撲。控制器將向 s0 和 s1 傳送flow_stats_request,當控制器接收到來自 s0 的 response 時,將特定流的資料報數儲存在 input_pkts 中,當控制器接收到來自 s1 的 response 時,將接收到特定流的資料報數儲存在 output_pkts 中,差值就是丟失的資料報數量。

基於上述拓撲,編寫 mininet 指令碼,設定特定的交換機間的路徑損耗速率,然後

編寫 pox 控制器指令碼,實現對路徑的損耗率的測量。

三、實驗步驟

1. 實驗環境

安裝了 ubuntu 18.04.5 desktop amd64 的虛擬機器

2. 實驗過程

在 pox 安裝目錄下(mininet 完整安裝包含了 pox)執行以下命令執行 pox 指令碼

(2)編輯 mininet 指令碼 mymininet3.py

參照拓撲圖,新建並編輯 mininet 指令碼 mymininet3.py,控制器因為安裝在本機,

switch.cmd( 'ovs-vsctl set-controller dp0 tcp:127.0.0.1:6633' )

switch1.cmd( 'ovs-vsctl set-controller dp1 tcp:127.0.0.1:6633' )

設定 s0 和 s1 之間鏈路的丟包率為 0

再執行命令執行 mininet 指令碼 mymininet3.py

ping 預設是每 1 秒鐘測一次,ping 的結果會顯示乙個丟包率,這裡的丟包率是根

據 ping 不通的次數佔總次數的百分比計算得到的。上圖中由於一共 ping 了 20

次,每次都能通,所以丟包率是 0。

觀察 pox 側的實時狀態更新

平均丟包率為 0,結果符合 mininet 指令碼中設定的損耗率,也有可能出現負值,

可以認為沒有丟包。

如果修改**中 s0 和 s1 之間鏈路的丟包率為 10。

info( "*** creating links\n" )

linkopts0=dict(bw=100, delay='1ms', loss=0)

linkopts1=dict(bw=100, delay='1ms', loss=10)

link0=tclink( h0, switch, **linkopts0)

link1 = tclink( switch, switch1, **linkopts1)

link2 = tclink( h1, switch1, **linkopts0)

重新執行 mininet 指令碼 mymininet3.py,20 秒時間的 ping 過程中有 icmp_seq 為

2/4/14/16/19/20 共 6 次 ping 不通,所以丟包率計算為 30%。

2020軟體定義網路實驗七

實驗 7 opendaylight 實驗 python 中的 rest api 呼叫 一 實驗目的 對 python 呼叫 opendaylight 的 rest api 方法有初步了解。二 實驗任務本實驗需要用另一種方法完成上乙個實驗相同的功能,即通過 python 程式呼叫opendayligh...

2020軟體定義網路實驗一

實驗 1 mininet 原始碼安裝和視覺化拓撲工具 一 實驗目的 掌握 mininet 的原始碼安裝方法和 miniedit 視覺化拓撲生成工具。二 實驗任務 使用原始碼安裝 mininet 的 2.3.0d6 版本,並使用視覺化拓撲工具生成乙個最簡拓撲 1 臺交換機連線 2 臺主機 三 實驗步驟...

2020軟體構造實驗三

3實驗過程 請仔細對照實驗手冊,針對每一項任務,在下面各節中記錄你的實驗過程 闡述你的設計思路和問題求解思路,可輔之以示意圖或關鍵源 加以說明 但千萬不要把你的源 全部貼上過來!3.1待開發的三個應用場景 列出你所選定的三個應用。分析三個應用場景的異同,理解需求 它們在哪些方面有共性 哪些方面有差異...