MTU(最大传输单元)是链路层概念:单个帧能承载的最大 IP 包大小,以太网典型 1500 字节。MSS(最大报文段长度)是 TCP 概念:单个 TCP 段能携带的最大数据量,连接建立时双方在 SYN 中宣告,典型值 = MTU − IP 头 20 − TCP 头 20 = 1460。分工由此明确:TCP 按 MSS 分段,保证每个段装进 IP 包不超限;若 IP 包仍超过路径上某跳的 MTU(比如隧道封装后变大),由 IP 层分片,接收端重组。
工程要点:IP 分片是性能与可靠性毒药——任一分片丢失整个包重传,且分片可被用于攻击,现代实践是让 TCP 层避免分片:1)PMTUD(路径 MTU 发现)——IP 头设 DF(不分片)位,超限时路由器回 ICMP Fragmentation Needed 告知可接受大小,TCP 据此调小 MSS;2)PMTUD 依赖 ICMP 可达,ICMP 被防火墙误杀会造成「大包死、小包通」的黑洞,TCP 有分段大小自动探测(PLPMTUD)兜底;3)VPN/隧道(IPsec、GRE、WireGuard)额外头部占用 MTU,常见排障就是把接口 MTU/MSS 调低(如 1400)。追问方向:IPv6 为什么取消中间路由器分片(只能源端分片)、巨帧(Jumbo Frame, MTU 9000)在数据中心的收益与限制。
(约 460 字)