mininet学习记录一

sudo apt-get install mininet 

1、mininet CLI

sudo mn --topo=single,2

2、定制拓扑

sudo mn --custom ./topo-2sw-2host.py --topo mytopo --test pingall

创建一个MyTopo类继承Topo,注意要建一个字典

可以看到ping通了

3、Iperf 带宽设置和产生数据流 网络性能测试工具

linear下是两对鸭

4、配置细节

h1 = self.addHost('h1' ip='192.168.1.1') 

在GitHub上看到:

h1.setIP( '10.1/8' )                                                                                                  
h2.setIP( '10.2/8' ) 

但是不管是在python里面加入还是在mininet CLI里面都不work

leftUpHost.setIP('10.0.0.1')

        leftUpHost=self.addHost('h1',ip='10.0.0.1',mac="00:00:00:00:ff:01")
        leftDownHost=self.addHost('h2',ip='10.0.0.2',mac="00:00:00:00:ff:02")
        rightUpHost=self.addHost('h3',ip='10.0.0.3',mac="00:00:00:00:ff:03")
        rightDownHost=self.addHost('h4',ip='10.0.0.4',mac="00:00:00:00:ff:04")

from mininet.topo import Topo
from mininet.link import TCLink

class MyTopo(Topo):
    
    def __init__(self):
        Topo.__init__(self)
        
        leftUpHost=self.addHost('h1',ip='10.0.0.1',mac="00:00:00:00:ff:01")
        leftDownHost=self.addHost('h2',ip='10.0.0.2',mac="00:00:00:00:ff:02")
        rightUpHost=self.addHost('h3',ip='10.0.0.3',mac="00:00:00:00:ff:03")
        rightDownHost=self.addHost('h4',ip='10.0.0.4',mac="00:00:00:00:ff:04")
        leftSwitch=self.addSwitch('s1')
        rightSwitch=self.addSwitch('s2')
        
        self.addLink(leftUpHost,leftSwitch,delay='2ms',bw=10)
        self.addLink(leftDownHost,leftSwitch,delay='10ms',bw=20)
        self.addLink(rightUpHost,rightSwitch,delay='2ms',bw=10)
        self.addLink(rightDownHost,rightSwitch,delay='10ms',bw=20)
        self.addLink(leftSwitch,rightSwitch,delay='2ms',bw=20,loss=10)
	
        
topos={'mytopo': (lambda:MyTopo())}

现在我还不会退出server mode,server是接收者,client是发送者

没有办法同时打开两个终端,即将尝试-d

咳咳,xterm没有装,此处不禁吐槽起自己,以前实验课明明用过xterm

As shown in Figure 2, H1 will generate a TCP flow to H3 with maximum rate from T=0sec (topology built) to T=20sec; H2 will generate a TCP flow to H4 from T=10sec to T=30sec.

T=20到T=30是什么意思、

如guide所说,默认10s

要学会用图形化界面

这个博客很好很详细 https://blog.csdn.net/AsNeverBefore/article/details/78916645 很赞,有一些常见的指令

-c 3指定了发三个包

接下来要看的教程

拓扑编程语句

youtubu视频也不错~

随便生成的一个拓扑结构转换成的python代码

#!/usr/bin/python

from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call

def myNetwork():

    net = Mininet( topo=None,
                   build=False,
                   ipBase='10.0.0.0/8')

    info( '*** Adding controller\n' )
    c0=net.addController(name='c0',
                      controller=Controller,
                      protocol='tcp',
                      port=6633)

    info( '*** Add switches\n')
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch)
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
    s3 = net.addSwitch('s3', cls=OVSKernelSwitch)

    info( '*** Add hosts\n')
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(h2, s1)
    net.addLink(h1, s1)
    net.addLink(s1, s2)
    net.addLink(s2, h3)
    net.addLink(s2, h4)

    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    info( '*** Starting switches\n')
    net.get('s2').start([c0])
    net.get('s1').start([c0])
    net.get('s3').start([])

    info( '*** Post configure switches and hosts\n')

    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()

必须加紧学Linux指令了,whereis xterm

 

综上,用以下方法测试网络连接的质量:
-延时(反应时间或者RTT):用ping命令量度
-Jitter(延时变化):用IperfUDP测试来量度
-数据报丢失:用IperfUDP测试来量度
-带宽:通过TCP测试来量度

 

miniedit文件存在于目录:/usr/lib/python2.7/dist-packages/mininet/examples

要求安装python-tk包 sudo apt-get install python-tk,之后就顺利打开啦

遵照建议我把miniedit.py复制到常用目录啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值