2016-03-19 25 views
1

我試圖從主機A向B發送文件,並使用OpenvSwitch捕獲數據包丟失。我將主機A和B分別連接到OpenvSwitch VM,並連接兩臺OpenvSwitch VM。拓撲看起來像這樣:OpenvSwitch中的不準確的數據包計數器

A - OVS_A - OVS_B - B

在每個VM OpenvSwitch,我添加使用下面的命令兩個非常簡單的流量:

OVS-ofctl添加流BR0 in_port = 1,動作=輸出:2

OVS-ofctl添加流BR0 in_port = 2,動作=輸出:1

然後我發送A和B之間10GB的文件並進行比較的數據包計數發送交換機上的出口流量和接收交換機上的入口流量H。我發現接收交換機上的數據包數量遠遠大於發送交換機上的數量,表明收到的數據包比發送的數量多!

我試圖匹配更具體的流程,例如從端口C上的IP A.A.A.A到B.B.B.B的TCP流,並得到相同的結果。我的設置有什麼問題嗎?或者這是OpenvSwitch中的一個已知錯誤?有任何想法嗎?

順便說一句,有沒有其他方式來被動捕獲丟包率?意思是測量沒有引入任何侵入式測試流程的丟失率,而只是使用發送/接收端或交換機上可用的統計數據。

在此先感謝!

回答

0

我剛剛意識到,它不是開放的vSwitch的錯。我測試了一個UDP流和數據包計數是正確的。我還用tcpdump來捕獲交換機上的入站TCP數據包,並且接收端的交換機比發送端的數據包多。結果與使用Open vSwitch流量計數器捕獲的結果一致。我想我一定錯過了一些關於TCP的重要內容。