20201216-2层MTU和IP MTU

{1}二层MTU

[1]2层MTU介绍

指数据链路层提供给其上层(IP/MPLS等)最大传输数据的大小,单位字节,不能修改。
不同的协议要求的MTU大小不同。比如:

  • IEEE802.3/802.2最大MTU 1492,(还有8个字节是UDP头部)
  • 以太网口的MTU,范围是64-1518字节,过大或过小的以太网帧都可能被丢弃。
  • IP协议会根据二层MTU的值来决定是否对数据进行分片,两台PC之间的路由会经过很多跳,其中MTU最小的决定了传输速率。

![图片.png](https://img-blog.csdnimg.cn/img_convert/3c915ccbe5391ef8f5c2a410d2caa0e1.png#align=left&display=inline&height=99&margin=[object Object]&name=图片.png&originHeight=198&originWidth=1793&size=95039&status=done&style=none&width=896.5) 数据链路上经过的MTU到达交换设备,若数据帧长度大于交换机设备2层 MTU,则交换机直接丢掉,本质原因为数据链路层并没有分片分段机制(没有像IP层有片偏移,TCP层有序列号),UDP没有分段机制,所以UDP的数据包只能靠IP层去分片。

[2]2层帧类型

<1>常帧数据链路层帧:

  8+6+6+2+1500+4= 1526字节

<2>小巨型帧

  (Baby giant或baby jumbo frames), 是只比IEEE以太网标准所限定的体积稍大的以太网帧。小巨型帧是为使IP/[MPLS](https://baike.baidu.com/item/MPLS)能通过以太网帧直接传输到以太网服务而准备。大多数实现要求将非巨型的用户帧封装为MPLS帧格式以使其可以被封装成适当的以太网帧格式(以太类型值为0x8847和0x8848)。额外的MPLS和以太网头开销意味着支持1600字节的帧是运营商以太网网络中的一项强制性要求。

<3>超巨型帧

(Super jumbo frames,简称SJF),通常被认为是[有效负载](https://baike.baidu.com/item/%E6%9C%89%E6%95%88%E8%B4%9F%E8%BD%BD)大小超过**9000字节**的帧。<br />  巨型帧优点:<br />     巨型帧把以太网的最大帧长扩展到了9K,几乎把以前的最大帧长扩展了6倍。加大帧长的好处在于,减少了网络中数据包的个数,减轻了网络设备处理包头的额外开销。经过测试,在传统的千兆以太网中,每秒大约有81,000个数据包流经网络,而在使用了巨型帧的网络中,这个数字减少为14,000。在万兆网络中,这个对比更加强烈,标准的网络中帧长为标准1518的帧每秒有812,000个,而采用了巨型帧技术的网络上仅仅只有14,000个。大量减少的帧数目必将带来性能的提高。这样显著的性能提高,引起了各个厂商的兴趣。无论是系统吞吐量还是对CPU的占用率,相比传统以太网的帧来说,巨型帧都占有极大的优势。<br />  巨型帧缺点:<br />    可能会成为[融合网](https://baike.baidu.com/item/%E8%9E%8D%E5%90%88%E7%BD%91/7183347)络的障碍。如果人们在网络上传送语音或其他对延迟敏感的内容,不需要有妨碍这些对延迟敏感数据的超长帧传输。比如,超长帧会造成延迟,一旦一个‘大家伙’在线路上传送,它会较长时间占用线路,阻止其他人使用线路,从而造成延迟。   <br />     Internet连接不支持超长帧:一个长度超过Internet连接所支持长度的帧将在发送前被分段,从而大大降低了Internet连接的性能和可靠性。这导致需要每一个工作站都必须知道哪个数据包传送到本地网络,哪个数据包传送到Internet。为了检测线路上的最大数据包长度,IP执行MTU路由发现算法,但是,这不是标准化的作法,并且,由于拒绝服务攻击,许多防火墙不允许与这种算法有关的ICMP数据包通过。因此,超长帧不能在与Internet连接的网络中使用。支持巨型帧需要新的硬件,这也导致了今天巨型帧主要在一些特殊环境使用,比如在服务器场用于数据的传输。

<4>针对帧过大分组导致CPU负载的改良

使用巨型帧从而加快交换机的二层转发性能,对于常规以太网帧也可以有改良方法,通过帧卸载<br />     大段卸载(LSO)  <br />     大接收卸载(LRO)

[3]2层MTU服务端修改

2层mtu仅作用在数据链路层,且需要经过的每个网络节点阶段都要修改才能保证,mtu全部节点发包性能最优。常规数据帧大小在1500字节左右,要开启超过1500字节大小数据链路层支持,需服务端开启数据帧功能,否则,常规未开启巨型帧,发送3000字节ping信息,在数据包由发送服务器发送到网卡驱动,会在发送前进行分片
----------------------------------------------------------------------------------------------------------------
我在我的机器(192.168.0.90)的CMD窗口中执行“ping 192.168.0.1 -l 3000 -n 1”命令,同时在科来网络分析系统中设定一个过滤器,只捕获从192.168.0.90到192.168.0.1的单方向数据,由于3000远远大于了以太网的MTU值(默认mtu1500),所以它会被分段传输。这时我们来看捕获到的数据包,如图1所示。
一共捕获了3个数据包
数据包编号        IP分段标志        IP偏移量        传输数据
1        更多分段置1        0  0字节        1518-14-20-8-4=1472
2        更多分段置1        185 1480字节        1518-14-20-4=1480
3        更多分段置0        370 2960字节      86-14-20-4=48

ping 192.168.0.1 -l 3000 -n 1 : -l 3000表示有效数据为3000个字节
1个偏移量bit占8个字节
1472+1480+48=3000 字节
1518总字节 = 1500字节[MTU]+14字节(6字节[源mac]+6字节[目的mac]+2字节[2层帧类型])+4字节[以太网CRC]

1472字节 = 1518[总字节]-14字节(6字节[源mac]+6字节[目的mac]+2字节[2层帧类型])-20字节[ip报文头]-8字节[icmp包头]-4字节[以太网CRC]
1480字节 = 1518[总字节]-14字节(6字节[源mac]+6字节[目的mac]+2字节[2层帧类型])-20字节[ip报文头]-4字节[以太网CRC]
48字节= 86[剩余字节]-14字节(6字节[源mac]+6字节[目的mac]+2字节[2层帧类型])-20字节[ip报文头]-4字节[以太网CRC]
-----------------------------------------------------------------------------------------------------------

<1>windows 开启jumbo帧

![图片.png](https://img-blog.csdnimg.cn/img_convert/9ae5add667cb4b5891504c59cc391890.png#align=left&display=inline&height=285&margin=[object Object]&name=图片.png&originHeight=570&originWidth=1075&size=74042&status=done&style=none&width=537.5)
![图片.png](https://img-blog.csdnimg.cn/img_convert/7bfa7f22421de8c1f2f3cdfbe6db92d3.png#align=left&display=inline&height=283&margin=[object Object]&name=图片.png&originHeight=565&originWidth=1079&size=106854&status=done&style=none&width=539.5)
![图片.png](https://img-blog.csdnimg.cn/img_convert/d47b447f615acc674e3c95aa2aa9bcfc.png#align=left&display=inline&height=287&margin=[object Object]&name=图片.png&originHeight=573&originWidth=1075&size=95458&status=done&style=none&width=537.5)
开启巨型帧大小可自行修改,保持整个通信链路中保持一致就OK

<2> linux开启巨型帧

举例: ubuntu18.04 开启 mtu 9000
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H15cbrYm-1608186843636)(https://cdn.nlark.com/yuque/0/2020/png/2803996/1608180594068-86b7e1ca-a1ba-420c-b2c9-25cd8735f441.png#align=left&display=inline&height=171&margin=%5Bobject%20Object%5D&name=%E5%9B%BE%E7%89%87.png&originHeight=341&originWidth=1163&size=101149&status=done&style=none&width=581.5)]

[4]2层MTU交换机修改

<1>思科2层MTU修改

二层MTU可以通过Qos或者基于端口进行配置。目前只有 Nexus 7000, 7700, 9300, 和 9500 支持端口配置 MTU。
Nexus 3048, 3064, 3100, 3500, 5000, 5500, 及 6000 配置方式此配置会对所有接口生效

policy-map type network-qos jumboclass type network-qos class-defaultmtu 9216
system qosservice-policy type network-qos jumbo

Nexus 7000, 7700, 9300, 及 9500 配置方式
以下为基于接口的配置方式:

Switch(config)#interface ethernet 1/1
Switch(config-if)#mtu 9216

Nexus 2000 配置

注意,Nexus 2000 MTU 配置需要在其父 FEX 交换机上进行配置,如果父交换机支持接口下配置MTU,则在对应接口下配置,如果不支持,则需要使用network-qos

需要注意,使用 FEX 时,Fabric Port Channel (FPC) ,也就是连接 FEX 的端口聚合组也需要配置 MTU

interface port-channel136switchport mode fex-fabricfex associate 136vpc 136mtu 9216

注意: 在 6.2 版本以后,Nexus 7000 不支持给 Fabric Port Channel 接口直接配置MTU,必须创建一个 QoS 策略来全局调整 MTU。

policy-map type network-qos jumboclass type network-qos class-defaultmtu 9216
system qosservice-policy type network-qos jumbo

二层 MTU
Nexus 3100, 3500, 5000, 5500, 及 6000

Nexus#show queuing interface ethernet 1/1
Ethernet1/1 queuing information:TX Queuingqos-group  sched-type  oper-bandwidth0       WRR            100RX Queuingqos-group 0q-size: 469760, HW MTU: 9216 (9216 configured)

Nexus 3000, 7000, 7700, 及 9000

Nexus#show interface ethernet 1/12
Ethernet1/12 is up
admin state is up, Dedicated InterfaceHardware: 1000/10000 Ethernet, address: 7c0e.ceca.f183 (bia 7c0e.ceca.f183)MTU 9216 bytes, BW 10000000 Kbit, DLY 10 usec

Nexus 5000, 6000, 及 7000 的 FEX 接口

Nexus#show queuing interface ethernet 136/1/1
if_slot 68, ifidx 0x1f870000
Ethernet136/1/1 queuing information:Input buffer allocation:Qos-group: 0frh: 3drop-type: dropcos: 0 1 2 3 4 5 6 7xon       xoff      buffer-size---------+---------+-----------19200     78080     90880Queueing:queue   qos-group    cos                 priority     bandwidth     mtu
--------+------------+--------------------+---------+----------------+--------3                   0        0 1 2 3 4 5 6      WRR       100       9280

**Nexus 9000 的FEX 接口 **

9396-B#show interface ethernet 104/1/1
Ethernet104/1/1 is up
admin state is up,Hardware: 100/1000 Ethernet, address: 5475.d0e0.e5c2 (bia 5475.d0e0.e5c2)MTU 9216 bytes, BW 1000000 Kbit, DLY 10 usec

Catalyst 4500系列交换机

已知可用交换机版本:C4506 IOS 12.2

Cisco C4500系列交换机请检查板卡兼容性,一些老设备可能无法支持MTU>1570 https://www.cisco.com/c/en/us/support/docs/switches/catalyst-4000-series-switches/29805-175.html#topic3
二层接口MTU(只能全局配置)
system mtu 1600
检查命令:show system mtu或者

show interface G0/0GigabitEthernet1/3 is up, line protocol is up (connected) Hardware is Gigabit Ethernet Port, address is 588d.097e.9982 (bia 588d.097e.9982)MTU 1600 bytes, BW 1000000 Kbit, DLY 10 usec, reliability 255/255, txload 6/255, rxload 21/255Encapsulation ARPA, loopback not set

<2>华为2层MTU修改

华为
S1700,2700,5700,CE系列
二层接口MTU
命令支持Ethernet接口视图、GE接口视图、XGE接口视图、MultiGE接口视图、40GE接口视图、端口组视图、Eth-Trunk接口视图

<HUAWEI> system-view
[HUAWEI] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] jumboframe enable 5000

<3>华三2层MTU修改

华三
S6300、S5800、S7500、S10500、S5120
二层接口MTU

interface G1/1
jumboframe enable 6000
! 聚合组配置 Jumbo Frame
interface Bridge-Aggregation1
jumboframe enable 6000

{2} IP MTU

[1] 3层MTU介绍

IP MTU又叫3层MTU, 字节范围(68-65535字节)
网络层的上层协议(如TCP/IP),网络层IP协议会检查每个从上层协议下来的数据包的大小,并根据本机MTU的大小决定是否作“分片”处理。分片会导致传输性能降低,另外有些高层要求本层数据包不能切片,则会在IP数据包包头里面加上一个标签:DF(Do not Fragment)。这样会造成,当这个数据包传输过程中遇到MTU小于IP数据包的情况,转发设备就会根据要求丢弃这个数据包,然后返回一个错误信息给发送者。

[2]3层MTU修改

<1>思科3层MTU修改

三层 MTU
SVI 接口配置:

Switch(config)#interface vlan 1
Switch(config-if)#mtu 9216

三层物理接口配置:

Switch(config)#interface ethernet 1/1
Switch(config-if)#no switchport
Switch(config-if)#mtu 9216

三层 MTU
所有 Nexus 系列交换机都可以通过show interface eth x/y命令来查看接口 MTU:

Nexus#show interface ethernet 1/19
Ethernet1/19 is up
Dedicated Interface
Hardware: 100/1000/10000 Ethernet, address: 547f.ee5d.413c (bia 547f.ee5d.40fa)
MTU 9216 bytes, BW 1000000 Kbit, DLY 10 usec

使用 show interface vlan X命令查看 SVI 接口MTU:

Leaf3#show interface vlan 1
Vlan1 is down (Non-routable VDC mode), line protocol is downHardware is EtherSVI, address is  547f.eed8.ec7cInternet Address is 1.1.1.1/23MTU 9216 bytes, BW 1000000 Kbit, DLY 10 usec
interface vlan 200
mtu 9000

三层接口 MTU
全局 :system mtu routing 1600
接口下(接口下优先):

interface vlan 100mtu 1600

<2>华为3层MTU修改

三层MTU

[HUAWEI] interface Vlanif 100
[HUAWEI-Vlanif100] mtu 1600
[HUAWEI] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] undo portswitch
[HUAWEI-GigabitEthernet0/0/1] mtu 1600

某些设备需要重启接口生效:[HUAWEI-GigabitEthernet0/0/1] restart

<3>华三3层MTU修改

H3C] interface Vlanif 100
[H3C-Vlanif100] mtu 1600
在某些软件版本下,需要使用 ip mtu 1600 命令来调整

<4>锐捷3层MTU修改

interface interface AggregatePort 10
no switchport
mtu 9216

{3}MSS

Maximum Segment Size 最大传输大小,TCP分段使用,tcp协议中,MSS是可协商项, 不包含TCP头和option,只包含TCP payload, TCP用来限制自己每次发送的最大分段尺寸。MTU大小影响TCP分片的大小。一般需要尽量减少TCP分片,否则发送和接收路由器需要花费更多的资源来处理分片和重组。
-----------------------------------------------------
IP = IP header(20字节) + TCP(1480字节) = 1500字节
TCP = TCP header(20字节) + TCP Payload(1460字节) = 1480字节
MSS = TCP Payload(1460字节)
---------------------------------------------------------
TCP在三次握手的第一个SYN消息有一个选项 option 4, 通告双方的MSS,如果一方MSS=1460,而另一方MSS=9000,会选择较小的一方即1460作为这个TCP连接的MSS;
MSS = 最小值 { 1460, 8960 } = 1460
MSS只是解决路径上第一跳的MTU问题,不能保证由于路径有更小的MTU导致的分片

参考文章:
https://www.halfcoffee.com/2017/09/18/MTU/ #交换机MTU总结
https://baike.baidu.com/item/%E5%B7%A8%E5%9E%8B%E5%B8%A7/8723785?fromtitle=jumbo%20frame&fromid=12630620&fr=aladdin #jumobo巨型帧
https://blog.csdn.net/yusiguyuan/article/details/22782943 #TCP分段和IP分片关系
http://www.xitongcheng.com/jiaocheng/dnrj_article_16788.html #windows调整巨型帧

20201216-2层MTU和IP MTU相关推荐

  1. MTU、IP MTU 和 MSS 参数详解

    1. 概述 本文主要分析网络通信中MTU,IP MTU和MSS的概念以及它们之间的关系.这三个概念对于网络通信来说非常重要,常常很多网页打不开等问题都是这几个参数没配置好导致的. 2. MTU 最大传 ...

  2. Linux_网络_数据链路层协议 MAC帧/ARP协议 (以太网通信原理,MAC地址与IP地址的区分,MTU对IP/TCP/IP的影响,ARP协议及其通信过程)

    文章目录 1. 以太网(基于碰撞区与碰撞检测的局域网通信标准) 2. 以太网的帧格式(MAC帧) MAC地址,IP地址的区分 MTU MTU对IP协议的影响 MTU对TCP/UDP协议的影响 3.AR ...

  3. 网络基础:数据链路层_公网i私网ip、路由通信、MTU以及ip分片

    在本章节开始前,先提出几个问题: 公网ip和私网ip的区别是什么,哪个能重复哪个不能? 如何实现两个设备之间的信息通信? 是通过公网ip查找还是私网ip查找? 路由表包含的信息有哪些? ARP协议的作 ...

  4. 有没有好奇过路由器宽带拨号的mtu值为什么是1492呢?了解MTU与IP分片

    作者:一天,公众号:网络之路博客(ID:NetworkBlog).让你的网络之路不在孤单,一起学习,一起成长. MTU与IP分片(可选内容了解) 这里来讲一个比较有趣的内容,相信大家都有设置过家用路由 ...

  5. 链路层 ---《TCP/IP协议》卷一

    第2章 链路层 2.1 引言 链路层主要有三个目的: 为IP模块发送和接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请求和接收RARP应答. 将详细讨论: 以太 ...

  6. OSI七层与TCP/IP五层

    OSI七层与TCP/IP五层网络架构详解 OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 ...

  7. ISO七层参考模型, TCP/IP

    (图片来自百度百科)(文章整理摘自百度百科) 1. ISO参考模型  ISO : (Open System Interconnection) 1. 物理层: 建立.维护.断开物理连接.(由底层网络定义 ...

  8. 网际层协议:IP协议

    网际层协议:IP IP协议的概念: IP:网络之间互连的协议 InternetProtocol IP是TCP/IP协议簇中的核心协议,也是TCP/IP的载体. 所有的TCP,UDP,ICMP及IGMP ...

  9. 什么是MTU?设置设备MTU时,需要注意哪些事项?

    什么是MTU?设置设备MTU时,需要注意哪些事项? 一.什么是MTU? 网络层一般要限制每次发送数据包的最大长度.任何时候网络层接收到一份要发送的IP数据包时,它要判断向本地哪个接口发送数据,并查询该 ...

最新文章

  1. Transformer 代码完全解读!
  2. 大一计算机期末考试高数试卷,高等数学大一期末试卷(A)及答案
  3. 定位到某个单词_【侃侃单词】词根词缀记单词-loc
  4. 不同电脑 命名管道_电脑键盘上的F1到F12,这些键都有哪些用处?用了5年总算明白了...
  5. 辅助驾驶等级_双AMR电机位置传感器,助力自动驾驶安全出行
  6. rapidxml的简单使用
  7. 健全营销体制是打造营销生态系统的命脉
  8. 裁员潮下,你需要这 10 大神器
  9. 实现32/64位Windows虚拟扫描仪自定义图片加载
  10. 计算机二级office无法评分,计算机二级OFFICE评分标准
  11. 3.4 jest使用pug
  12. 如何把mac里的照片放移动硬盘
  13. ODrive应用 #8 故障排除
  14. 图像的均值滤波、中值滤波_JAVA
  15. android 友盟微信授权2002,友盟 2002错误
  16. java 之JNLP
  17. OKALEIDO解决NFT流动性不足难题 更有创新平台通证分配方案
  18. Stata:Logit模型评介
  19. git+github
  20. 【阿里云镜像】更改阿里巴巴开源镜像站镜像源之——CentOS 7

热门文章

  1. 京东18届一年半经验社招面经
  2. 中国整体卫浴行业竞争格局分析及未来远景目标建议报告2022-2027年版
  3. HCL实验:1.两台PC通过交换机ping通
  4. sap成本流怎么看_SAP方丈-写给新手的SAP成本核算流程
  5. Midway-ModelProxy — 轻量级的接口配置建模框架
  6. 合江长江公路大桥飞燕式系杆拱桥首节主拱成功吊装
  7. matlab对信号包络的两种画法
  8. 数据结构学习——双向链表
  9. 机器视觉python推荐书籍_智能硬件与机器视觉:基于树莓派、Python和OpenCV
  10. 使用JDBC技术完成一个简单的账务管理系统