やりたいこと
ネットワークエミュレータのMininetを使用して、ネットワークを構築し輻輳制御手法を指定してiperfを実行したい。
また、ネットワークの構築やフローの実行はPython上で行いたいと考えています。
ネットワークの構築は以下のサイトを参考に行いました。
http://www.cloudcluster.cloudysunny14.org/show_materials?id=ahBzfm9uY2xvdWRjbHVzdGVyciYLEg9NYXRlcmlhbHNUaGVtZXMY0YwBDAsSCE1lbnRpb25zGOkHDA
下記のコードで、ホストh1とホストh2間でiperfを使用し通信を行いたいです。
そこで、通信を行う際の輻輳制御手法を指定していする方法を教えてください。
有識者の方々、ご助力の程よろしくお願いします。
コード
現在のコードは以下の通りです。
python
1#!/usr/bin/python 2 3from mininet.topo import Topo 4from mininet.net import Mininet 5from mininet.node import CPULimitedHost 6from mininet.link import TCLink 7from mininet.util import dumpNodeConnections 8from mininet.log import setLogLevel 9 10class SingleSwitchTopo(Topo): 11 "Single switch connected to n hosts." 12 def __init__(self, n=2, **opts): 13 Topo.__init__(self, **opts) 14 switch = self.addSwitch('s1') 15 for h in range(n): 16 # Each host gets 50%/n of system CPU 17 host = self.addHost('h%s' % (h + 1), 18 cpu=.5/n) 19 # 10 Mbps, 5ms delay, 10% loss, 1000 packet queue 20 self.addLink(host, switch, 21 bw=10, delay='5ms', loss=0, max_queue_size=1000, use_htb=True) 22 23def perfTest(): 24 "Create network and run simple performance test" 25 topo = SingleSwitchTopo(n=2) 26 net = Mininet(topo=topo, 27 host=CPULimitedHost, link=TCLink) 28 net.start() 29 print "Dumping host connections" 30 dumpNodeConnections(net.hosts) 31 print "Testing network connectivity" 32 net.pingAll() 33 print "Testing bandwidth between h1 and h4" 34 h1, h2 = net.get('h1', 'h2') 35 net.iperf((h1, h2)) 36 net.stop() 37 38if __name__ == '__main__': 39 setLogLevel('info') 40 perfTest()
あなたの回答
tips
プレビュー