幾個(gè)概念:
- 二層MTU:
Maximum Transmit Unit,最大傳輸單元鸽粉,指數(shù)據(jù)鏈路層提供給其上層(IP/MPLS等)最大傳輸數(shù)據(jù)的大小斜脂,單位字節(jié)。
不同的協(xié)議要求的MTU大小不同触机。比如:
- IEEE802.3/802.2最大MTU 1492.
- 以太網(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最小的決定了傳輸速率椒舵。
IP MTU:范圍是(68-65535)
網(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ā)送者醋粟。MSS:Maximum Segment Size 靡菇,最大分段大小,不包含TCP頭和 option米愿,只包含TCP Payload 厦凤,TCP用來限制自己每次發(fā)送的最大分段尺寸。MTU大小影響TCP分片的大小育苟。一般需要盡量減少TCP分片较鼓,否則發(fā)送和接收路由器需要花費(fèi)更多的資源來處理分片和重組。
MSS: Maximum Segmeant Size 最大傳輸大小违柏,在TCP協(xié)議中博烂,MSS是可協(xié)商項(xiàng).三者的關(guān)系
舉例來說,MTU=1500漱竖,即IP包的尺寸<=1500禽篱,可以不分片從這個(gè)網(wǎng)絡(luò)接口發(fā)送,否則就需要分片馍惹。
公式如下:
IP = IP Header + TCP = 20 + 1480 = 1500
TCP = TCP Header + TCP Payload = 20 + 1460 = 1480
這里TCP Payload = 1460 = MSS
就是說:
MSS= MTU - IP Header - TCP Header = 1500 - 20 -20 =1460
TCP 在三次握手的第一個(gè)SYN消息中有一個(gè)選項(xiàng)option 4躺率,通告雙方的MSS,如果一方MSS=1460讼积,而另一方的MSS=9000肥照,會(huì)選擇較小的一方即1460作為這個(gè)TCP連接的MSS:
MSS =minimum{MSSs ,MSSr}
則 MSS = 最小值 { 1460勤众,8960 }= 1460
注意舆绎,MSS只是解決路徑上第一跳的MTU問題,不能保證由于路徑中有更小的MTU導(dǎo)致的分片们颜。
什么時(shí)候用配置大MTU值吕朵?
比如在數(shù)據(jù)中心,MTU經(jīng)常設(shè)置為大于8192字節(jié)窥突。 這是因?yàn)镹FS網(wǎng)絡(luò)服務(wù)器之間的數(shù)據(jù)讀取努溃、存儲(chǔ)最小單位是磁盤扇區(qū),而服務(wù)器扇區(qū)多用8192阻问,而且為了避免被分片梧税,發(fā)送這些扇區(qū)數(shù)據(jù)的IP包的DF設(shè)置為1,意思是不允許分片。這里整個(gè)數(shù)據(jù)中心的MTU都要設(shè)置為大于8192第队,再加上IP 頭哮塞,UDP頭,文件系統(tǒng)頭等凳谦,一般設(shè)置9000就好了忆畅。
案例:
在華為路由器上,接口配置mtu 9000尸执,我們可以看到:端口下配置的是IP MTU家凯,配置成9000字節(jié)后, 二層MTU自動(dòng)變成9600.
[~ar01]disp int g0/2/0
GigabitEthernet0/2/0 current state : UP (ifindex: 6)
Line protocol current state : UP
Last line protocol up time : 2019-10-08 05:14:19
Link quality grade : GOOD
Route Port,The Maximum Transmit Unit(L3) is 9000 bytes, The Maximum Receive Unit(L2) is 9600 bytes
Internet Address is .....
[~ar01] disp ip int g0/2/0
GigabitEthernet0/2/0 current state : UP
Line protocol current state : UP
The Maximum Transmit Unit : 9000 bytes
input packets : 1470020, bytes : 93544273, multicasts : 0
在思科NCS上如失,端口配置MTU 9014绊诲,可以看到:MTU is 9014 (9000 is available to IP)
RP/0/RP0/CPU0:ncs01#sh int tenGigE 0/0/0/12
Mon Nov 25 16:19:27.790 UTC
TenGigE0/0/0/12 is up, line protocol is up
Interface state transitions: 9
Hardware is TenGigE, address is b402.1615.a030 (bia b402.1615.a030)
Internet address is ...
MTU 9014 bytes, BW 10000000 Kbit (Max: 10000000 Kbit)
reliability 235/255, txload 0/255, rxload 0/255
...
RP/0/RP0/CPU0:ncs01#sh ipv4 int tenGigE 0/0/0/12
Mon Nov 25 16:20:09.183 UTC
TenGigE0/0/0/12 is Up, ipv4 protocol is Up
Vrf is default (vrfid 0x60000000)
Internet address is 94.247.86.237/31
MTU is 9014 (9000 is available to IP)
...