[網路技術] MTU說明以及設定方式

MTU :最大傳輸單位(Maximum Transmission Unit )



指的是網路封包的最大傳輸大小,
特性是只要封包內有一個錯誤,他就會再重新傳送一次,
所以設定值越大的話當然出錯的機率就會越高,相對的如果沒錯的話,傳送速度就會比較快,
但是如果設定的太小的話,因為要加上封包頭尾的內容大小,所以會顯得比較沒效率。


下表為一般網路介面會用到的MTU預設值 :



網路介面 MTU
EtherNet (一般的網路介面,這是預設值) 1500
PPPoE(ADSL所使用的) 1492
Dial-up(撥接所使用的) 576



IP封包內容:
一個frame的表頭內容會包含:
12 byte  控制碼
4 byte  來源IP
4 byte  目地IP
加起來總共20 byte,如果再加上ping 所使用的ICMP 8 byte,總共一個ping的表頭就是28 byte,所以數值可以先用1500減去28後的1472來做為測試數據。


如何測試MTU?

在windows環境下,先開啟cmd命令提示字元畫面,
接著輸入"netsh interface ip show interface",
會列出電腦中所有的interface設定值,就可找到相對應interface的MTU設定值。

再來可輸入"ping xxx.xxx.xxx.xxx -f -l 1500",
意思是表示
電腦帶大小為1500的封包過去給目標位址,
-f 表示完整不中斷的封包,
-l代表設定長度,
如果不符合對方的MTU,則會接收到"需要切割封包,但已設定DF旗標"的相關訊息,這時候就要調整MTU數值到適當範圍。


如何修改MTU?

在windows環境下,先開啟cmd命令提示字元畫面,
接著再輸入
"netsh interface ip set interface "xxxxx" mtu=1400 store=persistent",
"xxxxx"為電腦上所使用的網路連線介面
mtu則為你要輸入的數值
如果遇到"要求的作業需要提高權限",就必須以超級管理員來開啟cmd命令提示字元後再執行一次指令即可。



Share this:

0 意見:

張貼留言