• 实验内容

实现一个单个交换机的拓扑,添加一个交换机,和N个主机到网络中。交换机和主机之间的每个链路能够设置带宽、延迟时间、以及丢包率。创建一个包含一个交换机和四个主机的网络,使用iperf测试主机之间的带宽。

拓扑图如下所示:

  • 参考

Mininet设置带宽之简单性能测试

  • 实验环境

虚拟机: Oracle VM VirtualBox Ubuntu16.04LTS

PS:原文中说「本实验需要两台虚拟机,分别安装 OpenDaylight 和 Mininet。」然而实验过程中似乎并不需要

  • 实验步骤

1. 进入mininet/custom目录下,创建脚本

# cd mininet/custom
# vim mymininet1.py

PS:原文中的代码为「vi mymininet1.py」,建议采用「vim mymininet1.py」

脚本内容如下:

#!/usr/bin/python

from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import CPULimitedHost
from mininet.link import TCLink
from mininet.util import dumpNodeConnections
from mininet.log import setLogLevel class SingleSwitchTopo(Topo):
"Single switch connected to n hosts."
def __init__(self, n=2, **opts):
Topo.__init__(self, **opts)
switch = self.addSwitch('s1')
for h in range(n):
#Each host gets 50%/n of system CPU
host = self.addHost('h%s' % (h + 1), cpu=.5/n)
#10 Mbps, 5ms delay, 0% Loss, 1000 packet queue
self.addLink(host, switch, bw=10, delay='5ms', loss=0, max_queue_size=1000, use_htb=True) def perfTest():
"Create network and run simple performance test"
topo = SingleSwitchTopo(n=4)
net = Mininet(topo=topo,host=CPULimitedHost, link=TCLink)
net.start()
print "Dumping host connections"
dumpNodeConnections(net.hosts)
print "Testing network connectivity"
net.pingAll()
print "Testing bandwidth between h1 and h4"
h1, h4 = net.get('h1', 'h4')
net.iperf((h1, h4))
net.stop() if __name__=='__main__':
setLogLevel('info')
perfTest()

2. 执行该脚本

# chmod +x mymininet1.py
# ./mymininet.py

或者

# python mymininet1.py

PS:原文中这里的文件名与其之前创建的不一样,应该是作者笔误,正确的应该如上所示

3. 执行脚本结果如下

  • 总结

1. 实验过程中遇到的问题

  • 还是老问题,脚本看不太懂

2. 收获

  • 本次实验基本上还是 Python 脚本实现自定义拓扑,只不过增加了设置链路的一些参数例如带宽、延迟及丢包率等,同时使用 iperf 测试主机间的带宽性能

Mininet 系列实验(五)的更多相关文章

  1. Mininet 系列实验(六)

    写在前面 这次实验遇到了非常多问题,非常非常多,花了很多时间去解决,还是有一些小问题没有解决,但是基本上能完成实验.建议先看完全文再开始做实验. 实验内容 先看一下本次实验的拓扑图: 在该环境下,假设 ...

  2. Mininet 系列实验(四)

    实验内容 本次实验拓扑图: 在该环境下,h0 向 h1 发送数据包,由于在 mininet 脚本中设置了连接损耗率,在传输过程中会丢失一些包,本次实验的目的是展示如何通过控制器计算路径损耗速率(h0- ...

  3. Mininet 系列实验(三)

    实验内容 基础 Mininet 可视化界面进行自定义拓扑及拓扑设备自定义设置,实现自定义脚本应用. 参考 Mininet可视化应用 实验环境 虚拟机: Oracle VM VirtualBox Ubu ...

  4. Mininet 系列实验(一)

    关于SDN的第一个实验,似乎实验室里的前辈们也都是从这里开始的. 实验内容 使用源码安装Mininet 参考 Mininet使用源码安装 实验环境 虚拟机:Oracle VM VirtualBox U ...

  5. Mininet系列实验(五):Mininet设置带宽之简单性能测试

    1.实验目的 该实验通过Mininet学习python自定义拓扑实现,可在python脚本文件中设计任意想要的拓扑,简单方便,并通过设置交换机和主机之间链路的带宽.延迟及丢包率,测试主机之间的性能.在 ...

  6. Mininet 系列实验(二)

    实验内容 分别通过命令行创建.Python脚本编写以及交互式界面创建来熟悉Mininet的基本功能. 参考 Mininet命令延伸实验扩展 实验环境 虚拟机:Oracle VM VirtualBox ...

  7. Mininet 系列实验(七)

    实验内容 本实验在基于 Mininet 脚本的不同拓扑环境下使用 OpenDaylight 控制交换机行为.任务一:一台交换机两台主机,从1端口进入的数据流转发到 2 端口,从 2 端口进入的数据流转 ...

  8. Mininet系列实验(七):Mininet脚本实现控制交换机行为

    1 实验目的 熟悉Mininet自定义拓扑脚本的编写: 掌握使用“ovs-vsctl”命令直接控制Open vSwitch. 2 实验原理 在SDN环境中,控制器可以通过对交换机下发流表操作来控制交换 ...

  9. Mininet系列实验(六):Mininet动态改变转发规则实验

    一. 实验目的 熟悉Mininet自定义拓扑脚本的编写:熟悉编写POX脚本动态改变转发规则 二.实验原理 在SDN环境中,控制器可以通过对交换机下发流表操作来控制交换机的转发行为.在本实验中,基于Mi ...

随机推荐

  1. Python获取每一位的数字,并返回到列表

    通过计算 def calc(value): result = [] while value: result.append(value % 10) value = value // 10 #逆序,按正常 ...

  2. keyup在移动端失效解决方法

    keyup在移动端失效解决方法: $("#OBJ").on("input propertychange", function(){ }); 采用 input 与 ...

  3. 网页从url到网页展示到页面的流程

    心血来潮整理的 https://mubu.com/doc/oLDc49lx39

  4. Paxos共识算法

    Paxos共识算法 paxos是一族用来解决分布式系统共识的基础算法,共识过程就是在一组节点上达成一个一致的结果.由于节点可能会错误,通讯消息也可能会丢失,所以建立共识是一个比较复杂的过程. paxo ...

  5. linux后退文件夹命令

    后退文件夹: cd -  在重复一遍就是前进了

  6. js最简单的动画

    $(document).ready(function(){ //�ֶ�����ҳ��Ԫ�� $("#reset").click(function(){ $("*" ...

  7. 第十一次PSP

  8. Notes of Scrum Meeting(2014/11/2)

    Notes of Scrum Meeting (2014/11/2) 软件工程项目组Sevens开始项目之后的第一次Scrum Meeting报告 会议时间:2014年11月2日  20:00—20: ...

  9. 团队博客作业Week4 --- 学霸网站--NABC

    1.需求(Need) 伴随着经济的发展,科学技术取得了飞速的发展,互联网在各行各业的发展中取得了广泛的应用.随着这些事物的发展,我们每个人都会接触到相当庞大的数据.如何在这些数据中找到自己需要的,如何 ...

  10. No.11_功能规格说明书

    功能规格说明书 • 基本目标 为用户提供更加便捷和人性化的闹钟提醒服务,以群组为单位规划时间安排与分配,对于个人用户,实现个人的设置闹钟,取消闹钟的操作,这些操作将会上传至数据库,并被同步到所有的客户 ...