我正在调试在 Microchip 嵌入式平台上运行的 Web 服务器。嵌入式部分不应该是相关的,除了固件源允许我完全控制所有 TCP/IP 通信的编码。
尤其是在 Internet Explorer 上,在呈现服务器内容之前,所有所需的 GET 请求之间都存在 3 到 10 秒的延迟。当它是第一次访问该站点并且没有缓存任何内容时,通常需要检索大约 5 个文件(htm、css、js),因此用户看到页面之前的时间超过 15 秒。
Wireshark 捕获显示,肯定是客户端引入了延迟,因为 Web 服务器在收到每个连接请求后立即响应。在连接完成并且双方都发送了他们的 FIN/ACK 之后,我看到在客户端发送下一个 SYN 以连接下一个 GET 之前至少有 3 秒的暂停。从 SYN 到 FIN/ACK 的完整连接没有问题,只需不到半秒。
我验证了每一方都在确认对方的 FIN 标志,因为它的最终 ACK 数据包的确认号相应地增加了。我什至扩大了捕获范围以显示涉及客户端 MAC 地址的所有流量,并且在延迟期间没有任何类型的流量。
有人知道发生了什么吗?任何服务器端(例如 HTTP 标头)都会导致这种情况吗?谢谢你的帮助。