Mininet_wifi iperf 具有一台服务器和多个客户端

问题描述

我有这个 mininet-wifi 拓扑脚本

def topology(args):

    "Create a network."
    net = Mininet_wifi(controller=RemoteController,roads=10,link=wmediumd,wmediumd_mode=interference)

    info("*** Creating nodes\n")
    for id in range(0,10):
        min_ = randint(1,4)
        max_ = randint(11,30)
        net.addCar('car%s' % (id+1),wlans=2,min_speed=min_,max_speed=max_)

    rsu11 = net.addAccesspoint('RSU11',ssid='RSU11',mode='g',channel='1')
    rsu12 = net.addAccesspoint('RSU12',ssid='RSU12',channel='6')
    rsu13 = net.addAccesspoint('RSU13',ssid='RSU13',channel='1')
    rsu14 = net.addAccesspoint('RSU14',ssid='RSU14',channel='6')
    #c1 = net.addController('c1')
    c1 = net.addController('c1',controller=RemoteController,ip='172.17.0.2',port=6633)
    c2 = net.addController('c2',ip='172.17.0.3',port=6633)
    c3 = net.addController('c3',ip='172.17.0.4',port=6633)
    info("*** Configuring Propagation Model\n")
    net.setPropagationModel(model="logdistance",exp=3)

    info("*** Configuring wifi nodes\n")
    net.configureWifiNodes()

    info("*** Associating and Creating links\n")
    net.addLink(rsu11,rsu12)
    net.addLink(rsu11,rsu13)
    net.addLink(rsu11,rsu14)
    for car in net.cars:
        net.addLink(car,intf='%s-wlan1' % car,cls=mesh,ssid='mesh-ssid',channel=5)

    if '-p' not in args:
        net.plotGraph(max_x=1000,max_y=1000)

    net.startmobility(time=0)

    info("*** Starting network\n")
    net.build()
    c1.start()
    c2.start()
    c3.start()
    rsu11.start([c1])
    rsu12.start([c1])
    rsu13.start([c2])
    rsu14.start([c3])

    for id,car in enumerate(net.cars):
        car.setIP('192.168.0.%s/24' % (id+1),intf='%s-wlan0' % car)
        car.setIP('192.168.1.%s/24' % (id+1),intf='%s-mp1' % car)
    

我尝试了这种方式来测试一台服务器和另外两个客户端之间的连通性

    car1,car2,car3= net.get('car1','car2','car3')
    car1.cmd('iperf -s -e -u --histogram=100u,2000 --realtime &')
    car2.cmd('iperf -c 192.168.0.1 --isochronous=60:100m,10m -i1 -u -e --realtime > server.txt')
    car3.cmd('iperf -c 192.168.0.1 --isochronous=60:100m,10m -i1 -u -e --realtime >> server.txt') 
    p=Popen('''cat server.txt | grep % | tr," " | awk '{print $10" "$11" "$13" "$16" "$17}' >> test.txt''',shell=True,stdout=PIPE,stderr=PIPE)

它运行良好,但是,现在我想测试 car1 作为服务器和所有其他汽车作为 for 循环中的客户端之间的连接性。有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)