Я использую Mininet для проверки достигнутых результатов для различных алгоритмов контроля перегрузки. Теперь я вижу то, что не имеет для меня никакого смысла. При работе в стандартной сети Mininet с TCLink, которые имеют пропускную способность и задержку, iperf и iperf3 на клиенте сообщают о невозможности пропускной способности (выше, чем пропускная способность каналов). Сервер сообщает правильные номера.
Шаги воспроизведения:
sudo mn --link tc,bw=10,delay=10ms
iperf
Выход:
sudo mn --link tc,bw=10,delay=10ms
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(10.00Mbit 10ms delay) (10.00Mbit 10ms delay) (h1, s1) (10.00Mbit 10ms delay) (10.00Mbit 10ms delay) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...(10.00Mbit 10ms delay) (10.00Mbit 10ms delay)
*** Starting CLI:
mininet> iperf
*** Iperf: testing TCP bandwidth between h1 and h2
*** Results: ['9.50 Mbits/sec', '11.8 Mbits/sec']
Я ожидаю увидеть пропускную способность чуть ниже 10 Мбит / с как для клиента, так и для сервера, но клиент достигнет пропускной способности около 12 Мбит / с.
У кого-нибудь есть хорошее объяснение этому? Можно ли просто использовать цифры пропускной способности, сообщаемые сервером для анализа, или есть другая проблема с этим?