Maximum Transmission Unit (MTU)傳輸單元最大值
PPPOE的最大接收單元為1492,乙太網路最大載荷為1500 octets,PPPOE頭為6 octets,PPP協議ID為2 octets,所以PPP的MTU最大不能超過1492
PPoE
協議要求所有客戶機上的MTU值不超過1492(預設值為1500)。當某些網站忽略ICMP無法投遞訊息或者在被訪網站與ICS主機之間存在black hole router 時,會導致NTBUG429047
。
From: http://zxsv.com/post/103.html
當電腦串連網路傳送資料時,資料會分割為不同大小的封包,MTU值設定。MTU是英文Maximum Transmission
Unit的縮寫,意為“最大傳輸單位”。也就是通過TCP/IP協議所傳輸的資料包最大有多少位元組,
MTU值越大,封包就越大,理論上可增加傳送速率,但MTU值又不能設得太大,因為封包太大,傳送時出現錯誤的機會大增。一般預設的設定,PPPoE
連
接的最高MTU值是1492, 而乙太網路(Ethernet)的最高MTU值則是1500,而在Internet上,預設的MTU大小是576位元組,
為什麼會有這種差別呢?一般而言,LAN就不說了吧,為充分發揮LAN的效能,MTU可以稍微大一點。Internet的情況恰好相反,對撥號使用者來說,
那叫一個慢呀。因此,對於Internet,應當採用較小的資料包。
MTU值設定與寬頻接入方式的不同也會影響上網速度,通常推薦的MTU配置是:對於撥號使用者,設定成576;對於使用PPPoE
的DSL使用者,設定成 1400;對於其他使用者,設定成1500。
ping www.blueidea.com -f -l 1480
出現Packet needs to be fragmented but DF set.就說明該大小的(1480位元組)資料包超過了ISP的MaxMTU
,
產生了資料衝突片段,那麼我們就降低Ping命令中的資料包大小,比如說是 1460一直到返回資訊是Reply from
220.194.57.26: bytes=1460 time=134ms TTL=115才算正常,那個這個1460資料包大小的值就是ISP的PPPoE
協議的MaxMTU
值
9X系統中如下設定,運行==regedit斷行符號,進入註冊表。依次展開HKEY_LOCAT_MACHINE
/System /CurrentControlSet
/Services/Class/NetTrans
/,會看到包含幾個000X的子項,尋找含有鍵名為 “DriverDesc
”,索引值為“TCP/IP”的000X主鍵,該鍵裡有該電腦的網路屬性設定,如IP地址192.168.0.XX,網關 192.168.0.1,子網路遮罩255.255.255.0等。在該鍵下建立“DWORD值”,命名為“MaxMtu
”,修改索引值為十進位的1460,
Win95,98系統:
開啟登錄編輯程式,找到位置 “HKEY_LOCAT_MACHINE
/System/CurrentControlSet
/Services/Class /NetTrans00x
”, “x”表示為數字,假如電腦安裝了多個通訊協議,就會出現“0001”、“0002”、“0003”等項目,只要開啟該項目,就會看見 “DriverDesc
”是“TCP/IP”,即網卡的“Registry”設定,使用者在這裡可按滑鼠右鍵新增一個“MaxMTU
”的DWORD值,修改索引值為十進位的1460,重啟。
Win2000,NT,XP,2003系統可以採用如下2種方法之一,建議採用第一種,如果不行,依次往下實驗
1,啟用PMTUD的backhole傳輸
開啟REGEDIT,HKEY_LOCAL_MACHINE
/SYSTEM/CurrentControlSet
/Services/Tcpip /Parameters/主鍵下,找到主鍵 EnablePMTUBHDetect
,如果沒有則建立這個Dword值,將其索引值設定為1,儲存後重起電腦,並測試故障是否解決?
2, 手工設定網卡的MTU值
開啟REGEDIT,HKEY_LOCAL_MACHINE
/SYSTEM/CurrentControlSet
/Services/Tcpip /Parameters/Interfaces/主鍵下,下面會有幾個檔案夾,分別代表機器的安裝的每一塊網卡,依次瀏覽每個檔案夾,並察看視窗右邊 IPAddress
的索引值,如果其值為你串連 Internet所用網卡的ip,則需要修改的就是這個檔案夾。
進入此檔案夾,找到一個名為MTU的主鍵,如果沒有則建立這個Dword值,修改索引值為十進位的1460,重啟。