Web 服务器 HTTP 传输随机中断,TCP 数据包丢失?

Web 服务器 HTTP 传输随机中断,TCP 数据包丢失?

从 Web 服务器到浏览器进行一些基本的 HTTP 传输。通常可以正常工作,但极少数情况下 Web 资源(例如 JavaScript 文件)无法加载。调查显示,在 TCP 数据流传输过程中,Len随机变化,一切都乱套了(问题发生时 100% 一致)。我不知道变化是否Len是问题所在,但它总是先于问题出现。真正的问题似乎是直接丢失数据,但我对 TCP 的了解太少了。我在查看 seq/ack/len 和弄清楚谁在确认什么等方面感到困惑。我附上了一个截图来说明问题,想知道是否有人可以提供一些见解。

我的网络朋友说是浏览器(Firefox)出了问题,但我不知道......

wireshark 捕获

如果您继续进行此捕获,则大约有 30 个 DUP ACK,而 Web 服务器继续发送文件的其余部分并恢复正常。但浏览器似乎不再接收数据。

答案1

这与数据包长度无关。根据数据包捕获的一小部分,您显示只是丢失了数据包。收到的最后一个序列是 65793,然后捕获中的下一个数据包以 67956 开头。这就是为什么它反复确认序列 65793。服务器应该在一段时间后意识到这一点并重新发送丢失的数据包。

相关内容