我尝试从主机A向B发送一个文件,并使用OpenvSwitch捕获数据包丢失。我将主机A和主机B分别连接到OpenvSwitch VM,并连接这两个OpenvSwitch VM。拓扑如下所示:
A -- OVS_A -- OVS_B -- B
在每个OpenvSwitch虚拟机上,我使用以下命令添加了两个非常简单的流:
ovs-ofctl add-flow br0 in_port=1,actions=output:2
ovs-ofctl add-flow br0 in_port=2,actions=output:1
然后,我在A和B之间发送了一个10 on的文件,并比较了发送交换机上的出口流和接收交换机上的入口流的数据包数。我发现接收交换机上的数据包数远远大于发送交换机上的数据包数,这表明接收的数据包多于发送的数据包!
我尝试匹配更具体的流,例如从IP A.A到端口C上的B.B的TCP流,得到了相同的结果。我的设置有什么问题吗?或者这是OpenvSwitch中已知的错误?有什么想法吗?
顺便说一句,有没有其他被动捕获丢包率的方法?这意味着在不引入任何侵入性测试流的情况下测量丢失率,而只是使用发送/接收端或交换机上可用的统计数据。
提前感谢!
发布于 2016-03-30 01:37:57
我刚刚意识到这不是Open vSwitch的错。我使用UDP流进行了测试,数据包计数是正确的。我还使用tcpdump捕获交换机上的入站TCP数据包,并且接收端的交换机比发送端的交换机具有更多的数据包。结果与Open vSwitch的流计数器捕获的结果一致。我想我一定是错过了一些关于TCP的重要东西。
https://stackoverflow.com/questions/36107938
复制相似问题