过滤器的使用

定义目标IP, ip.dst == 148.70.41.186

定义发送IP ip.src==148.70.41.183

定义端口 tcp.port == 10213

举例:

(ip.dst == 148.70.41.183||ip.src==148.70.41.183)&&tcp.port == 10213&&!(tcp.analysis.keep_alive)

修改时间格式

视图-->时间显示格式

新增列:

WireShark使用总结wireshark过滤规则_网络

533 00:16:37.799539 148.70.41.183 192.168.0.103 TCP 75  51867 10213 → 51867 [PSH, ACK] Seq=998 Ack=108 Win=124 Len=21
534 00:16:37.800130 148.70.41.183 192.168.0.103 TCP 70 51867 10213 → 51867 [PSH, ACK] Seq=1019 Ack=108 Win=124 Len=16
535 00:16:37.800137 148.70.41.183 192.168.0.103 TCP 74 51867 10213 → 51867 [PSH, ACK] Seq=1035 Ack=108 Win=124 Len=20

通过上面的截包记录,我们可以看出,同一个源发来的消息,正常情况下,下一个分片的seq=上一个分片的seq+上一个分片Len

,并且他们的Ack都是一样的。

长度控制  rame.cap_len==77

遇到的问题:

TCP Retransmission TCP重传

TCP Spurious Retransmission TCP虚假重传

看你的ip,应该是与外网通信,造成tcp超时重发的原因很多,如:路由器太过拥挤,导致一些IP包被丢弃等

指实际上并没有超时,但看起来超时了,导致虚假超时重传的原因有很多种:

(1)对于部分移动网络,当网络发生切换时会导致网络延时突增

(2)当网络的可用带宽突然变小时,网络rtt会出现突增的情况,这会导致虚假超时重传

(3)网络丢包(原始和重传的包都有可能丢包)会导致虚假重传超时。

当Client端收到Server的SYN+ACK应答后,其状态变为ESTABLISHED,并发送ACK包给Server;
如果此时ACK在网络中丢失,那么Server端该TCP连接的状态为SYN_RECV,并且依次等待3秒、6秒、12秒后重新发送SYN+ACK包,以便Client重新发送ACK包,以便Client重新发送ACK包。
Server重发SYN+ACK包的次数,可以通过设置/proc/sys/net/ipv4/tcp_synack_retries修改,默认值为5。
如果重发指定次数后,仍然未收到ACK应答,那么一段时间后,Server自动关闭这个连接。
但是Client认为这个连接已经建立,如果Client端向Server写数据,Server端将以RST包响应,方能感知到Server的错误。

cat /proc/sys/net/ipv4/tcp_timestamps
vi /etc/sysctl.conf
net.ipv4.tcp_timestamps=0
sysctl -p

参考资料:

​​Wireshark中常见的TCP Info​​

wireshark过滤规则