網絡環境很典型:一條ADSL網線+ADSL路由器+一臺12口Hub,Hub上接了幾臺主機共享上網。后由于上網人數增多,Hub的端口不夠用了,加上Hub先天的性能缺陷,網絡越來越不堪重負。于是用一臺D-LINK的DES-1024R交換機代替了原來的Hub,一試,不一樣就是不一樣,果然感覺網速快了許多。
不曾想,有幾個人吵著說上不了網。從電腦上ping ADSL路由器的局域網地址,不通;ping網上的其他主機,也不通。當時的第一個反應就是網線的RJ-45頭制作質量不過關,更換交換機時撥插網線的操作導致其損壞。但觀察交換機上相應端口的指示燈,不能正常上網的有四,五臺電腦,只有一臺距離較遠的電腦連接的交換機端口指示燈顯示不正常,看起來好像是網線有問題的樣子。其他的幾臺電腦連接的交換機端口指示燈無異常:指示速率的100M指示燈,連接狀態的LINK指示燈都亮。再檢查電腦的網卡,指示燈也正常,覺得不像是網線的問題。試著ping 本機的IP地址,正常,但就是ping不通網內的其他主機。在交換機上將有問題的電腦和可以上網的電腦互換連接端口,排除了交換機端口故障的可能。反復檢查,不能確定原因。由于上網心切,有人認為是新換的交換機有問題,提議換回原來的Hub,我雖然不相信是交換機的問題,但查不出原因,只好從善如流,抱著“死馬且當活馬醫”的心態,將原來的Hub接到交換機上,將那幾臺電腦接到Hub上,讓人意想不到的是,問題真的解決了!
難道真是交換機的問題?為什么連Hub可以,連交換機就不行呢?仔細考慮Hub和交換機之間的不同點,覺得最可疑的是連接速率,因為Hub是10M的連接速率,交換機是10/100M連接速率自適應。這些機器剛才連接交換機時,連接速率指示為100M,這是前后連接Hub和交換機兩種情況下最明顯的不同。換句話說,不能正常通信時兩者連接速率為100M,正常通信時連接速率10M,是不是網線質量不好,不能以100M速率連接呢?
于是檢查一臺有問題電腦的網卡設置,速率,雙工模式為“AUTO-SENSE”,這也是現在10/100M速率自適應網卡的缺省設置。將它設為“10M,FULL”模式,這邊重新接到交換機上,馬上就一切“OK”了。而且交換機的100M速率指示燈不亮,證明經過自動協商,連接速率為10M。
至此問題真相大白:由于劣質網線連接速率提不到百兆,只能運行在10M速率,才導致這種奇怪的現象發生?,F在的10/100M自適應速率網卡和交換機或Hub,都有自動協商功能,開始連接時,先確定連接速率,只有雙方都可以運行在100M速率,才以百兆速率連接;若有一方為10M速率,則以10M速率連接。然后確定傳輸模式,既全雙工還是半雙工,選擇原則和速率選擇一樣。本例中,雙方協商速率時,由于兩邊都是10/100M,雙工,全雙工自適應,因此選擇連接速率為100M,全雙工;但由于網線質量低劣,致使通信不能正常進行。因此,只能在電腦上將網卡速率強制為10M,使雙方以10M速率連接,才能正常通信。還有一個問題是,兩邊既然不能正常通信,為什么能協商速率,雙工模式,最后能確定以100M,全雙工方式通信呢?由于查不到有關這方面的權威資料,筆者判斷,開始時雙方的協商應該是以10M速率進行,協商完成后,再確定以后合適的通信速率。