首页 > 编程知识 正文

centos修改mtu值,如何修改mtu值

时间:2023-05-06 05:26:58 阅读:224331 作者:2772

部分参考《鸟哥的Linux私房菜》http://cn.linux.vbird.org/
MTU( Maximum Transmission Unit,最大传输单位)
用来设置描述网络接口的最大传输量,需要注意的是,每个网络接口的MTU都不相同,因此你在Linux中使用ifconfig会看到有的接口会有1492bytes,
不过在以太网上,标准的定义就是1500bytes.
修改方法:
方法一:
ifconfig $[interface] mtu $[size] up
实例:ifconfig eth0 mtu 1500 up

优点:所有Linux发行版通用;
缺点:重启后失效。

方法二:修改配置文件,永久有效
vi /etc/sysconfig/network-scritps/ifcfg-eth0
MTU=“1500” #增加这条命令,保存后重启网卡生效
service network restart

MTU部分知识
我们知道IP封包最fzdmj以达到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 设定才行。

##这里穿插一些IP封包在以太网中传输方式:
在以太网中,有著名的传输协议:CSMA/CD,下图中心是集线器,各个主机都是连接到集线器,然后通过集线器向所有主机发起联机,
它们之间的通信其实就是网卡对网卡的数据交流。集线器(HUB)是一种网络共享媒体,类似于十字路口,每次只允许一辆车通过。
网络共享媒体在单一时间内,仅能被一部主机使用!

如上图所示,如果想从主机A传输数据包到主机D的话,数据包的传输情况是需要有以下流程:
1.监听媒体使用情况(Carrier Sense):A主机要发送网络封包之前,需要先对网络媒体进行监听,确认没人在使用通信链路后才能够发送讯框(frame)/数据包;

2.多点传输(Multiple Access):A主机发送出去的数据经过Hub集线器时会被复制下来并同时发送给网络中的所有主机B/C/D,B/C主机检测到目的地址不是自己便将数据包丢弃不管,而主机D会将数据包抓取下来处理;

3.碰撞侦测(Collision Detection):该数据包附有检测能力,如网络内其它主机例如B在同一时间也发送数据包,那么A和B的数据包碰撞在一起(就像过十字路口两辆车辆相撞一样),双方的数据损毁,A和B会随机等待一个时间重复1-2-3操作,重新传输一次数据包。

上面有提到CSMA/CD传送出去的讯框数据(frame)其实就是MAC,MAC上有两个很重要的数据就是目标与来源网卡卡号,所以我们一般简称网卡卡号为MAC。简单的说,可以把MAC想象成一个在网络线上面传递的包裹,而这个包裹是整个网络线路上传输的最小单位!
根据上面的传输方式我们知道,网络线相当于一个独木桥,而MAC就是要过桥的人!

下面来看看MAC的内容吧:

图中来源地址就是来源网卡卡号(hardware address 硬件地址),每张网卡出厂时都有一个独一无二的卡号(硬件地址),
其范围是00:00:00:00:00:00到FF:FF:FF:FF:FF:FF(十六进制)
这6bytes中前3个是厂商代码,后面3bytes是厂商自行设定的值。
特别注意,在这个 MAC 的传送中,他仅在局域网络内生效,如果跨过不同的网域 ,那么来源与目的的硬件地址就会跟着改变了。 这是因为变成不同网络网卡之间的交流了嘛!所以卡号当然不同了!如下图所示:

为什么资料量最小要 46 最大为 1500 bytes 呢?

讯框内的数据内容最fzdmj达 1500bytes 这我们现在知道了,那为何要规范最小数据为 46bytes 呢?这是由于 CSMA/CD 机制所算出来的! 在这个机制上面可算出若要侦测碰撞,则讯框总数据量最小得要有 64bytes ,那再扣除目的地址、来源地址、检查码 (前导码不算) 64-(6+6+4+6)后, 就可得到数据量最小得要有 46bytes 了!也就是说,如果妳要传输的数据小于 46byes ,那我们的系统会主动的填上一些填充码, 以补齐至少 46bytes 的容量才行!

以上是今天有关MTU的学习和总结。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。