Linux下查看与修改mtu值
MTU:通信術(shù)語(yǔ)
最大傳輸單元(Maximum Transmission Unit)是指一種通信協(xié)議的某一層上面所能通過(guò)的最大數(shù)據(jù)包大小(以字節(jié)為單位)。
我們?cè)谑褂没ヂ?lián)網(wǎng)時(shí)進(jìn)行的各種網(wǎng)絡(luò)操作,都是通過(guò)一個(gè)又一個(gè)“數(shù)據(jù)包”傳輸來(lái)實(shí)現(xiàn)的。而MTU指定了網(wǎng)絡(luò)中可傳輸數(shù)據(jù)包的最大尺寸,在我們常用的以太網(wǎng)中,MTU是1500字節(jié)。超過(guò)此大小的數(shù)據(jù)包就會(huì)將多余的部分拆分再單獨(dú)傳輸。
MTU的設(shè)置不是一個(gè)值天下通用,所以需要我們合理設(shè)置特殊場(chǎng)景的MTU 。
首先確認(rèn)什么是不合理的 :
1.本地MTU值大于網(wǎng)絡(luò)MTU值時(shí),本地傳輸?shù)臄?shù)據(jù)包過(guò)大導(dǎo)致網(wǎng)絡(luò)會(huì)拆包后傳輸,不但產(chǎn)生額外的數(shù)據(jù)包,而且消耗了“拆包、組包”的時(shí)間 。
2.本地MTU值小于網(wǎng)絡(luò)MTU值時(shí),本地傳輸?shù)臄?shù)據(jù)包可以直接傳輸,但是未能完全利用網(wǎng)絡(luò)給予的數(shù)據(jù)包傳輸尺寸的上限值,傳輸能力未完全發(fā)揮 。
這樣我們就知道:
所謂合理的設(shè)置MTU值,就是讓本地的MTU值與網(wǎng)絡(luò)的MTU值一致,既能完整發(fā)揮傳輸性能,又不讓數(shù)據(jù)包拆分。
檢測(cè)需要設(shè)置的合理的值:
大部分網(wǎng)絡(luò)設(shè)備都是1500。如果本機(jī)的MTU比網(wǎng)關(guān)的MTU大,大的數(shù)據(jù)包就會(huì)被拆開(kāi)來(lái)傳送,這樣會(huì)產(chǎn)生很多數(shù)據(jù)包碎片,增加丟包率,降低網(wǎng)絡(luò)速度。把本機(jī)的MTU設(shè)成比網(wǎng)關(guān)的MTU小或相同,就可以減少丟包
Linux OS:
# ping -s 1472 -M do172.21.0.118
含義:
發(fā)送大小包大小是1472(+28)字節(jié),禁止路由器拆分?jǐn)?shù)據(jù)包。 【1472 + 8(ICMP回顯示請(qǐng)求和回顯應(yīng)答報(bào)文格式長(zhǎng)度) + 20(IP首部) = 1500】
回復(fù)結(jié)果:
1.如果正?;貜?fù),說(shuō)明網(wǎng)絡(luò)允許最大MTU就是1500字節(jié),與系統(tǒng)默認(rèn)相同,只需將自己的路由的MTU也設(shè)置為1500即可。
2.如果沒(méi)正?;貜?fù),說(shuō)明數(shù)據(jù)包大小超過(guò)了網(wǎng)絡(luò)限定的MTU大小。需要減小探測(cè)包大小再次嘗試。
MTU設(shè)置與查看:
1、設(shè)置本機(jī)的mtu,即時(shí)生效,重啟后失效
#ifconfig eth0 mtu 1472
2、永久生效的修改方法,缺點(diǎn)是需要重啟網(wǎng)卡
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 增加如下內(nèi)容
MTU="9000"
# service network restart
查看設(shè)置后的結(jié)果
#netstat -i 或使用ifconfig也可以查看得到
--------------------------------------------------------------------
MSS: Maxitum Segment Size 最大分段大小
MSS最大傳輸大小的縮寫(xiě),是TCP協(xié)議里面的一個(gè)概念。
MSS就是TCP數(shù)據(jù)包每次能夠傳輸?shù)?strong>最大數(shù)據(jù)分段。為了達(dá)到最佳的傳輸效能TCP協(xié)議在建立連接的時(shí)候通常要協(xié)商雙方的MSS值,這個(gè)值TCP協(xié)議在實(shí)現(xiàn)的時(shí)候往往用MTU值代替(需要減去IP數(shù)據(jù)包包頭的大小20Bytes和TCP數(shù)據(jù)段的包頭20Bytes), 通訊雙方會(huì)根據(jù)雙方提供的MSS值得最小值確定為這次連接的最大MSS值。
而一般以太網(wǎng)MTU都為1500, 所以在以太網(wǎng)中, 往往TCP MSS為1460。
總結(jié)
以上是生活随笔為你收集整理的Linux下查看与修改mtu值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C语言编程模拟超市抹零结账,STL实践项
- 下一篇: RocketMQ介绍