我正在创建网络拓扑,例如(H1、H3、H5、H7、H9)<-&燃气轮机;S1<-&燃气轮机;S2<-&燃气轮机;(H2、H4、H6、H8、H10),其中“H”是主机,“S”是交换机。每台主机通过一条链路连接到交换机。我已经编写了自己的传输协议,并希望在5条链路上同时检查其性能,即(H1-S1-S2-H2,是一条链路)。我使用python脚本来自动化这个方法,因为我不想对每个主机使用xterm并输入命令
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, info
from mininet.node import RemoteController
from mininet.cli import CLI
from time import sleep
class MyTopo( Topo ):
"Simple topology example."
def __init__( self ):
"Create custom topo."
# Initialize topology
Topo.__init__( self )
# Add hosts and switches
leftHost1 = self.addHost( 'h1', cpu=0.05)
rightHost1 = self.addHost( 'h2', cpu=0.05)
leftSwitch = self.addSwitch( 's3' )
rightSwitch = self.addSwitch( 's4' )
leftHost2 = self.addHost( 'h3', cpu=0.05)
rightHost2 = self.addHost( 'h4', cpu=0.05)
leftHost3 = self.addHost( 'h5', cpu=0.05)
rightHost3 = self.addHost( 'h6', cpu=0.05)
leftHost4 = self.addHost( 'h7', cpu=0.05)
rightHost4 = self.addHost( 'h8', cpu=0.05)
leftHost5 = self.addHost( 'h9', cpu=0.05)
rightHost5 = self.addHost( 'h10', cpu=0.05)
leftHost6 = self.addHost( 'h11', cpu=0.05)
rightHost6 = self.addHost( 'h12', cpu=0.05)
leftHost7 = self.addHost( 'h13', cpu=0.05)
rightHost7 = self.addHost( 'h14', cpu=0.05)
leftHost8 = self.addHost( 'h15', cpu=0.05)
rightHost8 = self.addHost( 'h16', cpu=0.05)
leftHost9 = self.addHost( 'h17', cpu=0.05)
rightHost9 = self.addHost( 'h18', cpu=0.05)
leftHost10 = self.addHost( 'h19', cpu=0.05)
rightHost10 = self.addHost( 'h20', cpu=0.05)
# Add links
self.addLink( leftHost1, leftSwitch)
self.addLink( leftHost2, leftSwitch)
self.addLink( leftHost3, leftSwitch)
self.addLink( leftHost4, leftSwitch)
self.addLink( leftHost5, leftSwitch)
self.addLink( leftHost6, leftSwitch)
self.addLink( leftHost7, leftSwitch)
self.addLink( leftHost8, leftSwitch)
self.addLink( leftHost9, leftSwitch)
self.addLink( leftHost10, leftSwitch)
self.addLink( leftSwitch, rightSwitch, bw=10, delay='10ms', loss=1)
self.addLink( rightSwitch, rightHost1 )
self.addLink( rightSwitch, rightHost2 )
self.addLink( rightSwitch, rightHost3 )
self.addLink( rightSwitch, rightHost4 )
self.addLink( rightSwitch, rightHost5 )
self.addLink( rightSwitch, rightHost6 )
self.addLink( rightSwitch, rightHost7 )
self.addLink( rightSwitch, rightHost8 )
self.addLink( rightSwitch, rightHost9 )
self.addLink( rightSwitch, rightHost10 )
def run():
#c = RemoteController('c', '0.0.0.0', 6633)
topo = MyTopo()
net = Mininet(topo=topo, host=CPULimitedHost, link=TCLink)
#net.addController(c)
net.start()
h1 = net.get('h1')
h2 = net.get('h2')
h3 = net.get('h3')
h4 = net.get('h4')
h5 = net.get('h5')
h6 = net.get('h6')
h7 = net.get('h7')
h8 = net.get('h8')
h9 = net.get('h9')
h10 = net.get('h10')
h11 = net.get('h11')
h12 = net.get('h12')
h13 = net.get('h13')
h14 = net.get('h14')
h15 = net.get('h15')
h16 = net.get('h16')
h17 = net.get('h17')
h18 = net.get('h18')
h19 = net.get('h19')
h20 = net.get('h20')
h1.cmd('python receiver_socket.py 1000 10.0.0.1 > receiver1.txt &')
h3.cmd('python receiver_socket.py 1000 10.0.0.3 > receiver2.txt &')
h5.cmd('python receiver_socket.py 1000 10.0.0.5 > receiver3.txt &')
h7.cmd('python receiver_socket.py 1000 10.0.0.7 > receiver4.txt &')
h9.cmd('python receiver_socket.py 1000 10.0.0.9 > receiver5.txt &')
h11.cmd('python receiver_socket.py 1000 10.0.0.11 > receiver6.txt &')
h13.cmd('python receiver_socket.py 1000 10.0.0.13 > receiver7.txt &')
h15.cmd('python receiver_socket.py 1000 10.0.0.15 > receiver8.txt &')
h2.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.1 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 1 > sender1.txt &')
h4.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.3 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 2 > sender2.txt &')
h6.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.5 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 3 > sender3.txt &')
h8.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.7 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 4 > sender4.txt &')
h10.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.9 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 5 > sender5.txt &')
h12.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.11 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 6 > sender6.txt &')
h14.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.13 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 7 > sender7.txt &')
h16.cmdPrint('python test_thread_full.py 1000 0.01 10.0.0.15 8_pair/Ephemeral_Full/no_cross/10_OWD/1_10 8 > sender8.txt ')
CLI(net)
net.stop()
# if the script is run directly (sudo custom/optical.py):
if __name__ == '__main__':
setLogLevel('info')
run()
但是问题在于这个python脚本执行命令所花费的时间。如果我通过打开每个主机的xterm来运行相同的命令,那么与运行python脚本相比,它花费的时间更少
我不知道是什么错误
目前没有回答
相关问题 更多 >
编程相关推荐