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源代码分析解读:


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

后续会继续更新。详细请见博客
转载标明出处:https://blog.csdn.net/qq_31667705/article/details/79884034




猜你喜欢

转载自blog.csdn.net/qq_31667705/article/details/79884034