5.9.1. 找出最佳 MTU
最大传输单元 Maximum Transmission Unit (MTU) 的值能够通过加 “-M do
“ 选项的 ping(8) 实验来确定,它发送从 1500 字节(对于IP+ICMP 包头,有 28 字节的偏移)大小开始的 ICMP 包,来找出 IP 不分片的最大包大小。
尝试下列例子
$ ping -c 1 -s $((1500-28)) -M do www.debian.org
PING www.debian.org (194.109.137.218) 1472(1500) bytes of data.
From 192.168.11.2 icmp_seq=1 Frag needed and DF set (mtu = 1454)
--- www.debian.org ping statistics ---
0 packets transmitted, 0 received, +1 errors
尝试 1454 代替 1500
你看到用 1454 ping(8) 成功了。
这个过程是 路径 MTU (PMTU) 发现 (RFC1191) , tracepath(8) 命令能够自动完成这个。
提示 | |
---|---|
上面的列子,PMTU 的值是 1454,这是我先前的光纤到户提供商,使用了 异步传输模式 Asynchronous Transfer Mode (ATM) 作为他们的骨干网络,并使用 PPPoE 作为客户端。实际 PMTU 值依赖于你的环境,比如说,我新的光纤到户提供商是 1500。 |
表 5.18. 最佳 MTU 值的基本指引方法
网络环境 | MTU | 基本原理 |
---|---|---|
拨号连接(IP: PPP) | 576 | 标准的 |
以太网连接 (IP: DHCP 或固定) | 1500 | 默认标准值 |
以太网连接 (IP: PPPoE) | 1492 (=1500-8) | PPP 头部 2 字节 和 PPPOE 头部 6 字节 |
以太网连接 (ISP 骨干网: ATM, IP: DHCP 或固定 IP) | 1462 (=4831-18-8) | 作者推断:18 字节的以太网头,8字节 SAR 尾(译注:SAR 为 ATM 技术名词) |
以太网连接 (ISP 骨干: ATM, IP: PPPoE) | 1454 (=4831-8-18-8) | 参见 “Optimal MTU configuration for PPPoE ADSL Connections“ 来了解基本原理 |
除了这些基本的指引方法外,你还应当知道下面的信息。
使用任何隧道方式(VPN 等.)的最佳 MTU 需要进一步减去它们上面的头部。
MTU 值不应当超过通过实验验证的 PMTU 值。
当遇到其它限制的时候,较大的 MTU 值通常比较好。