有一同事問用wireshark抓包時發現很多[TCP Retransmission],這些包極大影響了自己真正想看的http數據包,如下圖。
我拿到pcapng后首先看到這些包的來源ip都是固定的兩個,所以首先想到的方法就是過濾ip,規則如下:
http and ip.src_host !="23.2.16.200" and ip.src_host !="23.2.16.218"
這種方法雖然解決了問題,但是明顯不夠通用,如果ip很多不是煩死人了嗎?所以接着分析,google后發現[TCP Retransmission]這類包是由於通訊超時產生的重傳包,分析網絡性能差的原因時常常可以看到這類型的包,wireshark本身就帶了它的過濾器
tcp.analysis.retransmission
用這個過濾器就可以把這種影響測試的包給過濾出來了,但是真正想要的效果是不顯示這些包,所以用wireshark的過濾器表達式就可以了,即這個問題的優雅解決辦法就是
http and !(tcp.analysis.retransmission)