我有一些用户以前使用 FTP 通过高延迟路径将文件传输到本地服务器。他们已切换到 HTTP 进行这些传输(并非自愿),文件传输性能严重下降。用户服务器的 TCP 窗口大小针对 FTP 和网络延迟进行了优化。
根据源服务器(即 Web 服务)上 HTTP 的实现,HTTP 是否可能使用或影响小/默认的 TCP 窗口大小?
答案1
不,HTTP 和 FTP 基本上都是通过纯 TCP 传输文件的。适用于 FTP 的 TCP 调整也适用于 HTTP。
您看到的性能问题可能与所涉及的 HTTP 客户端或服务器实现有关;它们可能没有有效地使用 TCP。例如,良好的实现会小心使用滚动缓冲区来始终保持 TCP 管道满载。简单的实现一次只将一个缓冲区交给 TCP,并等待该缓冲区完全发送后再交出新的缓冲区。这会导致管道在缓冲区之间不断部分耗尽,这是高延迟链接可能遇到的最糟糕的事情之一。如果您的 FTP 客户端或服务器犯了同样的错误,其性能将与犯此错误的 HTTP 客户端或服务器一样糟糕。
请注意,这只是一个简单的实现可能无法有效使用 TCP 的一个例子;我并不是说这就是你的情况,但这确实是一种可能性。