1

我尝试将文件从主机 A 发送到 B,并使用 OpenvSwitch 捕获数据包丢失。我将主机 A 和 B 分别连接到一个 OpenvSwitch 虚拟机并连接两个 OpenvSwitch 虚拟机。拓扑如下所示:

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 的文件,并比较了发送交换机上的出口流和接收交换机上的入口流的数据包计数。我发现接收交换机上的数据包计数远大于发送交换机上的计数,表明接收的数据包比发送的数据包多!

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

顺便说一句,还有其他方法可以被动捕获丢包率吗?这意味着在不引入任何侵入性测试流程的情况下测量丢失率,而只需使用发送/接收端或交换机上可用的统计数据。

提前致谢!

4

1 回答 1

0

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

于 2016-03-29T17:37:56.750 回答