【发布时间】:2013-02-09 09:33:19
【问题描述】:
我正在调试在 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 标头)都会导致这种情况吗?感谢您的帮助。
【问题讨论】:
标签: internet-explorer http tcp wireshark microchip