可能很少網友注意過“本機、網絡”的“MTU”值對自己網絡性能產生的影響。對於追求更快的下載速度來說,MTU值設置不當,就仿佛穿着高跟鞋跑步一般。
MTU是什么?
“MTU=最大傳輸單元 單位: 字節”
我們在使用互聯網時進行的各種網絡操作,都是通過一個又一個“數據包”傳輸來實現的。而MTU指定了網絡中可傳輸數據包的最大尺寸,在我們常用的以太網中,MTU是1500 字節。超過此大小的數據包就會將多余的部分拆分再單獨傳輸。
為什么MTU影響網絡性能?
讓我們看看這個情況,在 Windows系統中,默認MTU值也是1500 字節,但是“不同的接入方式、不同地區的網絡運營商、不同的路由器”有着不同的MTU設置。
例如:ADSL接入時MTU為1492 字節,假設A需要給B傳輸3000字節數據,如果整個傳輸過程中各個環節的MTU都是1500,那么2個數據包就可以傳輸完成。可是偏偏這時ADSL接入方式的MTU是1492字節,數據包就因為這個MTU差異額外拆分為3個(為了便於理解,暫時不將“數據包報頭”納入考慮范圍)
顯然這額外增加了需要傳輸的數據包數量,而且拆包組包的過程也浪費了 時間。如果從本地到網絡采用一致的MTU就可以避免額外拆包。
對下載速度的影響會有多大?
就拿伊文家里的線路質量不太好的 電信4M 帶寬為例,將操作系統的MTU值改為1492,再將路由器的MTU值從1460改為1492后,下載速度從原本的435KB/s提升到了450KB/s,提升了15KB/s。電信的帶寬檢測工具的檢測結果也從4.09M提升到了4.19M。
MTU是什么?
“MTU=最大傳輸單元 單位: 字節”
我們在使用互聯網時進行的各種網絡操作,都是通過一個又一個“數據包”傳輸來實現的。而MTU指定了網絡中可傳輸數據包的最大尺寸,在我們常用的以太網中,MTU是1500 字節。超過此大小的數據包就會將多余的部分拆分再單獨傳輸。
為什么MTU影響網絡性能?
讓我們看看這個情況,在 Windows系統中,默認MTU值也是1500 字節,但是“不同的接入方式、不同地區的網絡運營商、不同的路由器”有着不同的MTU設置。
例如:ADSL接入時MTU為1492 字節,假設A需要給B傳輸3000字節數據,如果整個傳輸過程中各個環節的MTU都是1500,那么2個數據包就可以傳輸完成。可是偏偏這時ADSL接入方式的MTU是1492字節,數據包就因為這個MTU差異額外拆分為3個(為了便於理解,暫時不將“數據包報頭”納入考慮范圍)
顯然這額外增加了需要傳輸的數據包數量,而且拆包組包的過程也浪費了 時間。如果從本地到網絡采用一致的MTU就可以避免額外拆包。
對下載速度的影響會有多大?
就拿伊文家里的線路質量不太好的 電信4M 帶寬為例,將操作系統的MTU值改為1492,再將路由器的MTU值從1460改為1492后,下載速度從原本的435KB/s提升到了450KB/s,提升了15KB/s。電信的帶寬檢測工具的檢測結果也從4.09M提升到了4.19M。
我該如何合理設置MTU呢?
更快的下載速度,對於 迅雷的用戶來說,顯然很有意義。可是MTU設置不能一個值天下通用,所以我們講究合理設置MTU。
那么什么情況下的MTU值才是合理的呢?
我們先看看什么是不合理的:
1、本地MTU值大於網絡MTU值時,本地傳輸的數據包過大導致網絡會拆包后傳輸,不但產生額外的數據包,而且消耗了“拆包、組包”的時間。
2、本地MTU值小於網絡MTU值時,本地傳輸的數據包可以直接傳輸,但是未能完全利用網絡給予的數據包傳輸尺寸的上限值,傳輸能力未完全發揮。
這樣我們就知道,所謂合理的設置MTU值,就是讓本地的MTU值與網絡的MTU值一致,既能完整發揮傳輸性能,又不讓數據包拆分。
更快的下載速度,對於 迅雷的用戶來說,顯然很有意義。可是MTU設置不能一個值天下通用,所以我們講究合理設置MTU。
那么什么情況下的MTU值才是合理的呢?
我們先看看什么是不合理的:
1、本地MTU值大於網絡MTU值時,本地傳輸的數據包過大導致網絡會拆包后傳輸,不但產生額外的數據包,而且消耗了“拆包、組包”的時間。
2、本地MTU值小於網絡MTU值時,本地傳輸的數據包可以直接傳輸,但是未能完全利用網絡給予的數據包傳輸尺寸的上限值,傳輸能力未完全發揮。
這樣我們就知道,所謂合理的設置MTU值,就是讓本地的MTU值與網絡的MTU值一致,既能完整發揮傳輸性能,又不讓數據包拆分。
接下來最重要的就是要找出對於你的網絡環境來說MTU多少才是合理的。
方法如下:
1、按Win+R組合鍵,調出“運行”菜單,輸入“cmd”然后回車
2、在出現的“命令提示符”窗口中輸入“ping -l 1472 -f www.baidu.com”然后回車
含義:
ping:發起一個探測請求;
-l(L的小寫):限制探測包大小;
1472:包大小為1472 字節;
-f:禁止路由器拆分數據包
www.baidu.com:設 百度為探測目標
(你問我為什么不用 Google做目標?考慮到Google時不時被牆,還是算了吧。。)
3、這時有2種情況:
(1)、如果收到了回復,那么說明你的網絡允許最大MTU值就是1500 字節,與系統默認值相同,只需要將路由器的MTU值也設置為1500即可;
(2)、如果出現"需要拆分數據包但是設置 DF"。或是"Packer needs to be fragmented but DF set."的提示,那就說明數據包大小超過了網絡限定的MTU大小。需要減小探測包大小再次嘗試。(為了截效果圖,我將探測包改為1473了)
4、按“上箭頭”恢復剛才輸入的命令,然后以5為跨度減小包大小為1467 字節,再次回車探測。
5、這時同樣也有兩種可能:
(1)、如果有返回,說明數據包小於MTU限制,就將包大小+3再次探測,如果+3之后沒有返回,那就以1為跨度降低數據包大小進行探測。
(2)、如果還是沒有返回,就繼續以5為跨度減小包大小,直至有返回后進行5(1)中的操作。
6、直至你發現數據包-1后,有了返回,就說明你探測到了MTU允許的准確數據包大小。(例如從1465降低到1464就有了返回,那么允許的數據包大小就是1464)
7、不過上面得到的值還不能設置為操作系統或路由器的MTU,你找到的數據包大小需要加上28 字節的“數據包報頭”,才是完整的數據包尺寸。
(例如:探測到的數據包大小是1464,那么加上28 字節,最終MTU=1492字節)
8、最后,只需要將路由器和操作系統中的MTU值設置為你得出的結果即可。
路由器設置方法:打開網頁,沒改過就是輸入192.168.1.1,進入后選網絡參數—WAN口設置—高級選項—MTU數值。用戶名和密碼沒人改過就都是ADMIN!(沒有路由器的用戶可以無視這個)
本機設置方法:建議使用“ 魔方、Windows優化大師、超級兔子魔法設置、 魯大師”等軟件修改操作系統的MTU。
方法如下:
1、按Win+R組合鍵,調出“運行”菜單,輸入“cmd”然后回車

2、在出現的“命令提示符”窗口中輸入“ping -l 1472 -f www.baidu.com”然后回車
含義:
ping:發起一個探測請求;
-l(L的小寫):限制探測包大小;
1472:包大小為1472 字節;
-f:禁止路由器拆分數據包
www.baidu.com:設 百度為探測目標
(你問我為什么不用 Google做目標?考慮到Google時不時被牆,還是算了吧。。)
3、這時有2種情況:
(1)、如果收到了回復,那么說明你的網絡允許最大MTU值就是1500 字節,與系統默認值相同,只需要將路由器的MTU值也設置為1500即可;

(2)、如果出現"需要拆分數據包但是設置 DF"。或是"Packer needs to be fragmented but DF set."的提示,那就說明數據包大小超過了網絡限定的MTU大小。需要減小探測包大小再次嘗試。(為了截效果圖,我將探測包改為1473了)

4、按“上箭頭”恢復剛才輸入的命令,然后以5為跨度減小包大小為1467 字節,再次回車探測。
5、這時同樣也有兩種可能:
(1)、如果有返回,說明數據包小於MTU限制,就將包大小+3再次探測,如果+3之后沒有返回,那就以1為跨度降低數據包大小進行探測。
(2)、如果還是沒有返回,就繼續以5為跨度減小包大小,直至有返回后進行5(1)中的操作。
6、直至你發現數據包-1后,有了返回,就說明你探測到了MTU允許的准確數據包大小。(例如從1465降低到1464就有了返回,那么允許的數據包大小就是1464)
7、不過上面得到的值還不能設置為操作系統或路由器的MTU,你找到的數據包大小需要加上28 字節的“數據包報頭”,才是完整的數據包尺寸。
(例如:探測到的數據包大小是1464,那么加上28 字節,最終MTU=1492字節)
8、最后,只需要將路由器和操作系統中的MTU值設置為你得出的結果即可。
路由器設置方法:打開網頁,沒改過就是輸入192.168.1.1,進入后選網絡參數—WAN口設置—高級選項—MTU數值。用戶名和密碼沒人改過就都是ADMIN!(沒有路由器的用戶可以無視這個)
本機設置方法:建議使用“ 魔方、Windows優化大師、超級兔子魔法設置、 魯大師”等軟件修改操作系統的MTU。
例如我在本機用魔方設置的方法:
按照我的序號設置即可
以下是較復雜的方法:
(1)、XP操作系統設置方法:
1、 按Win+R組合鍵,調出“運行”菜單,輸入regedit,然后回車;
2、 選擇“HKEY_Local_Machine>SYSTEM>CurrentControlSet>Services>Tcpip>Parameters>interface”;
3、在 interface 中下可能有很多項,需要逐個觀察鍵值,會有一個項與你的網卡IP一致,選中該項;
4、然后在該項上點擊右鍵,選擇“編輯>新建>DWORD值”,然后在右側將其命名為“MTU”;
5、右鍵點擊MTU,選擇“修改”,在彈出的窗口中選擇“十進制”,填入你得出的合理MTU值即可。
(2)、Vista、Win7操作系統設置方法:
1、進入系統盤:\Windows\System32\找到cmd.exe,右鍵“以管理員身份運行”;
2、在出現的“命令提示符”窗口中輸入“netsh interface ipv4 show subinterfaces”並回車來查看當前的MTU值
3、接下來輸入“netsh interface ipv4 set subinterface "需修改的連接名" mtu=你得出的合理值 store=persistent”並回車即可
例如:“netsh interface ipv4 set subinterface "本地連接" mtu=1492 store=persistent”

按照我的序號設置即可
以下是較復雜的方法:
(1)、XP操作系統設置方法:
1、 按Win+R組合鍵,調出“運行”菜單,輸入regedit,然后回車;
2、 選擇“HKEY_Local_Machine>SYSTEM>CurrentControlSet>Services>Tcpip>Parameters>interface”;
3、在 interface 中下可能有很多項,需要逐個觀察鍵值,會有一個項與你的網卡IP一致,選中該項;
4、然后在該項上點擊右鍵,選擇“編輯>新建>DWORD值”,然后在右側將其命名為“MTU”;
5、右鍵點擊MTU,選擇“修改”,在彈出的窗口中選擇“十進制”,填入你得出的合理MTU值即可。
(2)、Vista、Win7操作系統設置方法:
1、進入系統盤:\Windows\System32\找到cmd.exe,右鍵“以管理員身份運行”;
2、在出現的“命令提示符”窗口中輸入“netsh interface ipv4 show subinterfaces”並回車來查看當前的MTU值
3、接下來輸入“netsh interface ipv4 set subinterface "需修改的連接名" mtu=你得出的合理值 store=persistent”並回車即可
例如:“netsh interface ipv4 set subinterface "本地連接" mtu=1492 store=persistent”