Mininet網絡仿真工具

一、Mininet簡單介紹:

Mininet網絡仿真工具基於 linux Container架構。最重要的特點:幾乎可以遷移到真實的硬件環境,支持 OpenFlow、OpenvSwitch 等軟定義網路部件。 Mininet可以模擬真實網絡,主要是用到了Linux 內核的namespace機制,通俗來說,namespace機制就是可以給模擬網絡中的每一個虛擬設備分一個空間,各個虛擬設備之間彼此沒有關係(看不到對方,但是可以連接起來)。namespace機制按照datapath的運行權限不通,分爲kernel datapath和userspace datapath兩種,這裏不再詳細說明。

二、Mininet源代碼分析解讀:

Mininet網絡仿真工具主要基於Python語言,代碼主要有兩大部分:運行文件和Python庫。代碼結構圖如下:


1)bin/:包含模擬運行文件mn

定義了MininetRunner類:


這個類中的主要函數有:

-->

作用:解析命令行傳遞的參數

--> 

作用:校驗運行環境配置

--> 

 作用:執行給定的參數

2)custom/:用戶配置文件,拓撲圖等

3)doc/:doxygen.cfg文件執行doyxgen生成文檔時的配置文件(Doxygen 是一個程序的文件產生工具,可將程序中的特定批註轉換成爲說明文件。)

4)debian/:生成deb安裝包時的配置文件

5)mininet/:核心代碼所在

-->cli模塊:用於節點間的交互

-->

link.TCIntf類:限制帶寬、延遲、分組丟失率、最大排隊長度等

--> 

link.Link類:表示鏈路,連接兩個虛擬以太網接口

-->net模塊:創建拓撲圖,配置namespace,ip,連接控制器

-->log模塊:記錄日誌

-->node模塊:表示網絡中的各個基本元素,也是最重要的

包含node.Host主機基類,node.Controller控制器基類,node.Switch交換機基類




-->topo模塊:維護網絡拓撲的相關信息。

classTopo( object ): 拓撲基類

  class SingleSwitchTopo( Topo ): 繼承於Topo類,表示星型拓撲,若掛載在同一個交換機上,主機序號按照從小到大的順序掛載到交換機的端口上

class SingleSwitchReversedTopo( Topo ): 繼承於Topo類,表示星型拓撲,若掛載在同一個交換機上,主機序號按照從大到小的順序掛載到交換機的端口上

topolib.classTreeTopo( Topo ):表示樹形拓撲

6)util/:輔助文件,腳本等

7)其他文件

--> INSTALL安裝說明

-->CONTRIBUTORS作者信息

-->README.md說明文件

-->mnexec.c執行快速命令,c語言編寫。

-->setup.py安裝Python包時的配置文件,在Makefile中調用


Mininet源代碼下載地址:https://github.com/mininet/mininet

(小白一枚,上文中亦有本人個人觀點,若有片面或錯誤,多謝指出=^_^=,--<-<-<@ )

 (@^o^@)

 (⌒:⌒) 
 (~):(~)

 (~)v(~) 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章