为什么最大化的 TCP 缓冲区允许某些 HTTP 而不是其他

网络工程 tcp
2022-02-05 07:50:36

我最近遇到了一个问题,我的网络丢失了大部分 HTTP 连接。我无法访问单个基于 HTTP 的站点。

我可以通过互联网 ping 地址,whatsapp 等消息应用程序正在运行,而其他没有 HTTP 应用程序也在运行。访问谷歌(及其子公司,如 YouTube 和 Gmail)和 Facebook 也没有受到影响。

起初我认为这是一个 DNS 问题,但用 nslookup 排除了这个问题。然后我以为是我们的防火墙,但是当绕过所有 LAN 设备并直接连接到我们的调制解调器时,问题仍然存在。在这一点上,我想与 ISP 核实这是否是上游的问题。

技术支持然后告诉我,他们以前遇到过这个问题,这实际上是我们调制解调器上的 TCP 缓冲区的问题。他们告诉我缓冲区最大级别设置得太高,并且太多会话已将其最大化。他们减小了缓冲区大小,重新启动后,连接恢复正常。

我不明白为什么我能够访问一些使用 HTTPS 但不能访问其他网站,而没有使用 HTTP 的网站。当然,一个最大化的缓冲区会影响所有基于 TCP 的流量吗?

现在问题已经解决了,但就我自己的理解而言,我想知道为什么解决方案有效。

1个回答

这只是来自支持的伪科学答案,旨在让您感觉良好。

调制解调器可能有一个错误,可能是对端口 80 进行连接跟踪,并且随着时间的推移泄露了大量资源。重新启动清除了它。