天天看點

Mininet學習筆記(源代碼)

安裝

Mininet有多種安裝方法:

1.下載下傳含有Mininet的系統鏡像,然後在虛拟軟體中打開一個虛拟機導入這個鏡像

2.下載下傳源碼的方法,從github上下載下傳安裝

3.檔案包的安裝方法

由于方法2可以在安裝過程中自定義地選擇安裝部件及其版本等,比較靈活,并且筆者隻用過方法2,是以介紹方法2.

step1:打開Ubuntu終端,首先安裝git指令,輸入如下代碼:(如果已經下載下傳過的話,不用再下載下傳了)

apt-get install git  
           

step2:等待即可完成git指令的安裝,然後利用git下載下傳mininet源代碼,輸入代碼:

git clone http://github.com/mininet/mininet.git  
           

整體邏輯功能

整體上來看,Mininet 作為一個基于 Python 的網絡模拟工具,可以分為兩大部分:Python庫和運作檔案。

前者提供對網絡中元素進行抽象和實作,例如定義主機類來表示網絡中的一台主機。後者則基于這些庫來完成各種自定義的模拟過程。 一個典型的場景如下圖所示。

Mininet學習筆記(源代碼)

Mininet源代碼分析解讀:

Mininet學習筆記(源代碼)

1)bin/:包含模拟運作檔案mn

定義了MininetRunner類:

Mininet學習筆記(源代碼)

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中調用

後續會繼續更新。詳細請見部落格 轉載标明出處:https://blog.csdn.net/qq_31667705/article/details/79884034

繼續閱讀