解決只能上QQ和百度,其它的網址和 網路應用使用不了的問題
為什麼只能上QQ和百度,其它的瀏覽器,網址,播放器等網路應用軟體使用不了。或許有的人可能會遇到,這是
我切身體會到的問題,為了解決這個問題花費了一下午的時間,竟然只是一個小小的MTU值問題引起的,不免感覺整
個暑假學的網路技術沒有用,記得當時看這部分內容的時候留意過,但是沒有徹底理解。解決這個問題,不得不說
MTU(最大傳輸單元)這個最直截了當的東西。MTU設定不當,可能會導致許多網路問題,如某些網路應用無法使用,
某些網站無法訪問等。
一解釋下一MTU以及相關的一系列的概念 Mtu即最大傳輸單元,全稱為Maximum Transmission Unit,是指通訊協議的某一層上面所能通過的最大資料包大
小(以位元組為單位)。由於定義的模糊性,在此也介紹幾個相關的名詞,MRU、PMTU、MSS和JUMBO FRAME,供
大家甄別。
MRU即最大接收單元,全稱為Maximum Receive Unit,與MTU相對,稱為最大接收單元,目前也沒有權威的標準定義,但許多文章中有這個名詞。一臺主機或路由器的MTU與MRU可以不一致。
PMTU,全稱為 path maximum transmission unit,即路徑MTU,把一條IP路徑上MTU的最小值稱為PMTU,PMTU
是個理想化的概念,但目前業界沒有有效的手段來實現PMTU的發現和更新。`
MSS是OSI參考模型中四層的一個概念,即最大分段長度,全稱為TCP Maximum Segment Size,指TCP每次能夠
傳輸的最大資料分段長度(以位元組為單位),MSS一般比MTU小40位元組。
Jumbo Frame(有些稱Giant Frame),網路上會遇到jumbo frame的概念,cisco路由器的介面中也有這個引數,超過
乙太網標準長度1518位元組的幀稱為jumbo frame。
二理解MTU和MRU MTU不能太大也不能太小,要剛剛合適才行 比如:一個數據總長度是2999位元組 MTU為1500時,這個資料被拆成1500為標準的一段分1500+1499 2段 傳送完畢 MTU為1400時,這個資料被拆成1500為標準的一段分1400+1400+1993段 傳送完畢 ...... 所以太小了,傳送的效率就被限制了 比如:一個數據總長度是9999位元組 MTU為15000時,這個資料被拆成15000為標準的一段分15000 1段 傳送完畢 ...... 所以太大了,傳送的效率就被限制了 三MTU涉及主要原理 常見網路的MTU值: IP網路以包為單位進行資訊傳遞,那麼,一次傳送多大的包合適、多大的包最高效就成為一個核心問題一。MTU
就是決定在什麼樣的物理網路傳送多大資料包大的事實標準,不同型別網路由於物理特性、發展階段不同,其MTU的
預設值也不盡相同,以下是摘錄的各類網路及其預設MTU值:
對於windows作業系統來講,其乙太網網絡卡MTU預設為1500,但可以通過修改工具或修改登錄檔進行修改,但只
能改小,不能改大,即只能修改為小於或等於1500位元組。
2PMTU 發現過程
對於一個基於網路的應用來講,如果應用穿過網路的MTU與PMTU相等,那麼應用穿過網路的效率最高,或者
說,應用通過主機網絡卡發出的最大資料包與PMTU越接近(指小於等於PMTU),應用穿過網路的效率越高,原因是有
效的避免了分片和重組。
為了達到這個目的,一些作業系統支援自動發現路徑MTU的功能,具體過程為:路由器介面上收到一個報文長
度大於本介面MTU值的報文,如果該報文被打上不分片的標記,將丟棄本報文,並且返回一個ICMP差錯報文,通知
報文發起者丟棄原因。報文發起者將傳送比較小的報文。通過多次上述報文協商,將得到對於某一個固定路徑上的最
小Mtu值,這個過程叫做“Mtu Discovery”。
四如何確定網路MTU
某些ISP接入的MTU可能會比常規使用的MTU小,這時如果設定了過大的MTU,就可能會導致很多服務無法使
用的問題。可以通過ping程式確定MTU的值。
Windows+R 開啟執行,輸入cmd,可以開啟命令提示符:
使用 ping -f -l <MTU> <IP地址>的方式確定MTU(也有其他的方式確定MTU值)
如:ping -f -l 1400 192.168.1.1可以從1400逐漸向上取值找到最合適的MTU值,最大不超過1500。
如果能ping通,說明詞MTU是可以的,可適當加大MTU值,直到最大;否則就要適當調小MTU值。設定最大的
MTU值可以有效的提高網路吞吐量。
以上找到最大的適合MTU值為1472。
再提供一種測試MTU值的方法:
在命令提示符中輸入 PING -l <MTU> -f <HOST>的方式確定MTU
如:ping -l 1400 -f www.baidu.com
實驗過程為:
五修改方法
第一種 方法是windows修改:
(1)windows+R執行regedit
(2)瀏覽找到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
(3)Interfaces下有多個子項,每個子項對應一個網絡卡。請按如下方法選擇網絡卡:
(a)確定本機用來連線Internet的網絡卡或撥號連線的IP,如192.168.0.19;
(b)用滑鼠點選Interfaces上的子項,檢視鍵值列表中的IPAddress項;
(c)如果IPAddress的鍵值與(a)中的IP相同,即192.168.0.19,則該子項就是要找的網絡卡。
(4)進入該子項,在右邊的窗口裡按滑鼠右鍵,選擇“新建”->“雙位元組值”,輸入名稱“MTU”,按回車。再用
滑鼠雙擊“MTU”,彈出修改視窗,填入合適的MTU的值。填寫前請先把基數設為十進位制。設定好後,需要重啟機
器才能生效。注意,系統的版本不一樣,可能下面的子項不一樣,最好找到相應的系統。這裡是win10作業系統的。
第二種方法是路由器修改:
(1)在瀏覽器的網址位置輸入192.168.1.1或192.168.0.1進入自己的路由器相關配置介面
(2)在路由設定中找到網路引數,再找到WAN設定,選擇高階設定
(3)在PPPoE高階設定中找到資料包MTU,就可以手動設定MTU值了。要找到最適合的值,不要一味的調大或調
小,一般預設的即可。
若是遇到一部分網路應用打不開和一部分網址打不開的時候,這時候去檢測自己主機的MTU值,測試哪一個是最
適合你這個寬頻連線方式的,可以適當調小MTU值,這樣就可以執行網路應用和開啟網址了。適當的調整MTU值也可
以加快開啟網頁的速度。