決定網路傳輸效率的底層參數:MTU(Maximum Transmission Unit,最大傳輸單元)。

MTU 設錯會很慘

如果 MTU 設太大,路由器就會強制把你的封包拆成兩半(這叫做封包分片 Fragmentation),這會極大地消耗路由器的 CPU,導致網速變慢、延遲飆高。更慘的是,有些網站(像 Cloudflare 防護的網站)拒絕接收被拆解的封包,就會導致「網頁永遠停留載入中」。

如果 MTU 設太小,結果就是浪費了大量的頻寬在運送(封包標頭),網路整體吞吐量(下載速度)會下降。

驗證 mtu 是不是真的最適合你家,可以用 Windows 的 CMD(命令提示字元)做這個「不分片 Ping 測試」

打開 CMD。

MTU 設定教學


輸入指令:ping -f -l 1464 8.8.8.8 (注意是小寫的 L)
(解釋:-f 代表禁止分片,-l 代表指定資料大小。)

如果出現 「回覆自 8.8.8.8...」,代表這個大小過得去。

如果你把數字加大,例如 ping -f -l 1465 8.8.8.8,結果出現 「需要切割封包,但已設定 DF 旗標」,這就代表 1465 太大了,過不去。

如果封包沒有遺失數字就繼續往上加,如果封包遺失就往下減。
MTU 設定教學


從截圖看得清清楚楚:

1455:過關

1457:陣亡

1456:最後的極限過關!

終極黃金 MTU 出爐了

1456 (極限資料) + 28 (固定標頭) = 1484

最後一步:

到路由器設定中,把mtu改成1484 收工

中華光世代pppoe撥接
MTU 設定教學



MTU 設定教學

修改完路由器設定後,明顯發覺網頁開啟速度變快了,原本卡住的網站也能秒開了!

可以幫助到很多遇到類似「網頁卡住、載入慢」卻不知從何下手的人。

1484 是「我個人網路環境」測出來的極限值!每個人的電信商和線路狀況不同,請大家務必透過上面的 ping 指令,親自測出你自己的「極限不碎裂數值」,然後把那個數值「加 28」,才是你專屬的最佳 MTU!

1456 (極限淨載資料) + 28 (固定標頭:包含 20 bytes 的 IP 標頭 + 8 bytes 的 ICMP 標頭) = 1484
downtodo wrote:
MTU 設定教學
決定網路傳輸效率的底層參數:MTU(Maximum Transmission Unit,最大傳輸單元)。
MTU 設錯會很慘
如果 MTU 設太大,路由器就會強制把你的封包拆成兩半(這叫做封包分片 Fragmentation),這會極大地消耗路由器的 CPU,導致網速變慢、延遲飆高。更慘的是,有些網站(像 Cloudflare 防護的網站)拒絕接收被拆解的封包,就會導致「網頁永遠停留載入中」。
如果 MTU 設太小,結果就是浪費了大量的頻寬在運送(封包標頭),網路整體吞吐量(下載速度)會下降。
驗證 mtu 是不是真的最適合你家,可以用 Windows 的 CMD(命令提示字元)做這個「不分片 Ping 測試」
打開 CMD。
輸入指令:ping -f -l 1464 8.8.8.8 (注意是小寫的 L)
(解釋:-f 代表禁止分片,-l 代表指定資料大小。)
如果出現 「回覆自 8.8.8.8...」,代表這個大小過得去。
如果你把數字加大,例如 ping -f -l 1465 8.8.8.8,結果出現 「需要切割封包,但已設定 DF 旗標」,這就代表 1465 太大了,過不去。
如果封包沒有遺失數字就繼續往上加,如果封包遺失就往下減。
MTU 設定教學
從截圖看得清清楚楚:
1455:過關
1457:陣亡
1456:最後的極限過關!
終極黃金 MTU 出爐了
1456 (極限資料) + 28 (固定標頭) = 1484
最後一步:
到路由器設定中,把mtu改成1484 收工
中華光世代pppoe撥接
MTU 設定教學
MTU 設定教學
修改完路由器設定後,明顯發覺網頁開啟速度變快了,原本卡住的網站也能秒開了!
可以幫助到很多遇到類似「網頁卡住、載入慢」卻不知從何下手的人。
1484 是「我個人網路環境」測出來的極限值!每個人的電信商和線路狀況不同,請大家務必透過上面的 ping 指令,親自測出你自己的「極限不碎裂數值」,然後把那個數值「加 28」,才是你專屬的最佳 MTU!
1456 (極限淨載資料) + 28 (固定標頭:包含 20 bytes 的 IP 標頭 + 8 bytes 的 ICMP 標頭) = 1484


+5 分.

1 般 以 1,492 居多 也是 預設值,
通常 不要動 安全.

★★★ "我要留言" 不回, 只回 1 般回文. ★★★
好奇樓主家的網路速度
我好像都設1600,說實在沒有感覺
可能是因為流量沒用到滿的關係?
感謝分享設定MTU的好文。
不過我自己測試了家裡的網路MTU 1252,加上28是1280(MTU的最小值)。
結果在小米路由器設定後,網路變的很不穩定:ping高,網速降,常上不了網…
目前還是先改回原本的自動配置設定。
只要不意外,一般網路使用固定制或cable網路的mtu即1500;
pppoe-client則是1492,少數1480

就算沒設定好mtu,分享器也會自動重新包裝,所以ipv4 mtu這方面的問題很少。

但ipv6的用戶問題就大的多。
原本ipv6制定時有加入pmtu機制,讓系統透過icmp自行判斷封包要分割的大小。

但icmp卻是防火牆封鎖的常客,導致pmtu喪失能力˙,
若電腦端還是用size:1500封包去嘗試穿越1492或1480寬的pppoe通道,就不意外的丟包了。

更要命的早期路由器,也沒ipv6 mtu設置功能,導致電腦開ipv6網路就開始不正常。
會讓人抱著開ipv6會讓網路不正常,乾脆不要開...

以致ipv6即使制定多年了,推廣仍層層阻礙。
gfx wrote:
只要不意外,一般網路使用固定制或cable網路的mtu即1500;
pppoe-client則是1492,少數1480
就算沒設定好mtu,分享器也會自動重新包裝,所以ipv4 mtu這方面的問題很少。
但ipv6的用戶問題就大的多。
原本ipv6制定時有加入pmtu機制,讓系統透過icmp自行判斷封包要分割的大小。
但icmp卻是防火牆封鎖的常客,導致pmtu喪失能力˙,
若電腦端還是用size:1500封包去嘗試穿越1492或1480寬的pppoe通道,就不意外的丟包了。
更要命的早期路由器,也沒ipv6 mtu設置功能,導致電腦開ipv6網路就開始不正常。
會讓人抱著開ipv6會讓網路不正常,乾脆不要開...
以致ipv6即使制定多年了,推廣仍層層阻礙。


+5 分.

試了下 還 真有 MTU 1480.

★★★ "我要留言" 不回, 只回 1 般回文. ★★★
IQuit wrote:
+5 分.試了下 還...(恕刪)


















gfx
值是1252以上,2可除盡的數字。1425這數字沒意義
IQuit wrote:
+5 分.試了下 還...(恕刪)



賊大怎麼沒幫我診斷。
gfx
下載mturoute.exe並在dos命令窗執行,它會跑測試流程並在結束告知這台windows桌機最佳mtu是多少。
好像有點有趣,有什麼風險嗎
TCP協定的MTU最大值就是1500,就算你設超過,當你在傳資料超過1500時,到底層還是會拆包,所以建議使用預設值就好。
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!