网络环境很典型:一条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速率,才导致这种奇怪的现象发生。现在的10/100M自适应速率网卡和交换机或Hub,都有自动协商功能,开始连接时,先确定连接速率,只有双方都可以运行在100M速率,才以百兆速率连接;若有一方为10M速率,则以10M速率连接。然后确定传输模式,既全双工还是半双工,选择原则和速率选择一样。本例中,双方协商速率时,由于两边都是10/100M,双工,全双工自适应,因此选择连接速率为100M,全双工;但由于网线质量低劣,致使通信不能正常进行。因此,只能在电脑上将网卡速率强制为10M,使双方以10M速率连接,才能正常通信。还有一个问题是,两边既然不能正常通信,为什么能协商速率,双工模式,最后能确定以100M,全双工方式通信呢?由于查不到有关这方面的权威资料,笔者判断,开始时双方的协商应该是以10M速率进行,协商完成后,再确定以后合适的通信速率。