MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。
1. 查看方法和设置方法各有两种,分别是ifconfig和文件
ifconfig:
查看:ifconfig eth0 | grep MTU
就可以找到MTU的信息,如
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
文件:
查看:cat /sys/class/net/eth0/mtu
2. 确认MTU是否合理
首先确认什么是不合理的 :
1.本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间 。
2.本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥 。
这样我们就知道:
所谓合理的设置MTU值,就是让本地的MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分。
Linux OS:
ping -s 1472 -M do 192.168.2.39
含义:
发送大小包大小是1472(+28)字节,禁止路由器拆分数据包。
回复结果:
1.如果正常回复,说明网络允许最大MTU就是1500字节,与系统默认相同,只需将自己的路由的MTU也设置为1500即可。
2.如果没正常回复,说明数据包大小超过了网络限定的MTU大小。需要减小探测包大小再次尝试。
3. 设置:MTU
ifconfig eth0 mtu 1500
设置:echo "1460" > /sys/class/net/eth0/mtu