我正在比较来自以下地址的 10MB 文件下载的 Wireshark 跟踪记录:
- 这FileZilla FTP 服务器和
- 同一 Windows 2003 服务器上的 IIS(使用 HTTP)。
FTP 下载速度更快,并且跟踪显示服务器的行为符合预期,每次收到 ACK 时都会向客户端发送更多数据:
HTTP 服务器跟踪显示了更具突发性的模式。发送突发的时间有时与从客户端收到的任何 ACK 无关(红色圆圈部分):
有谁能解释为什么 IIS 流量会出现这种情况吗?
更新:我们已尝试修改http.sys 注册表设置(建议将 MaxBytesPerSend 设置为 256k,将 MaxBufferedSendBytes 设置为 64k)。更改 MaxBytesPerSend 似乎确实可以通过增加传输中的数据量来提高性能,但我们仍然看到相同的突发模式。
答案1
我怀疑这可能与 Windows 内部的 QoS 准入控制有关。IIS 可能遵守 QoS,FileZilla 可能直接与网络通信。
答案2
可能是 SACKing。如果我没看错的话,HTTP 在传输速度方面比 FTP 快多了。
客户端 ACK 看起来间隔也不是特别好。客户端是什么?