为什么我在 Windows 2003 上看到 IIS 和 FTP 服务器应用程序之间的 TCP 行为不同?

为什么我在 Windows 2003 上看到 IIS 和 FTP 服务器应用程序之间的 TCP 行为不同?

我正在比较来自以下地址的 10MB 文件下载的 Wireshark 跟踪记录:

  1. FileZilla FTP 服务器
  2. 同一 Windows 2003 服务器上的 IIS(使用 HTTP)。

FTP 下载速度更快,并且跟踪显示服务器的行为符合预期,每次收到 ACK 时都会向客户端发送更多数据:

FTP TCPTrace 部分 完整尺寸图片链接

HTTP 服务器跟踪显示了更具突发性的模式。发送突发的时间有时与从客户端收到的任何 ACK 无关(红色圆圈部分):

HTTP TCPTrace 部分 完整尺寸图片链接

有谁能解释为什么 IIS 流量会出现这种情况吗?

更新:我们已尝试修改http.sys 注册表设置(建议将 MaxBytesPerSend 设置为 256k,将 MaxBufferedSendBytes 设置为 64k)。更改 MaxBytesPerSend 似乎确实可以通过增加传输中的数据量来提高性能,但我们仍然看到相同的突发模式。

答案1

我怀疑这可能与 Windows 内部的 QoS 准入控制有关。IIS 可能遵守 QoS,FileZilla 可能直接与网络通信。

答案2

可能是 SACKing。如果我没看错的话,HTTP 在传输速度方面比 FTP 快多了。

客户端 ACK 看起来间隔也不是特别好。客户端是什么?

相关内容