有一同事问用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)