【MTU】Windows/Linux下修改MTU
一、关于MTU
通过 MAC 封装的定义,现在我们知道标准以太网络frame所能传送的数据量最大可以到达 1500 bytes , 这个数值就被我们称为 MTU (Maximum Transmission Unit, 最大传输单位)。 你得要注意的是,每种网络接口的 MTU 都不相同,因此有的时候在某些网络文章上面你会看到 1492 bytes 的 MTU 等等。不过,在以太网络上,标准的定义就是 1500 bytes。
在我们常用的以太网中,MTU 一般是 1500,而无线路由器默认一般是 1492,蓝牙官网的默认值是 672(这个速度很慢了,大约 20k/s 左右)。
我们知道IP封包最大可以达到65535bytes,比MTU最大值还要大!
既然礼物(IP数据包)比盒子(MAC)还大,那怎么才能放进去呢?
答案当然是拆解IP封包咯,将一个完整的IP封包拆解成一些1500bytes范围内的数据分片,等到数据全部传输到目的主机将它组装回来就行。
按照道理说,如果MTU值可以扩大一些,那么IP封包就不需要拆解成许多过小的分片,封包与封包传输之间的等待时间也会减少,就可以增加网络带宽的使用!
为了这个目的,所以 Gigabit 的以太网络媒体才有支持 Jumbo frame 的嘛!
这个 Jumbo frame 一般都定义到 9000bytes。
那你会说,既然如此,我们的 MTU 能不能改成 9000bytes 呢?这样一来不就能够减少数据封包的拆解,以增加网络使用率吗?
是这样没错,而且你也确实可以在 Linux 系统上更改 MTU ,但是如果考虑到整个网络中并不是所有网络媒体都支持超大值MTU,所以并不建议将MTU值修改扩大。
所以将 MTU 设定为 9000 这种事情,大概仅能在内部网络的环境中作。举例来说,很多的内部集群系统 (cluster) 就将他们的内部网络环境 MTU 设定为 9000,但是对外的适配卡可还是原本的标准 1500 喔!
也就是说,不论你的网络媒体支持 MTU 到多大,你必须要考虑到你的封包需要传到目的地时, 所需要经过的所有网络媒体,然后再来决定你的 MTU 设定才行。
二、Windows/Linux下修改MTU
Linux
方法1:命令行修改,临时生效
ifconfig $[interface] mtu $[size] up
实例:ifconfig eth0 mtu 1500 up
优点:所有Linux发行版通用;
缺点:重启后失效。
方法2:修改配置文件,永久有效
vi /etc/sysconfig/network-scritps/ifcfg-eth0
MTU=“1500”
service network restart
Windows
>netsh interface ipv4 show subinterfaces
>netsh interface ipv4 set subinterface "连接名" mtu=1500 store=persistent
三、参考
Linux下修改MTU(最大传输单元)
https://www.cnblogs.com/autopenguin/p/15429434.html
Linux下查看与修改mtu值
https://www.cnblogs.com/wjoyxt/p/6873714.html
Windows系统下设置mtu值的方法
https://www.cnblogs.com/yelanggu/p/11356775.html
鸟哥的Linux私房菜:基础学习篇 第四版
https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content
Windows 修改网卡 MTU 值,提升网速
https://baijiahao.baidu.com/s?id=1726969566552115251
如何為網路找到適合的 MTU 大小?
https://www.tp-link.com/tw/support/faq/190/
为什么以太网无法接收大于1500字节的数据包?
https://www.zhihu.com/question/21524257/answer/118266374
Why the MTU size is 1500 ?
https://community.cisco.com/t5/other-network-architecture-subjects/why-the-mtu-size-is-1500/td-p/105418
更多推荐
所有评论(0)