如何在Linux上合理设置网卡的MTU值
今天马哥教育要跟大家分享的文章是关于如何在Linux上合理设置网卡的MTU值。正在从事Linux相关工作的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助!
MTU:是网络的最大传输单元,通信术语:最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关。
一、当MTU不合理时会造成如下问题
1.本地MTU值大于网络MTU值时,本地传输的"数据包"过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。
2.本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥。
二、什么是合理的MTU值
让本地MTU值与网络的MTU值一致,以致于不会出现数据包的大小超过网络传输的MTU值,而不得不进行拆包,然后组包,再进行转发,所谓合理的设置MTU值,就是让本地的MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分。
三、怎么探测合理的MTU
Linux下探测MTU值
ping -s 1460 -M do baidu.com
含义:发送大小包大小是1460(+28)字节,禁止路由器拆分数据包。
windows下探测MTU值
ping -f -l 1460 baidu.com
回复结果
1.如果正常回复,说明网络允许最大MTU就是1500字节,与系统默认相同,只需将自己的路由的MTU也设置为1500即可。
2.如果没正常回复,说明数据包大小超过了网络限定的MTU大小。需要减小探测包大小再次尝试。
四、如何修改MTU值
Linux临时修改
ifconfig eth0 mtu 1488 up
五、为什么mtu值是探测出来的值加上28
因为ping使用icmp协议,你指定的探测值是数据包数据净荷的长度,还需要加上20字节的ip头部,和8字节的icmp封装
#MTU设置不正确可能会造成什么问题(平时都是默认1500)
第一:使用pptp后,未将服务器上mtu改小,可能造成带宽跑不上去
第二:使用GRE后,未将服务器上mtu改小,可能造成部分网站无法打开,如百度,hao123等
以上就是马哥教育今天为大家分享的关于如何在Linux上合理设置网卡的MTU值的文章,希望本篇文章能够对正在从事Linux相关工作的小伙伴们有所帮助。想要了解更多Linux相关知识记得关注马哥教育官网。
声明:文章来源于网络,侵删!