實驗 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待開發的三個應用場景 列出你所選定的三個應用。分析三個應用場景的異同,理解需求 它們在哪些方面有共性 哪些方面有差異...