技术分析

MTU 与分片:为什么有的网站打不开

← 返回博客

有些站点在挂上隧道后打不开或一直卡在加载,多半不是网站的问题,而是报文尺寸。

封装吃掉了头部空间

每个数据包在隧道里都会被再加一层头。链路能承载的最大值固定,多出来的这部分只能从数据里扣。

超了会发生什么

允许分片的网络会把包拆开重传,效率下降;不允许分片的网络直接丢弃。后者的典型表现是:小页面能开、大页面超时,或者握手成功但没有任何数据返回。

MSS 钳制

与其等分片发生,不如在建链时把 TCP 的最大段尺寸压到合适值,让上层直接发出不会被拆开的包。

高级设置中的 MTU 与 MSS 选项

自动探测与手动指定

客户端会自动探测当前链路的合适值。如果仍有极个别站点异常,手动调低一档通常就能解决,代价是每包有效载荷略少。

排查顺序

  • 先交给自动探测
  • 个别站点异常再手动调低
  • 换一个协议做对比
  • 确认不是目标站自身的问题