同一網絡下WIN7系統電腦很多網址無法打開,XP系統電腦則可以
1、剛開始判斷為WIN7電腦設置的DNS參數不正確導致,修改與XP系統的DNS參數一至后故障依舊。
2、接下來考慮到WIN7電腦的網絡協議與路由器的過濾規則或防火墻設置產生沖突導致,所以把WIN7的IPV6協議
與鏈路層拓撲協議關閉及路由器的過濾規則進行暫停進行排除檢測,結果都沒找到問題所在。
3、后來接入到熱點進行測試結果正常了,那么問題應該出在路由器上,但路由器哪里有問題還搞不清楚。
4、用網絡抓包軟件對路由器進行抓包,發現網絡卡頓以后出現較多這樣的報錯:TCP segment of a reassembled PDU.發現應該是MTU值引起的故障現象。
5、先將路由器等設備去掉,直接將modem貓出來的網線插在電腦上,連接上網。使用ping -l 1450 -f www.picusit.com進行MTU值測試,得出的值為1450
參數解釋:
“-l 1450” 中的 l 代表了length長度,1450代表數據包長度為1450個字節。
我們可以通過嘗試不同的數據包長度,來驗證網絡供應商的長度為多少。測試范圍從1400到1500。
f 在數據包中設置“不分段”標志,強制系統將數據包一次性發送出去。
www.picusit.com 發送目的地主機,可以換成任意一個有效網址。
知道了這個命令后,就可以使用1400到1500之間的數值進行測試了,如果ping值返回的是“需要拆分數據包但是設置 DF”,那么就繼續嘗試,比如1450 1480 1430 1460。。。
直到ping值的返回結果為正常ping通,比如這樣:
C:\Users\Administrator>ping -l 1450 -f www.picusit.com
正在 Ping www.picusit.com [61.155.154.158] 具有 1450 字
來自 116.255.154.157 的回復: 字節=1450 時間=14ms TTL=117
來自 116.255.154.157 的回復: 字節=1450 時間=10ms TTL=117
來自 116.255.154.157 的回復: 字節=1450 時間=10ms TTL=117
來自 116.255.154.157 的回復: 字節=1450 時間=10ms TTL=117
注意這樣得到的數值后,一定要加上數據包報頭的大小28,才是最終MTU值。
比如我的測試出來是1450,然后加上28數據包報頭的值,就是1478了。
那么最終確認合適的MTU后,就可以設置本機和路由器的MTU了。
6、把路由器的MTU值更改為1478后故障排除。
關于MTU這個計算機術語,很少有人知道,更別說去合理配置和修改了,MTU,全稱Maximum Transmission Unit,在計算機術語里就是最大傳輸單元的意思,網絡是通過數據包傳輸數據的。
MTU指定了網絡中可傳輸數據包的最大尺寸,在我們常用的以太網中,MTU是1500字節,超過此大小的數據包就會將多余的部分拆分再單獨傳輸。
Windows系統默認的MTU值為1500,但是不同的網絡運營商、不同的路由器,甚至不同的上網接入方式都會有不同的MTU值,下面給大家舉個例子進行說明。
比如ADSL上網方式的MTU值為1500,如果A機器要向B機器傳輸3000字節的數據,如果整個傳輸的環節MTU值都是1500,那么只需要將3000字節的數據拆分為2個數據包即可傳輸完成。但是ADSL的MTU值為1492,這時就需要將3000字節的數據拆分為3個數據包,這樣就增加了網絡傳輸時拆包、組包時間,進而影響我們的上網體驗。(這里暫時不考慮“數據包報頭”)
下面我們來看看設置的MTU值不合理時造成的影響:
a、當本地的MTU值大于網絡的MTU值時,本地發送的數據包過大就會導致網絡拆包后傳輸,不但產生了更多的數據包,而且更消耗了組包、拆包的時間。
實例:比如本地是一條2米寬的河道,網絡是一條1米寬的河道,用2米寬的河道給1米寬的河道送水,那么水流必須從2米寬改成1米寬才能輸送,這樣就造成了效率低下。
b、但本地的MTU值小于網絡的MTU值時,本地發送的數據可以完全傳輸,但是未能完全使用網絡提供的數據包的最大傳輸上限,使得傳輸通道不能全力發揮。
實例:同樣的,本地是1米寬的河道,而網絡是2米寬的河道,那么用1米的河道輸送2米寬的河道,雖然可以送水,但是2米寬的河道未能達到充分利用,同樣造成效率低下。
從上面我們可以得出,當本地的MTU值與網絡的MTU值大小一致時才能達到最高的傳輸效率。