
MTU(Maximum TransmissionUnit,最大傳輸單元)是指通信協議的某一層所能通過的最大數據包的大小(單位為字節)。對于各種路由器來說,最佳的MTU值通常都是默認值。雖然有時更改MTU值可提高路由器的工作性能,網絡速度看起來更快(一些小技巧類文章經常會提供這樣的建議),但實際上這樣做往往會導致出現其他問題,如撥號頻繁掉線、反復下載、游戲丟包等等。
因為在網絡傳輸中,每個信息都會被“ 打包”傳送,類似快遞使用的標準包裝箱、包裝袋,大小就是MT U值,這樣可以提高傳輸效率。理論上,在電腦、交換機、路由器及能訪問互聯網的所有設備上的MTU值應該設置為同一大小,比如MTU=1500。當然,這也僅僅是理論而已,因為在“打包”的過程中,局端或設備都會在每一個數據包頭加入自己的信息,占用幾個字節,這樣就不可能一路全都是MTU=1500了。
MTU設置不能一個值天下通用,所以我們講求合理設置MTU,首先要知道:
1. 本地MTU值大于網絡MTU值時,本地傳輸的數據包過大會導致網絡拆包后重新組包傳輸,不但產生額外的數據包,而且消耗了“拆包、組包”的時間。
2. 本地MTU值小于網絡MTU值時,本地傳輸的數據包可以直接傳輸,但是未能完全利用網絡給予的數據包傳輸尺寸的上限值,傳輸能力未完全發揮。
很明顯,所謂合理地設置MTU值,就是讓本地的MTU值與網絡的MTU值一致,這樣既能完整發揮傳輸性能,又可以讓數據包無需拆組,流暢傳輸(圖1)。
具體來說,一級運營商(比如聯通、電信、移動等等)的MTU都是標準的1500,所以使用光貓通過PPPOE協議直撥上網時沒有中間設備,都是默認的M T U =1500就好。但如果是用路由器連接光貓,再由路由去撥號,那么理論MTU就應除去PPPOE協議必需的8個字節的設備頭開銷,變成1492。因此,路由器出廠最好都是默認MTU=1492較為合理。但實際上絕大多數的路由器出廠默認設置都是MTU=1500,這樣如果使用PPPOE協議撥號驅動光貓,MTU值必然不對了。每個數據“包”的大小不一樣,局端服務器會認為這是有問題的,進而“踢”你的設備下線,路由器認為只是斷線,于是自動重撥……這樣你明白故障出在哪里了吧?

因此,設置正確的MTU值是非常必要的,而設置MTU的大小是一個反復試驗的過程:由最大值1500開始下降,直至問題解決。當然,這也不是盲人摸象,筆者整理出了幾個常用的MTU典型值供大家參考,然后跟著此方法做,就能找到自家網絡配置中各設備最正確的MTU值設置。MTU = 1500:以太網信息包最大值,也是默認值。是光貓直連PPPOE的典型設置;
MTU=1492:使用路由器等設備進行PPPOE連接的最佳值;
MTU=1472:使用Ping的最大值(大于此值的信息包會先被分解);
MTU=1468:局域網內的最佳值;
MTU=1430:PPTP的最佳值;
MTU=576:撥號連接到ISP的標準值。

好了,既然知道了原理,我們就可以進行具體的設置。
首先要做的就是查看當前自己的網絡MTU值。電腦直接插網線到光貓,不安裝路由器(通過交換機連接也可以)進行PPPOE撥號上網,成功連接后,在開始菜單中輸入cmd并回車,進入命令提示符模式(圖2)。

輸入以下命令并回車執行:netshinterface ipv4 show subinterfaces
如圖3 中“本地鏈接* 1”顯示的MTU = 1492就是當前環境的運營商寬帶MT U值。注意看,這并非光貓或者路由固件默認的MTU =1500,這是因為撥號設備換成了電腦,而非光貓自己,所以PPPOE需要占用8個字節的包頭信息,MTU=1492+8=1500。
前面也提到了,MTU值越大,發包量就越大,發包時間也就減小,理論上可以提高網絡速率。既然明白了這一點,我們就可以測試出適合自己設備的MTU最大值,用這一MTU值上網以獲得最高的網絡速度。
首先使用路由器進行PPPOE撥號上網,將電腦連接到路由器上后,在cmd命令提示符下輸入ping -f -l1480www.baidu.com并執行。注意,這里起始數值是自由設置的,范圍建議從1480開始(由大到小逐步縮小范圍)。

這時如果看到提示“需要拆分數據包但是設置 DF。”(圖4)說明MTU值過大,把MTU值降低測試:繼續輸入命令ping -f -l1450 www.baidu.com。

這時可以看到Ping值出來了,且并未拆分(圖5),說明MTU包小于傳輸能力,那就改為逐步增加,繼續測試,比如ping -f -l1451 www.baidu.com、ping -f -l 1452www.baidu.com,直到重新出現“需要拆分數據包但是設置 DF。”的提示為止,比如筆者最后得到的不需要拆分的最大MTU包是1450。
這時,將得到的這個數值再加上數據包頭大小28字節(包含設備的IP包頭20字節和PPPOE的8字節,記住這個數就好),比如筆者的MTU=1450+28=1478,填寫到路由器的MTU值設置中,再用路由撥號就可以了,頻繁斷網問題絕對不會再出現,而且基本都能達到滿速下載,也不會丟包了。
小提示
根據路由器的品牌、型號不同,設置MTU大小的選項位置有很大變化。一般來說,登錄路由器設置界面后,可以首先找到“高級”或“高級設置”界面,然后在其下的“接口”、“安裝”等選項中尋找WAN設置,點擊進入后就能看到MTU選項了。也有些產品或設置界面是先進入接口設置,然后尋找“高級-重設MTU”等設置。(圖6、圖7)

但不管是從何種途徑設置MTU,一定在設置前確定是WAN接口的MTU設置,如果是面向其他接口或路徑的MTU設置,使用我們測試得到的最優化MTU尺寸可能造成一些其他問題。