20201216-2层MTU和IP MTU
20201216-2層MTU和IP MTU
{1}二層MTU
[1]2層MTU介紹
指數(shù)據(jù)鏈路層提供給其上層(IP/MPLS等)最大傳輸數(shù)據(jù)的大小,單位字節(jié),不能修改。
不同的協(xié)議要求的MTU大小不同。比如:
- IEEE802.3/802.2最大MTU 1492,(還有8個(gè)字節(jié)是UDP頭部)
- 以太網(wǎng)口的MTU,范圍是64-1518字節(jié),過大或過小的以太網(wǎng)幀都可能被丟棄。
- IP協(xié)議會(huì)根據(jù)二層MTU的值來決定是否對(duì)數(shù)據(jù)進(jìn)行分片,兩臺(tái)PC之間的路由會(huì)經(jīng)過很多跳,其中MTU最小的決定了傳輸速率。
 數(shù)據(jù)鏈路上經(jīng)過的MTU到達(dá)交換設(shè)備,若數(shù)據(jù)幀長(zhǎng)度大于交換機(jī)設(shè)備2層 MTU,則交換機(jī)直接丟掉,本質(zhì)原因?yàn)閿?shù)據(jù)鏈路層并沒有分片分段機(jī)制(沒有像IP層有片偏移,TCP層有序列號(hào)),UDP沒有分段機(jī)制,所以UDP的數(shù)據(jù)包只能靠IP層去分片。
[2]2層幀類型
<1>常幀數(shù)據(jù)鏈路層幀:
8+6+6+2+1500+4= 1526字節(jié)<2>小巨型幀
(Baby giant或baby jumbo frames), 是只比IEEE以太網(wǎng)標(biāo)準(zhǔn)所限定的體積稍大的以太網(wǎng)幀。小巨型幀是為使IP/[MPLS](https://baike.baidu.com/item/MPLS)能通過以太網(wǎng)幀直接傳輸?shù)揭蕴W(wǎng)服務(wù)而準(zhǔn)備。大多數(shù)實(shí)現(xiàn)要求將非巨型的用戶幀封裝為MPLS幀格式以使其可以被封裝成適當(dāng)?shù)囊蕴W(wǎng)幀格式(以太類型值為0x8847和0x8848)。額外的MPLS和以太網(wǎng)頭開銷意味著支持1600字節(jié)的幀是運(yùn)營(yíng)商以太網(wǎng)網(wǎng)絡(luò)中的一項(xiàng)強(qiáng)制性要求。<3>超巨型幀
(Super jumbo frames,簡(jiǎn)稱SJF),通常被認(rèn)為是[有效負(fù)載](https://baike.baidu.com/item/%E6%9C%89%E6%95%88%E8%B4%9F%E8%BD%BD)大小超過**9000字節(jié)**的幀。<br /> 巨型幀優(yōu)點(diǎn):<br /> 巨型幀把以太網(wǎng)的最大幀長(zhǎng)擴(kuò)展到了9K,幾乎把以前的最大幀長(zhǎng)擴(kuò)展了6倍。加大幀長(zhǎng)的好處在于,減少了網(wǎng)絡(luò)中數(shù)據(jù)包的個(gè)數(shù),減輕了網(wǎng)絡(luò)設(shè)備處理包頭的額外開銷。經(jīng)過測(cè)試,在傳統(tǒng)的千兆以太網(wǎng)中,每秒大約有81,000個(gè)數(shù)據(jù)包流經(jīng)網(wǎng)絡(luò),而在使用了巨型幀的網(wǎng)絡(luò)中,這個(gè)數(shù)字減少為14,000。在萬(wàn)兆網(wǎng)絡(luò)中,這個(gè)對(duì)比更加強(qiáng)烈,標(biāo)準(zhǔn)的網(wǎng)絡(luò)中幀長(zhǎng)為標(biāo)準(zhǔn)1518的幀每秒有812,000個(gè),而采用了巨型幀技術(shù)的網(wǎng)絡(luò)上僅僅只有14,000個(gè)。大量減少的幀數(shù)目必將帶來性能的提高。這樣顯著的性能提高,引起了各個(gè)廠商的興趣。無論是系統(tǒng)吞吐量還是對(duì)CPU的占用率,相比傳統(tǒng)以太網(wǎng)的幀來說,巨型幀都占有極大的優(yōu)勢(shì)。<br /> 巨型幀缺點(diǎn):<br /> 可能會(huì)成為[融合網(wǎng)](https://baike.baidu.com/item/%E8%9E%8D%E5%90%88%E7%BD%91/7183347)絡(luò)的障礙。如果人們?cè)诰W(wǎng)絡(luò)上傳送語(yǔ)音或其他對(duì)延遲敏感的內(nèi)容,不需要有妨礙這些對(duì)延遲敏感數(shù)據(jù)的超長(zhǎng)幀傳輸。比如,超長(zhǎng)幀會(huì)造成延遲,一旦一個(gè)‘大家伙’在線路上傳送,它會(huì)較長(zhǎng)時(shí)間占用線路,阻止其他人使用線路,從而造成延遲。 <br /> Internet連接不支持超長(zhǎng)幀:一個(gè)長(zhǎng)度超過Internet連接所支持長(zhǎng)度的幀將在發(fā)送前被分段,從而大大降低了Internet連接的性能和可靠性。這導(dǎo)致需要每一個(gè)工作站都必須知道哪個(gè)數(shù)據(jù)包傳送到本地網(wǎng)絡(luò),哪個(gè)數(shù)據(jù)包傳送到Internet。為了檢測(cè)線路上的最大數(shù)據(jù)包長(zhǎng)度,IP執(zhí)行MTU路由發(fā)現(xiàn)算法,但是,這不是標(biāo)準(zhǔn)化的作法,并且,由于拒絕服務(wù)攻擊,許多防火墻不允許與這種算法有關(guān)的ICMP數(shù)據(jù)包通過。因此,超長(zhǎng)幀不能在與Internet連接的網(wǎng)絡(luò)中使用。支持巨型幀需要新的硬件,這也導(dǎo)致了今天巨型幀主要在一些特殊環(huán)境使用,比如在服務(wù)器場(chǎng)用于數(shù)據(jù)的傳輸。<4>針對(duì)幀過大分組導(dǎo)致CPU負(fù)載的改良
使用巨型幀從而加快交換機(jī)的二層轉(zhuǎn)發(fā)性能,對(duì)于常規(guī)以太網(wǎng)幀也可以有改良方法,通過幀卸載<br /> 大段卸載(LSO) <br /> 大接收卸載(LRO)[3]2層MTU服務(wù)端修改
2層mtu僅作用在數(shù)據(jù)鏈路層,且需要經(jīng)過的每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)階段都要修改才能保證,mtu全部節(jié)點(diǎn)發(fā)包性能最優(yōu)。常規(guī)數(shù)據(jù)幀大小在1500字節(jié)左右,要開啟超過1500字節(jié)大小數(shù)據(jù)鏈路層支持,需服務(wù)端開啟數(shù)據(jù)幀功能,否則,常規(guī)未開啟巨型幀,發(fā)送3000字節(jié)ping信息,在數(shù)據(jù)包由發(fā)送服務(wù)器發(fā)送到網(wǎng)卡驅(qū)動(dòng),會(huì)在發(fā)送前進(jìn)行分片
----------------------------------------------------------------------------------------------------------------
我在我的機(jī)器(192.168.0.90)的CMD窗口中執(zhí)行“ping 192.168.0.1 -l 3000 -n 1”命令,同時(shí)在科來網(wǎng)絡(luò)分析系統(tǒng)中設(shè)定一個(gè)過濾器,只捕獲從192.168.0.90到192.168.0.1的單方向數(shù)據(jù),由于3000遠(yuǎn)遠(yuǎn)大于了以太網(wǎng)的MTU值(默認(rèn)mtu1500),所以它會(huì)被分段傳輸。這時(shí)我們來看捕獲到的數(shù)據(jù)包,如圖1所示。
一共捕獲了3個(gè)數(shù)據(jù)包
數(shù)據(jù)包編號(hào)? ? ? ? IP分段標(biāo)志? ? ? ? IP偏移量? ? ? ? 傳輸數(shù)據(jù)
1? ? ? ? 更多分段置1? ? ? ? 0 0字節(jié)? ? ? ? 1518-14-20-8-4=1472
2? ? ? ? 更多分段置1? ? ? ? 185 1480字節(jié)? ? ? ? 1518-14-20-4=1480
3? ? ? ? 更多分段置0? ? ? ? 370 2960字節(jié) ? ? ?86-14-20-4=48
ping 192.168.0.1 -l 3000 -n 1 : -l 3000表示有效數(shù)據(jù)為3000個(gè)字節(jié)
1個(gè)偏移量bit占8個(gè)字節(jié)
1472+1480+48=3000 字節(jié)
1518總字節(jié) = 1500字節(jié)[MTU]+14字節(jié)(6字節(jié)[源mac]+6字節(jié)[目的mac]+2字節(jié)[2層幀類型])+4字節(jié)[以太網(wǎng)CRC]
1472字節(jié) = 1518[總字節(jié)]-14字節(jié)(6字節(jié)[源mac]+6字節(jié)[目的mac]+2字節(jié)[2層幀類型])-20字節(jié)[ip報(bào)文頭]-8字節(jié)[icmp包頭]-4字節(jié)[以太網(wǎng)CRC]
1480字節(jié) = 1518[總字節(jié)]-14字節(jié)(6字節(jié)[源mac]+6字節(jié)[目的mac]+2字節(jié)[2層幀類型])-20字節(jié)[ip報(bào)文頭]-4字節(jié)[以太網(wǎng)CRC]
48字節(jié)= 86[剩余字節(jié)]-14字節(jié)(6字節(jié)[源mac]+6字節(jié)[目的mac]+2字節(jié)[2層幀類型])-20字節(jié)[ip報(bào)文頭]-4字節(jié)[以太網(wǎng)CRC]
-----------------------------------------------------------------------------------------------------------
<1>windows 開啟jumbo幀



開啟巨型幀大小可自行修改,保持整個(gè)通信鏈路中保持一致就OK
<2> linux開啟巨型幀
舉例: ubuntu18.04 開啟 mtu 9000
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(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交換機(jī)修改
<1>思科2層MTU修改
二層MTU可以通過Qos或者基于端口進(jìn)行配置。目前只有 Nexus 7000, 7700, 9300, 和 9500 支持端口配置 MTU。
Nexus 3048, 3064, 3100, 3500, 5000, 5500, 及 6000 配置方式此配置會(huì)對(duì)所有接口生效
Nexus 7000, 7700, 9300, 及 9500 配置方式
以下為基于接口的配置方式:
Nexus 2000 配置
注意,Nexus 2000 MTU 配置需要在其父 FEX 交換機(jī)上進(jìn)行配置,如果父交換機(jī)支持接口下配置MTU,則在對(duì)應(yīng)接口下配置,如果不支持,則需要使用network-qos。
需要注意,使用 FEX 時(shí),Fabric Port Channel (FPC) ,也就是連接 FEX 的端口聚合組也需要配置 MTU
interface port-channel136switchport mode fex-fabricfex associate 136vpc 136mtu 9216注意: 在 6.2 版本以后,Nexus 7000 不支持給 Fabric Port Channel 接口直接配置MTU,必須創(chuàng)建一個(gè) QoS 策略來全局調(diào)整 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 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 usecNexus 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 usecCatalyst 4500系列交換機(jī)
已知可用交換機(jī)版本:C4506 IOS 12.2
Cisco C4500系列交換機(jī)請(qǐng)檢查板卡兼容性,一些老設(shè)備可能無法支持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或者
<2>華為2層MTU修改
華為
S1700,2700,5700,CE系列
二層接口MTU
命令支持Ethernet接口視圖、GE接口視圖、XGE接口視圖、MultiGE接口視圖、40GE接口視圖、端口組視圖、Eth-Trunk接口視圖
<3>華三2層MTU修改
華三
S6300、S5800、S7500、S10500、S5120
二層接口MTU
{2} IP MTU
[1] 3層MTU介紹
IP MTU又叫3層MTU, 字節(jié)范圍(68-65535字節(jié))
網(wǎng)絡(luò)層的上層協(xié)議(如TCP/IP),網(wǎng)絡(luò)層IP協(xié)議會(huì)檢查每個(gè)從上層協(xié)議下來的數(shù)據(jù)包的大小,并根據(jù)本機(jī)MTU的大小決定是否作“分片”處理。分片會(huì)導(dǎo)致傳輸性能降低,另外有些高層要求本層數(shù)據(jù)包不能切片,則會(huì)在IP數(shù)據(jù)包包頭里面加上一個(gè)標(biāo)簽:DF(Do not Fragment)。這樣會(huì)造成,當(dāng)這個(gè)數(shù)據(jù)包傳輸過程中遇到MTU小于IP數(shù)據(jù)包的情況,轉(zhuǎn)發(fā)設(shè)備就會(huì)根據(jù)要求丟棄這個(gè)數(shù)據(jù)包,然后返回一個(gè)錯(cuò)誤信息給發(fā)送者。
[2]3層MTU修改
<1>思科3層MTU修改
三層 MTU
SVI 接口配置:
三層物理接口配置:
Switch(config)#interface ethernet 1/1 Switch(config-if)#no switchport Switch(config-if)#mtu 9216三層 MTU
所有 Nexus 系列交換機(jī)都可以通過show interface eth x/y命令來查看接口 MTU:
使用 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
接口下(接口下優(yōu)先):
<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某些設(shè)備需要重啟接口生效:[HUAWEI-GigabitEthernet0/0/1] restart
<3>華三3層MTU修改
H3C] interface Vlanif 100 [H3C-Vlanif100] mtu 1600 在某些軟件版本下,需要使用 ip mtu 1600 命令來調(diào)整<4>銳捷3層MTU修改
interface interface AggregatePort 10 no switchport mtu 9216{3}MSS
Maximum Segment Size 最大傳輸大小,TCP分段使用,tcp協(xié)議中,MSS是可協(xié)商項(xiàng), 不包含TCP頭和option,只包含TCP payload, TCP用來限制自己每次發(fā)送的最大分段尺寸。MTU大小影響TCP分片的大小。一般需要盡量減少TCP分片,否則發(fā)送和接收路由器需要花費(fèi)更多的資源來處理分片和重組。
-----------------------------------------------------
IP = IP header(20字節(jié)) + TCP(1480字節(jié)) = 1500字節(jié)
TCP = TCP header(20字節(jié)) + TCP Payload(1460字節(jié)) = 1480字節(jié)
MSS = TCP Payload(1460字節(jié))
---------------------------------------------------------
TCP在三次握手的第一個(gè)SYN消息有一個(gè)選項(xiàng) option 4, 通告雙方的MSS,如果一方MSS=1460,而另一方MSS=9000,會(huì)選擇較小的一方即1460作為這個(gè)TCP連接的MSS;
MSS = 最小值 { 1460, 8960 } = 1460
MSS只是解決路徑上第一跳的MTU問題,不能保證由于路徑有更小的MTU導(dǎo)致的分片
參考文章:
https://www.halfcoffee.com/2017/09/18/MTU/ #交換機(jī)MTU總結(jié)
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分片關(guān)系
http://www.xitongcheng.com/jiaocheng/dnrj_article_16788.html #windows調(diào)整巨型幀
總結(jié)
以上是生活随笔為你收集整理的20201216-2层MTU和IP MTU的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker安装gitlab中文版(gi
- 下一篇: 【分布式核心技术】RabbitMQ技术入