Mininet网络仿真工具

来源:互联网 发布:停车位软件哪个好 编辑:程序博客网 时间:2024/05/22 09:04

一、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(~)