• 实验内容

实现一个单个交换机的拓扑,添加一个交换机,和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 测试主机间的带宽性能

最新文章

  1. 解决升级Win 10 IP 10122后无法调试UAP应用的方法
  2. angular下拉
  3. NAT模式下用secureCRT连接虚拟机
  4. 通过xcode或xcodebuild进行打包
  5. PHP 数组排序
  6. 【转载】C++编译出现 error C2664: 不能将参数 2 从“const char [5]”转换为“LPCTSTR”解决办法。
  7. android api 中文 (74)—— AdapterView.AdapterContextMenuInfo
  8. 关于bind函数和connect函数的测试结论
  9. Unity 大中华区核心业务
  10. Codeforces 1105C: Ayoub and Lost Array(递推)
  11. PEP 492 -- Coroutines with async and await syntax 翻译
  12. Linux问题杂谈
  13. .npy,.mat,.txt转换
  14. js jq 实现鼠标经过div背景以进度条方式 变宽,鼠标离开变小,同时文字颜色和原来不一样
  15. January 01st, 2018 Week 01st Monday
  16. #LOJ2564 SDOI2018 原题识别 主席树
  17. 【PAT】1060 Are They Equal (25)(25 分)
  18. angular中的表单数据自定义验证
  19. mysql--------四种索引类型
  20. ING【转载】epoll总结系列

热门文章

  1. 《杜增强讲Unity之Tanks坦克大战》2-场景设置
  2. Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】
  3. sklearn 中的 Pipeline 机制
  4. Lwip:原生态的Linux socket应用如何移植到Lwip上
  5. python实现atm机基本操作及购物车
  6. eclipse创建spring boot项目加载不到application.properties配置文件
  7. 用 requests 模块从 Web 下载文件
  8. babel无法编译?
  9. 第二阶段每日站立会议Third Day
  10. 转载 intellij IDEA 使用体验 (本人感觉它的使用是一种趋势)