在我們常用的Windows XP操作系統(tǒng)中,系統(tǒng)默認(rèn)的MTU值為1500,這是一個(gè)標(biāo)準(zhǔn)以太網(wǎng)的設(shè)置值,并不適合寬帶網(wǎng)絡(luò),而一般ADSL寬帶的MTU在1450與1492之間,系統(tǒng)與ISP之間MTU的不符就會(huì)直接導(dǎo)致數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中不斷地進(jìn)行分包、組包,浪費(fèi)了寶貴的傳輸時(shí)間,也嚴(yán)重影響了寬帶的工作效率。
MTU=最大傳輸單元 單位:字節(jié) 英文:Maximum Transmission Unit”我們平時(shí)上網(wǎng)時(shí)的各種操作,都是通過一個(gè)又一個(gè)“數(shù)據(jù)包”傳輸來實(shí)現(xiàn)的。而MTU指定了網(wǎng)絡(luò)中可傳輸數(shù)據(jù)包的最大尺寸,在我們常用的以太網(wǎng)中,MTU是1500字節(jié)。超過此大小的數(shù)據(jù)包就會(huì)將多余的部分拆分再單獨(dú)傳輸。就像貨車通過限高的橋洞一樣,貨物高度超過限制高度了,就需要卸下一些貨物,分兩批通過限高路段。
MTU跟我的網(wǎng)絡(luò)有神馬關(guān)系?
關(guān)系還是挺密切的,在windows里,默認(rèn)的MTU是1500,但是不同的網(wǎng)絡(luò)接入方式,不同地區(qū)的網(wǎng)絡(luò)運(yùn)營商,甚至不同的路由器,它們的MTU值都可能是不同的。
例如:ADSL接入時(shí)MTU為1492字節(jié),假設(shè)A需要給B傳輸3000字節(jié)數(shù)據(jù),如果整個(gè)傳輸過程中各個(gè)環(huán)節(jié)的MTU都是1500,那么2個(gè)數(shù)據(jù)包就可以傳輸完成??墒瞧@時(shí)ADSL接入方式的MTU是1492字節(jié),數(shù)據(jù)包就因?yàn)檫@個(gè)MTU差異額外拆分為3個(gè)(為了便于理解,暫時(shí)不將“數(shù)據(jù)包報(bào)頭”納入考慮范圍)顯然這額外增加了需要傳輸?shù)臄?shù)據(jù)包數(shù)量,而且拆包組包的過程也浪費(fèi)了時(shí)間。如果從本地到網(wǎng)絡(luò)采用一致的MTU就可以避免額外拆包。
我該怎么合理設(shè)置MTU呢?
更快的網(wǎng)速,這個(gè)理由夠不夠讓你折騰一趟呢?顯然是值得的,可是MTU值不是一個(gè)數(shù)字,天下通用的。所以在我們動(dòng)手設(shè)置的時(shí)候,講究一個(gè)合理!
那么什么情況下MTU值是合理的呢?我們先來看看不合理的。
1、本地MTU值大于網(wǎng)絡(luò)MTU值時(shí),本地傳輸?shù)臄?shù)據(jù)包過大導(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ù)包拆分。
MTU多少才是合理的?
操作步驟:
1、按win+r組合鍵呼叫運(yùn)行菜單,輸入cmd后回車。
2、在出現(xiàn)的“命令提示符”窗口中輸入“ping -l 1472 -f www.xitongzhijia.net”然后回車。
接下來Teamo稍微解釋下:
ping:發(fā)起一個(gè)探測(cè)請(qǐng)求;
-l(L的小寫):限制探測(cè)包大小;
1472:包大小為1472字節(jié);
-f:禁止路由器拆分?jǐn)?shù)據(jù)包;
www.xitongzhijia.net:設(shè)系統(tǒng)之家為探測(cè)目標(biāo)。
3、按下回車后,會(huì)出現(xiàn)兩種返回結(jié)果:
?。?)、如果收到了回復(fù),那么說明你的網(wǎng)絡(luò)允許最大MTU值就是1500字節(jié),與系統(tǒng)默認(rèn)值相同,只需要將路由器的MTU值也設(shè)置為1500即可。
?。?)、如果出現(xiàn)需要拆分?jǐn)?shù)據(jù)包但是設(shè)置 DF,或是Packer needs to be fragmented but DF set.的提示,那就說明數(shù)據(jù)包大小超過了網(wǎng)絡(luò)限定的MTU大小。需要減小探測(cè)包大小再次嘗試。(為了截效果圖,我將探測(cè)包改為1473了)
4、按“上箭頭”恢復(fù)剛才輸入的命令,然后以5為跨度減小包大小為1467字節(jié),再次回車探測(cè)。
5、這時(shí)同樣也有兩種可能:
?。?)、如果有返回,說明數(shù)據(jù)包小于MTU限制,就將包大小+3再次探測(cè),如果+3之后沒有返回,那就以1為跨度降低數(shù)據(jù)包大小進(jìn)行探測(cè)。
?。?)、如果還是沒有返回,就繼續(xù)以5為跨度減小包大小,直至有返回后進(jìn)行5(1)中的操作。
6、直至你發(fā)現(xiàn)數(shù)據(jù)包-1后,有了返回,就說明你探測(cè)到了MTU允許的準(zhǔn)確數(shù)據(jù)包大小。
(例如從1465降低到1464就有了返回,那么允許的數(shù)據(jù)包大小就是1464)
7、不過上面得到的值還不能設(shè)置為操作系統(tǒng)或路由器的MTU,你找到的數(shù)據(jù)包大小需要加上28字節(jié)的“數(shù)據(jù)包報(bào)頭”,才是完整的數(shù)據(jù)包尺寸。
?。ɡ纾禾綔y(cè)到的數(shù)據(jù)包大小是1464,那么加上28字節(jié),最終MTU=1492字節(jié))
8、最后,只需要將路由器和操作系統(tǒng)中的MTU值設(shè)置為你得出的結(jié)果即可進(jìn)入小極后臺(tái),高級(jí)選項(xiàng)中的MTU設(shè)置中填入測(cè)得的數(shù)值即可。
END
以上便是關(guān)于路由器MTU的設(shè)置方法以及合理的MTU值解析,當(dāng)然,理論上來說路由器MTU值設(shè)置1500即可,為了空下一些跨度空間,我們可以留下8字節(jié)。