OpenvSwitch中的数据包计数器不准确

时间:2016-03-19 22:24:26

标签: openflow sdn openvswitch

我尝试从主机A向B发送文件,并使用OpenvSwitch捕获数据包丢失。我将主机A和B分别连接到OpenvSwitch VM并连接两个OpenvSwitch VM。拓扑看起来像这样:

A - OVS_A - OVS_B - B

在每个OpenvSwitch VM上,我使用以下命令添加了两个非常简单的流:

ovs-ofctl add-flow br0 in_port = 1,actions = output:2

ovs-ofctl add-flow br0 in_port = 2,actions = output:1

然后我在A和B之间发送了一个10GB的文件,并比较了发送交换机上的出口流量和接收交换机上的入口流量的数据包计数。我发现接收交换机上的数据包数量远大于发送交换机上的数量,表明收到的数据包比发送的数据包多!

我尝试匹配更具体的流量,例如从端口C上的IP A.A.A.A到B.B.B.B的TCP流并得到相同的结果。我的设置有什么问题吗?或者这是OpenvSwitch中的已知错误?有什么想法吗?

BTW,有没有其他方法可以被动地捕获丢包率?意味着测量损耗率不会引入任何侵入式测试流程,而只需使用发送/接收端或交换机上的可用统计信息。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我刚才意识到这不是Open vSwitch的错。我测试了UDP流,数据包计数是正确的。我还使用 tcpdump 来捕获交换机上的入站TCP数据包,并且接收端的交换机拥有的数据包多于发送端的数据包。结果与使用Open vSwitch的流量计数器捕获的结果一致。我想我一定错过了一些关于TCP的重要信息。