MPTCP + Mininet: MPTCP не использует все интерфейсы
Я создал скрипт mininet для N ссылок с пропускной способностью 1 Мбит / с между двумя хостами. Я включил mptcp на хост-машине (Ubuntu). Когда я попытался с N=15, пропускная способность составляет около 5 Мбит / с с использованием iperf. Это должно быть около 15 Мбит / с, и даже если я увеличу N, пропускная способность не изменится.
Это мой код
#!/usr/bin/env python
from mininet.net import Mininet
from mininet.cli import CLI
from mininet.link import Link, TCLink,Intf
from subprocess import Popen, PIPE
from mininet.log import setLogLevel
from mininet.node import RemoteController
from mininet.log import lg, info
if '__main__' == __name__:
setLogLevel('info')
net = Mininet(link=TCLink)
hosts = ["h1","h2"]
links = []
N=15
for i in range(N):
links.append(("h1","h2"))
linkopt={'bw':1}
added_nodes = {}
for host in hosts:
added_nodes[host]=net.addHost(host)
added_links = {}
for link in links:
one = link[0]
two = link[1]
net.addLink(added_nodes[one],added_nodes[two],cls=TCLink, **linkopt)
net.start()
for host in hosts:
if_num = 0
h = host[1]
for link in links:
if link[0] == host or link[1] == host:
added_nodes[host].cmd("ifconfig h{1}-eth{0} 0".format(if_num,h))
added_nodes[host].cmd("ifconfig h{1}-eth{0} 10.0.{0}.{2} netmask 255.255.255.0".format(if_num,h,int(h)+1))
added_nodes[host].cmd("ip rule add from 10.0.{0}.2 table {2}".format(if_num,h,int(if_num)+1))
added_nodes[host].cmd("ip route add 10.0.{0}.0/24 dev h{1}-eth{0} scope link table {2}".format(if_num,h,int(if_num)+1))
#added_nodes[host].cmd("ip route add default via 10.0.{0}.1 dev h{1}-eth{0} table {2}".format(if_num,h,int(if_num)+1))
if_num+=1
CLI(net)
net.stop()