Wireshark 上的 TCP 窗口缩放

网络工程 线鲨
2022-02-06 03:05:23

我是Wireshark的新手,想找到窗口缩放,如果我没记错的话,这是接收到的窗口的大小。

我有一个 110mb 的转储文件用于我的图表。这是用于数据包分析的系统与初始系统请求大文件的 FTP 服务器之间的流量。

我必须显示来自 FTP 服务器的接收窗口的窗口缩放图表,并对它们的大小做出一些假设。

我对 Wireshark 采取的行动是:

  • 加载转储文件
  • 找到 TCP 3-ack 数据包
  • 在此之后选择第一个 tcp 数据包
  • 转到统计信息 -> TCP 流图 -> 窗口缩放
  • 我得到一个空白的窗口缩放窗口,如下:

在此处输入图像描述

  • 然后我单击 2 次Stream,从0 增加到 2,我得到以下窗口缩放窗口:

在此处输入图像描述

147.102.222.211是 FTP 服务器,195.251.211.87初始系统。

我的问题是:

  • 如何将接收到的窗口限制为仅来自 FTP 服务器的窗口?我应该只选中下面的Rcv Win复选框吗?

  • 如何通过查看图表顶部的那些绿点来找出图表中接收到的窗口大小超过 200 KB 的时间/位置

  • 为什么接收到的窗口是这个大小而不是默认的(我认为)65 KB似乎大多数是超过 200 KB?为什么会这样?

1个回答

我想我需要先解释几个术语:

  • 流 - 这是一个 TCP 对话。当 Wireshark 在读取文件时发现其第一个数据包时,每个 TCP 会话都会获得一个编号,因此 Stream 0 是第一个 TCP 会话,1 是第二个,2 是第三个(在您的情况下,它是 FTP 数据传输) . 流是双向的,因此它包含涉及的两个节点的数据包。

  • Rcv Win - 此复选框告诉图形绘制接收窗口值,这是您感兴趣的,因此需要选中

  • 字节输出 - 此复选框告诉图形将吞吐量绘制到图形中,在您的情况下是蓝点。

好的,让我们看看:

  1. 在您的第一个屏幕截图中,您有流 0,它是一个 HTTP 流,可能只有一个数据包,这就是图表为空的原因。没有捕获文件有点难以分辨。

  2. 要回答您的第一个问题:要将接收到的窗口值限制为仅来自 FTP 服务器的窗口值,您需要选择正确的流(流 2,如第二个屏幕截图所示),然后选择正确的方向。这是因为 TCP 连接中的每个节点都有自己的 Window 值,并且您的第二张图显示了从 FTP 服务器到客户端的数据流(正如您可以通过图标题中的 -> 箭头看出的那样) - 这意味着它显示来自服务器的字节和客户端的窗口值,因为它们一起工作。如果要查看服务器的窗口值,请单击“切换方向”按钮查看另一个方向,即客户端发送字节,服务器通告其窗口大小。

  3. 第二个问题:看起来峰值在250KB左右,如图

  4. 64kb(65535 字节)的窗口大小不再是默认值(就像在早期一样) - 它可以变得更大(通过 TCP 窗口缩放选项)并且也可以保持更小,具体取决于要求是什么。在您的情况下,大约 250KB 的窗口是客户端使用的,因为它计算出它是从服务器接收数据的最有效大小。最佳窗口大小的计算基于延迟和吞吐量。