通过ping确定网卡mtu

时间:2021-09-14 20:43:21

使用 ping 测试确定网卡最佳 MTU 的方法

MTU ( Maximum Transmission Unit ,最大传输单元)是指某一层协议上一次能最大传输的数据量。当一个数据包超过 MTU 数据量时,数据包需要被重组,或者是被丢弃; MTU 太小时,会导致同一段时间需要拆解为更多的数据包,同样对性能不利。

通常交换机支持的 MTU 为1500,而 windows 中默认的 MTU 也为1500。但是某些场合下,如 VPN 等,需要对数据包进行再次封装,通常无法使用到 1500 的 MTU。

为了确定 MTU 的最大值,可以使用 ping 进行测试,以确定最大的 MTU。

在 windows 中:

ping -l <数据量> 目标地址

数据量一般为 14xx ,在这个范围内尝试,找到一个稳定的最大数据量。

MTU 值为 ping 数据量加上28(ICMP头部和底层封装的数据量)。如 ping -l 1430 baidu.com 成功时,MTU 为 1430+28=1458 ,设置网卡的 MTU 为 1458。

windows 中,直接到网卡的属性设置中,找到 MTU 并设置为合适的值。

ubuntu 中,直接命令设置

if config eth0 mtu 1458

或者在 /etc/network/interfaces 文件中,

auto eth0
iface eth0 inet dhcp
pre-up /sbin/ifconfig $IFACE mtu 1492