为什么 Mininet 不丢弃任何数据包?

时间:2021-07-27 13:04:35

标签: delay packet mininet loss

我正在尝试使用 Mininet Python API 收集一些网络统计信息,但是,我注意到即使我设置了链接带宽并发送了比配置带宽更多的流量,也没有数据包丢失。我认为我的代码中可能有一些错误,所以我继续使用 Mininets 内置拓扑来查看我是否仍然得到相同的行为。我从线性拓扑开始,如下所示:

sudo mn --topo linear,3

然后我在 h1 和 h3 上运行 iperf 以获取带宽并发送比带宽更多的流量。

h1 iperf -s -u -p 2000 -i 1 > server.txt &
h3 iperf -u -c 10.0.0.1 -p 2000 -b 20M -i 1 -t 120 > client.txt &

我厌倦了 -b 的几个值,但仍然没有丢包。 然后我配置了链路带宽和拓扑,如下:

sudo mn --topo linear,3 --link tc, bw=10

然后发送了 20M 流量,但没有再次丢失。经过一些阅读和反复试验,我也配置了延迟。

sudo mn --topo linear,3 --link tc, bw=10, delay=10ms

然后再次产生了 20M 的流量,这一次,令人惊讶的是,但正如预期的那样,有大约 50% 的数据包丢失。

我的假设是交换机有一个足够大的缓冲区来缓冲数据包,直到所有数据都被发送并且没有丢失。但是,当传输受到延迟限制时,数据包会因为无法及时到达而被丢弃。

我已经收集了绘图所需的统计数据,但是我想知道为什么没有延迟参数就没有数据包丢失?

0 个答案:

没有答案
相关问题