产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面产品方案中心
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

MTU是什么

MTU是网络调节的重要因素,通过调节MTU能够达到优化网络传输性能的效果。本文主要介绍了MTU的概念、MTU的作用、MTU在网络传输中的具体表现,并结合应用场景分析了MTU设置时需要注意的要点。

  • 发布时间:2022-11-25

  • 点击量:

  • 点赞:

分享至

我想评论

1 MTU的概念
MTU,全称为Maximum Transmission Unit,即最大传输单元,它是数据链路层的概念,指以太网数据通信时,链路层上一次性允许通过或转发的数据帧的最大尺寸。MTU通常与通信接口关联,即同一设备的不同接收/转发接口的MTU值可能不同。MTU值一般以字节为单位,常见结构和字节占比如下图所示。
图1-1 以太网报文结构
                                                                             
MTU的定义在不同的厂商之间存在一些差异,主要有如下几种定义:
(1) 方式一:MTU = IP Header + 有效数据载荷(IP Payload),例如在锐捷网络的部分设备中均采用此类定义;
(2) 方式二:MTU = IP Header + 有效数据载荷(IP Payload) + 以太网帧头(14byte),例如在Cisco的部分设备中即采用此类定义;
(3) 方式三:MTU = IP Header + 有效数据载荷(IP Payload) + 以太网帧头(14byte) + CRC校验(4byte),例如在Juniper的部分设备上即采用了此类定义。
由于MTU限制了链路层一次性转发的数据帧尺寸,当数据包尺寸大于接收端MTU值时,就需要对数据包进行拆分传输,或者直接丢弃。拆分传输的过程也称为分片,即在网络层将数据包分解为若干个尺寸小于或等于MTU值的小的数据包,每个分片数据包都会带有一个IP报头,这些被拆分后的小的数据包称为数据碎片。在拆分传输完成后,需要对各数据碎片进行重组,通过各分片IP报头中的标识位、偏移量信息,能够唯一标识特定数据包的特定数据碎片,然后即可按序完成数据包重组。但是,分片和重组过程会增加额外的资源消耗,加重网络传输的负担。
                                                                     
2 MTU的作用和具体表现
MTU值决定了网络中一次性传输的数据量大小,如果MTU设置的过大,意味着所能一次性传输的数据包中的有效数据占比更大,通信效率更高,但同时也会加大传输延时和出错概率,降低传输可靠性,传输出错后重传还会耗费较大的网络资源。如果MTU设置的过小,对于较大尺寸数据包需要进行分片处理,增加数据包处理量,且分片和重组过程还会增加额外的资源消耗,加重网络传输的负担。因此,对于不同场景,设置合适的MTU值,能够达到提高网络传输性能的效果。
数据转发时MTU取值不同,数据转发表现也不同,主要有以下三种场景:
(1) MTU值大于所转发数据包大小
设备能够直接转发数据包,而不需要分片。此时,假设MTU设置为6000,则在不分片情况下,若采用方式一的MTU定义,则允许转发的IP数据包尺寸最大为60018byte,假设链路带宽为10Mbps,则传送一帧数据最大可能耗时如下(不考虑其它时间消耗):
60018 / (10 * 2^20)≈0.005s
即传输一帧数据需要独占带宽5ms,在此期间其它进程无法发送数据,影响网络流畅性。若是在链路带宽更低情况下,发送一帧数据占用的时间会更大,网络流畅性会受到更大影响;若是在链路带宽较高时,这种影响则会相对较小。因此,根据实际情况合理设置MTU,能够优化网络传输性能。
(2) MTU值小于所转发数据包大小且允许分片
设备对数据包进行拆分并转发。此时,若MTU为一个较小的值100,采用方式一的MTU定义。假设传送一个尺寸大于1018byte的IP数据包,需要对数据包进行分片处理,分片方式如下图所示。
图2-1 IP数据包分片方式示意图

                                                               
拆分后的每个数据碎片中都会携带一个IP报文头部(20byte),用于标识数据碎片所属数据包及在数据包中的位置。因此,对于拆分前的数据包来说,在不考虑传送多个数据包带来的时间消耗外,对于单个分片来说,其传输效率为:
(100 – 20)/100 = 0.8
多传送的IP报文头部会降低传送效率,MTU设置越小,传输效率越低。因此,通过调整MTU值,可以改善数据传输效率。
(3) MTU值小于所转发数据包大小,且设置禁止分片。
设备直接丢弃数据包,不转发。此时,若想正常传送数据包,就需要上调MTU值。
此外,MTU的设置还会影响网络中PMTU和TCP MSS的值的大小:
(1) PMTU
PMTU全称为Path Maximum Transmission Unit,即路径MTU。对于一条IP路径,其MTU值是指在不分片情况下路径上所能传输的最大数据包尺寸,等于该路径上的最小MTU值,所以PMTU的值由路径上所有MTU共同决定。通过MTU间接改变PMTU值,就能够有效避免分片重组,提高网络带宽的利用率。
(2) TCP MSS
MSS全称为Maximum Segment Size,即最大报文段长度,是指一个TCP报文的数据载荷的最大长度。为了达到最佳的传输性能,对接双方会在TCP建立连接时进行MSS协商,而TCP MSS的值则依赖于MTU计算得到,计算方式如下:
TCP MSS = 对端接口的IP MTU – IP报文头(20byte) – TCP报文头(20byte)
图2-2 以太网报文中TCP MSS定义示意图

                                                                           
不同厂商对设备上实际生效的TCP MSS值的设置存在差异。例如,在锐捷网络的设备中允许用户手动设置TCP MSS值,同时,为了降低人为设置的风险,设置实际生效的TCP MSS是从根据MTU计算得到的MSS和用户配置的TCP MSS中取较小值。
                                                                          
3 MTU设置
MTU设置时,首先需要确认设备是否允许分片。若设备不允许分片,则需要确保MTU值大于所需传送的数据包尺寸,否则数据包会被丢弃。若设备支持分片,为了尽量避免因分片带来的资源消耗,MTU设置的基本原则为:对接两台设备的MTU值应保持同步,同时根据网络带宽进行设置,即网络带宽高,则可增大MTU值,若网络带宽较低,为保证数据传输流畅性,MTU设置值不宜太高。此外,还需要考虑其它因素或场景的影响。
(1) 对于MTU值,一般设备的默认值往往是比较合适的设置。不同链路介质类型的网络有不同的默认MTU值,下表中为一些常见网络的默认MTU值。
表3-1 各类网络默认MTU值

网络类型

MTUbyte

以太网

1500

IEEE 802.4

8166

IEEE 802.3

1492

FDDI

4352

Token Ring16Mbps

17914

Token Ring4Mbps

4464

X2.5

576

PPP

296

                                                                                     
(2) 对接设备间MTU定义方式不同或报文携带标签
对接双方厂商不同时,MTU定义方式可能存在差异,因此,需要保证双方MTU定义重合部分保持一致。例如,锐捷网络的设备(采用方式一定义)与Cisco设备(采用方式二定义)对接时,若锐捷网络的设备MTU设置为1450,则对接的Cisco设备MTU值应设置为1464。
数据帧中携带Tag的情况,例如在MPLS网络中,数据包会增加MPLS Tag,且Tag所占字节也计入MTU中,所以在设置MTU时还需要考虑Tag所占的字节大小。
(3) 交换、路由等网络设备的MTU设置
对于普通的交换、路由设备,默认MTU值通常是比较合适的值,一般为1500byte。对于骨干网、城域网、接入网等网络中的大型网络设备,其数据吞吐量较大,数据转发要求也较高,一般能够支持9000byte以上的最大传输量,因此,在对接双方硬件支持条件下,MTU应设置尽量大。
(4) 多种业务混合使用场景下设备MTU设置
多种业务混合使用时,MTU设置需要综合考虑业务应用和带宽大小。如果其中一种业务的实时性要求较高且数据长度较小,如语音传输,而另一种业务的数据对实时性要求不高,但数据长度较大占用比较大的带宽资源,如FTP数据传输。此时,将MTU设置得比较小,将有利于不同业务数据对于带宽的平均分配。
(5) 设备厂商对于MTU设置的限制
对于一些设备,厂商可能会对MTU的配置提供一些特殊限制或设置,需要参考厂商提供的产品配套资料中的提示进行配置。例如,在锐捷网络的交换机上,需要注意以下几点:
设备允许配置系统MTU和接口MTU。配置系统MTU时,设备会自动更新所有以太网口的MTU值,但不覆盖已经配置接口MTU的设置;配置接口MTU值时,MTU值需要小于或等于其实际物理接口配置的MTU值,否则会导致长度超过物理接口MTU的数据包被丢弃。
在同一物理网段上的设备,其互连接口的IP MTU必须保持一致,否则可能出现数据无法传输的问题。
在进行大吞吐量数据交换时,设备还支持调高MTU以处理大于以太网标准帧长(1500 byte)的数据帧,即Jumbo帧,在提高网络吞吐率,降低设备CPU负担的同时,也能保证数据的正常接收和处理。
                                                                             
4 总结
对于MTU值,一般默认值是比较合理的设置,但在一些如游戏卡机、网页部分打不开、大文档发送不了等由MTU设置问题导致网络性能变差或有特殊数据传输需求的场景下,默认MTU值可能无法满足需求,此时可以通过修改MTU值来改善网络传输性能。在设置MTU时,除了要考虑对接的对象及自身设备所允许的MTU设置范围,还需要综合考虑网络带宽、厂商特殊设定、应用场景等因素,避免因联动关系导致出现新的网络问题。
                                                                                       

任何需要,请联系我们

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式
是否找到您想要的内容?
您遇到了什么问题?
找不到想要的信息
筛选功能不好用
加载速度太慢
页面体验差
提交
您是否找到了与产品相关的文档
筛选功能是否帮助您更快找到所需的文档?
有帮助
一般
没有帮助
没用过
请问您遇到了什么问题?
需要填写的内容太多
有些信息不懂怎么填
页面有问题/错误
其他
确定
这些客户案例是否对您有帮助?
非常有帮助
比较有帮助
没有帮助
请您对这个客户案例进行评价
兴趣度
相关性
可信度
确定
感谢您的反馈!
感谢您的反馈!