eth0
Link encap:Ethernet HWaddr 00:01:03:43:E5:34
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:259763 errors:1 dropped:1 overruns:1 frame:0 TX packets:95076 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:10 Base address:0xc000 |
|
MTU |
EtherNet (一般的網路介面,這是預設值) | 1500 |
PPPoE(ADSL用的) | 1492 |
Dial-up(modem) | 576 |
由上面的表格我們可以知道,預設的網路介面 MTU 是 1500 ,那 PPPOE 使用的是 1492,自然而然的 MTU 要求並不相同,所以啦!有一些網頁、郵件資料等等的咚咚就無法合理的讓你使用啦!
- 找出 MTU 值:
在 windows 底下要找出 MTU 值就必須進入 DOS 模式,並且知道你的分享的主機的 IP 才行!例如你的主機是 windows 2000 且對內的分享的 IP 是 192.168.1.2,那麼你可以這麼做:
- 進入 MS DOS 模式;
- 打入 ping -f -l 1500 192.168.1.2
上面的式子中,-l 是 L 的小寫(不是 1 喔),1500 是我們要測的 MTU 值,結果出現了 Packet needs to be fragmented but DF set. 這個東西,那表示MTU值太大了,你需要更小的 MTU 值才行!好啦!那假設我們使用 1464 來測試時:
C:\WINDOWS>ping -f -l 1500 192.168.1.2 Pinging 192.168.1.2 with 1500 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
結果出現了回應了!這表示這一個 MTU 值是可行的!不過,強烈建議找出可行的最大 MTU 值!這樣一來,在設定的時候,才可以達到最佳的網路速率!
C:\WINDOWS>ping -f -l 1464 192.168.1.2 Pinging 192.168.1.2 with 1464 bytes of data:
Reply from 192.168.1.2: bytes=1464 time=10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 10ms, Average = 2ms
- 找出 MTU 值:利用上面這個方法找到的數值還不是 MTU 喔!由於一些封包上面的問題,上面這個值再加上 28 才是我們所需要的 MTU 值!所以,在上面的例子中,我們所需要的 MTU 值是 1464+28=1492 啦!
- 修改 MTU 值:
OK!我們已經找出 MTU 值啦,那下一步自然就是修改囉!要如何修改呢?其實也是很簡單,只要透過 Windows 本身預設的 registry 修改即可!
Windows 98:
- 在 『開始』>『執行』中,鍵入<regedit>,會出現一個大框框;
- 選擇:『HKEY_Local_Machine』>『System』>『CurrentControlSet』>『Services』>『Class』>『NetTrans』>『000n』
上面最後一個數據是 000n,那個 n 指的是數字,以我為例,在 NetTrans 底下有兩個數字,分別為 0000 與 0002,若按下 0000 會顯示我的 Gate Way 以及我的網路卡的 IP 項目,至於 0002 則沒有我的網路卡的相關資訊,所以 0000 那這一個就是我的網路卡介面啦!請依你的情況選擇!- 選擇你的網路卡介面後(以我為例,按一下 0000 那一個機碼),按下『編輯』>『新增』,然後選擇增加『DWORD』值;
- 將新增的機碼取名為『MaxMTU』,並且在新增加的那個機碼上面按右鍵,選『修改』,會出現如下畫面,選擇『十進位』後,輸入剛剛我們找到的那一個 MTU 值:
- 改完之後你應該會看到如下的畫面喔!那就是成功了!
Windows 2000:
基本上,這樣應該已經可以解決你的問題了!相關的網頁你可以到底下兩個網頁去看看!
- 在 『開始』>『執行』中,鍵入<regedit>,會出現一個大框框(注意,也有可能是 regedit32 這個執行檔,請依你的機器來作業);
- 選擇『HKEY_Local_Machine』>『SYSTEM』>『CurrentControlSet』>『Services』>『Tcpip』>『Parameters』>『interface』,有點像下面的圖示:
- 在 interface 底下可能有很多的介面,你一個一個的去看,會有一個介面與你的網路卡的 IP 相同,那個就是你要挑選的介面啦!然後同樣的在該介面上選擇『編輯』>『新增』>『DWORD值』之後,建立一個名為『MTU』的機碼,然後選右鍵『修改』,選擇十進位,填入我們剛剛找出來的 MTU 值!大功告成!
http://www.microsoft.com/taiwan/msclub/member/TIPS/Spring_2001/tip1to3/tip1to3_2.htm
http://redhat.ecenter.idv.tw/bbs/showthread.php?s=&threadid=21620&highlight=MTU