简单使用wireshark分析TCP报文
1. 打开wireshark找到需要分析的TCP流
打开wireshark(官网https://www.wireshark.org/)后,通过protoco标题找到我们需要分析的TCP流,如图所示:
过滤该TCP流。右键追踪流->TCP流,如图所示:
2. 分析的TCP流的窗口情况
2.1 TCP吞吐量计算方法
TCP的流量计算公式如下: T h r o u g h p u t = m i n ( W n d S i z e 拥塞窗 , W n d S i z e 接收窗 ) ∗ T h r e a d N u m ∗ 8 / r t t Throughput=min(WndSize_{拥塞窗},WndSize_{接收窗})*ThreadNum*8/rtt Throughput=min(WndSize拥塞窗,WndSize接收窗)∗ThreadNum∗8/rtt
影响流量的因素主要是拥塞窗、接收窗、rtt时延。看拥塞窗口可以分析流量影响的原因。
2.2 TCP窗口变化
打开wireshark的TCP的窗口分析:
如图所示,蓝色线为拥塞窗的变化,绿色为接收窗的变化。TCP的拥塞窗在拉升的过程中出现了掉沟,这种情况可能是丢包或时延过大导致的。
2.3 分析TCP的报文
将鼠标点击到TCP发送窗口下降的位置点击,可以看到在wireshark中跳转到对应行的报文。窗口缩窗的位置出现了DUP ACK,在两包报文之前出现了相同的ACK报文,说明27011这一包存在丢包。可以理解为,接收端一直收不到该seq的报文,就重复给发送端发送对应ACK的报文。
同样的,后面多次窗口掉沟都是因为丢包。
3. 如何理解拥塞窗缩窗
拥塞窗口是TCP中设计的一种用于避免网络拥塞发生的机制。拥塞窗口的大小取决于网络的拥塞程度,并且动态变化。发送方通过保证自己的发送窗口小于等于拥塞窗口以避免网络拥塞的发生。
发送方控制拥塞窗口的原则是:网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。只要网络一出现拥塞,拥塞窗口就减少一些,以减少注入到网络中的分组数,避免网络拥塞。