Appearance
MTU
MTU:最大传输单元(Maximum Transmission Unit),通常指 IP MTU,即三层网络中数据包的最大大小。
MTU 基本概念
二层 MTU:
单位为帧,默认长度范围为 64 - 1518 字节。通常不会修改帧的最大长度,但在某些特殊情况下可以启用 Jumbo 帧,以支持超过 1518 字节的帧。三层 MTU:
单位为包,默认长度范围为 46 - 1500 字节。路径 MTU(path mtu):
在发送方到接收方路径中,所有链路的 最小 MTU 值。它决定了数据包在网络中传输时可以使用的最大大小。
路径 MTU 发现(Path MTU Discovery)
路径 MTU 发现(PMTU Discovery)用于确定路径 MTU 值。它依赖于 ICMP PTB (Packet Too Big) 消息来检测链路的最大传输能力。
PMTU 过时:
[RFC1191] 推荐一个由 PMTUD 得到的 PMTU 值在10分钟后过时。路径 MTU发现 有时会因为防火墙和网关过滤可能不加选择地丢弃ICMP流量而出现问题,这会损害PMTU发现算法。困为这点,从基于系统范畴或有更好保证来看,可能要关闭PMTU发现。ICMP 过滤问题:
防火墙或网关可能会丢弃 ICMP 流量,导致 PMTU 发现失败,从而影响数据传输。关闭 PMTU 发现:
在 Linux 系统中,可通过修改/proc/sys/net/ipv4/ip_no_pmtu_disc
文件,将其值设置为1
以关闭 PMTU 发现。PLPMTUD(Packetization Layer PMTU Discovery):
[RFC4821] 提出了 PMTU 发现的替代方案 PLPMTUD,通过传输层的探测来避免依赖 ICMP。
MSS 与 MTU的关系 MSS 参考
MSS 是 MTU 减去 TCP 和 IP Header长度计算而来,提高传输效率避免 IP 分片