我处(是指“我这里”,不是“我处室”)最近使用一台Cisco 1721路由器替换了原有的Linksys路由器,作为局域网的出口,并用一条4M ADSL提供Internet接入。 
 
但是部署后发现上网速很慢,具体表现为: 
1、个别时候即使网络空闲,用迅雷的下载速度也只有30KB左右(正常的经过QoS后的速度应该在400KB+)。 
2、好一些的时候浏览网页可能正常,但是只要用单线程下载文件,受LLQ保护的ICMP数据包都出现了不可接受的丢包率(带宽并未占满,且LLQ中此时只有Ping的流量)。 
 
于是在网络空闲时,由一台机器进行http浏览,使用【科来网络分析系统】对网络中的数据进行抓包。 
抓包的结果表明,网络中并没有异常的流量,只是科来提示HTTP服务器响应慢,有TCP重传事件。出现这些结果就表示,网络中某个部分“可能”发生了拥塞,或者出现了其它导致数据包被丢弃的故障。 
 
起初怀疑是ADSL的问题,ADSL的终端是零售的华为MT880R,且仅用其做桥接,性能不会有问题。又检查了ADSL线路的信噪比,也在正常范围之内(下行22~24db,上行16db)。ADSL的问题基本被排除。 
 
之后又怀疑路由器的WAN接口发生了拥塞,通过命令检查,发现接口的收发负载都在可以接受的范围之内,而且软件队列和WRED的丢保量表明,接口并未发生拥塞。 
 
因为在路由器的LAN接口上做过Output QoS,便怀疑是不是QoS在作怪,但是通过命令检查,LLQ队列中的数据并没有被丢弃。(但是如症状2所述的情况仍在发生) 
 
最后,便怀疑到是否是物理接口出现了问题。这台Cisco 1721使用主板上的FE0口连接局域网,使用WIC插槽上的E0口连接ADSL猫。使用命令查看了一下E0口的状态,发现input errors很高,占总入站数据包的的比例超过0.2%,其中有大量的帧错误和CRC错误。 
 
因为E0接口当前是工作在10M全双工模式下的,因此将其设置为半双工模式,再运行测试,发现网络非常通畅,即使使用迅雷全速下载,LLQ队列中的数据丢包率也只有1%,达到了可以容忍的程度。而E0接口的input errors也一直都是0,没有再出现错误。 
 
ADSL猫的以太网口是10/100M自适应的,连接到路由器后,其指示灯已经显示接口工作在10M模式了,应该不会出现什么问题。Cisco 1721路由器的WIC-1ENET模块是国内仿造的,并非是原装产品,网线是电脑城2元钱一条的廉价成品线,这两个东西出问题的几率应该是比较大的。 
至于到底是网线的问题,还是模块的问题,还有待考证。 |