有些网站仅加载文本部分

有些网站仅加载文本部分

当我通过路由器(有线或无线)连接时,我无法加载 Pintrest 和 Twitter 等网站。只有网站的文本部分可以加载。

如果我直接连接到互联网(不使用路由器),一切都会正常加载。

我尝试过的事情:

  • 更换了路由器(Netgear N150 改为 TP-Link TD W8968)。
  • 在 Chrome、Firefox、Opera 和 IE 上进行了检查(我没有任何附加组件)。
  • 在不同的计算机上检查。

我该如何修复这个问题,以便浏览器可以加载正确显示页面所需的所有资源?

答案1

您的 Internet 连接是否需要 PPPoE?PPPoE 协议每个数据包有 8 个字节的开销,将您的 MTU 从 1500 降至 1492。无论是否使用 PPPoE,一些 ISP 的网络都有其他 MTU 限制。

客户端设备尝试通过执行称为“路径 MTU 发现”(PMTUD) 的过程来处理 MTU 限制。但是,如果路由器行为不当且在必要时不发送 ICMP“需要分段但设置了‘不分段’位”消息,并且防火墙会阻止某些类型的 ICMP 消息,则会导致 PMTUD 中断。一些愚蠢的误导性防火墙管理员会阻止所有 ICMP,因为他们想阻止 ping 尝试,但没有意识到 ICMP 的用途远不止 ping,并且阻止 ICMP 会对 TCP/IP 某些低级部分的工作方式造成严重损害。

优质家庭网关会尝试通过所谓的“TCP MSS 限制”来处理 MTU 限制,但您尝试过的网关可能不会这样做,或者做得不好。

如果您的 Internet 路径有 MTU 限制,并且处理不当,则会导致以下情况:小于限制 MTU 的文件(例如,小于 1400 字节的 HTML 文件)可以放入一个对网络来说不算太大的数据包中,并可以通过。但是,大于该大小的文件会被放入完整的 1500 字节数据包中,而这些数据包对于网络来说太大,因此必须丢弃。

为了解决这个问题,Google 的网站总是为所有 TCP 连接协商 1380 字节的 MSS。

尝试这个:
要查看未处理的 MTU 限制是否是您的问题,请在出现问题的其中一台机器上将 MTU 设置为相当低的值(例如 1300)。如果 1300 字节 MTU 解决了您的问题,请尝试越来越接近 1500 的不同设置,以查看截止点在哪里。然后在所有客户端机器上设置最大的工作 MTU。

如果未处理的 MTU 限制最终成为您的问题,请购买能够正确执行 TCP MSS 限制的更好的家庭网关(我知道 Apple 的 AirPort 和 Time Capsule 系列一直做得很好,但我不能保证其他系列也能做到),并且确保您不会过滤掉 ICMP,以便 PMTUD 可以正常工作。

相关内容