如何在开放式流小型网络中解决高数据流率问题,在该流中击中没有该流规则的交换机?

问题描述

我正在使用iperf流量生成和硬超时作为RYU SDN的mininet中的simple_switch_13.py代码的扩展。我正在使用带有8个开关的线性拓扑。我将硬超时设置为5秒。

我只处理一个流程。我启动了两台主机之间的iperf通信(假设从h1到h7。使用的术语与mininet线性拓扑中使用的术语相同)持续10秒钟。当流开始时,arp数据包将在网络中生成。之后,来自h7的arp答复被发送到h1,后者从(s7,s6,...,s1)杂乱地创建了七个数据包,相应的流规则安装在交换机中并最终到达h1。然后,h1将tcp流发送到h7,后者还会在来自(s1,s2,...,s7)的消息中创建七个数据包,并且相应的流规则已安装在交换机中并到达h7。到目前为止,一切正常。

但是一旦超时(5秒)完成,交换机中的流规则将被删除。因为流仍在网络中,实际上应该发生的是控制器应发送一个入站消息并缓冲其余的包,以便当在交换机的流表中安装了相应的流规则时,缓冲的包将使用已安装的流规则以通过切换。但这没有发生。 在将流规则安装到交换机之前,控制器会收到很多“打包”消息(每个进入交换机的数据包都将到达控制器)。消息中大量数据包的原因可能是什么?交换机的缓冲区工作不正常吗(但是我收到带有某些buffer_id的数据包消息)。如何解决这个问题?

这也发生在开始时有空闲超时和udp流的情况下(即当h1开始与h7进行通信时),这条路径上的交换机会生成大量入包消息。​​

经过大量研究,我了解硬超时或空闲超时不是问题。当具有高数据速率的流到达交换机并且交换机没有该流规则时,就会发生这种情况,然后它会为同一流发送大量入包消息。那些分组不排队(或者在发送用于相应流的一个分组进入之后可能不存储其余的流分组)。如何在mininet中解决此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...