网络丢包问题的处理办法

一、  关于丢包问题

处理故障时,我们经常会收到网络速度慢的投诉。其实网络设备鲜少会出现由于转发包时速度减慢以致于性能受到严重影响的问题。恰恰相反,局域网比较严重的性能问题通常与丢包导致的端节点数据传输超时以及这些包的重传有关。每一次重传通常会造成秒级的延时,数千次这样的延时就会导致最终用户明显感觉访问变慢,用起来不方便。 更严重的问题,如果数据包丢掉太多,也会导致应用中断。
    而这里要强调,尽管用户体验感觉很慢,但局域网设备通常都在高速运行。也就是说,局域网设备在正常工作,是其他原因产生的延时过大。
    产生丢包的一个重要原因是网络拓扑结构本身的限制。例如,如果 20 10Mbps 客户机都试图向 10Mbps 服务器发送数据,即使网络目前正常,也会出现拥塞,导致丢包。

二、  如何定位故障

一旦遇到类似问题,我们应当如何分析定位故障点呢?我通过自己的工作经验,总结了三个方面的处理方案。

2.1  缩小问题的范围    

如果性能问题牵涉到一个或多个 WAN 链路或防火墙,那么首先应当从广域网这方面着手,通常WAN 和防火墙比局域网的故障可能性更大。
    在确定特定局域网内的性能问题时,首先应当尝试找出问题是出在局域网的某一部分上还是在通过局域网的某条路径上,可以通过相应的测试来定位故障。如果没能缩小问题的范围,还可以通过对网络不同部分的数据操作(例如文件传输)进行计时来缩小问题的范围。
    网络测试常用的工具就是 ping,使用它可以检测到网络的连通是否有问题,网络的性能是否正常。一个正常运行的网络应当能够成功(即没有超时)执行几千次 ping 操作。

2.2  查找丢包

一旦怀疑网络设备有问题时,应通过网络管理或者设备的 Web 或控制台界面获取它的错误计数器(数据统计)。然后,查找丢包。
    计数器可以非常明确地用如下名称指出丢包,例如:Drops Tx Drop Rx Frames Dropped 丢包还可能更间接地表示为与介质有关的故障,例如:FCS error CRC error Alignment Rx Runt Rx Short Event Giant Rx Too Long Rx Late Collision Tx Excessive Collision Tx Late Events Excessive Deferrals TxBabble error Loss of Carrier ,当出现其中的一个错误时,交换机或路由器就会丢弃有关的数据包。
    CRC 错误、定位错误和 runts 等数据链路错误都会出现在正常运行的网络上,如何判断这些错误是合理还是数量过多?根据经验,5,000 个中出现一个错误属于正常。例如,每 5,000 个数据包的平均接收错误(CRC,定位,runt,短,大,或者太长)不应超过 1 个。每 5,000 个数据包的平均传输错误 (late collisionexcessive collision late eventexcessive deferral,或者 loss of carrier) 不应超过 1 个。当错误率较高时,用户将查觉得到网络性能变差。 5,000 分之一的数据链路错误并不一定表示网络运行完好,而是表明这些错误可能不会产生用户能够察觉到的严重性能问题。

2.3  网络设备缓冲区问题

缓冲区问题一般是网络拓扑结构不适合网络上的流量模式所导致的结果。例如,使用 100Mb 主干线互连交换机会频繁地导致除最小网络之外所有网络上的堵塞(和缓冲区问题)。为了解决这个问题,交换机到交换机、交换机到服务器的连接应当比客户机的连接速度更快(例如 1000Mb)。

三、  解决丢包问题

    找到丢包位置,实际上就等于找到了问题的根源,解决了一半的问题,而下一步就要采取措施排除故障了。这可能涉及网络设计、电路故障、收发器故障、网卡故障或全/半双工不匹配等配置问题。

例如,在非自动协商的状态下,交换机或路由器可以正确地检测100Mbps 1000Mbps 链路,但是双工模式因无法自动协商,交换机或路由器将选择 802.3u 标准规定的通讯模式(即半双工)。 如果一个设备半双工运行,而连接另一端的设备全双工运行,在流量水平较低时这样的连接能够正常工作。当流量水平较高时,全双工设备将遇到不正常的高 CRC 或定位错误率。端节点通常将这种情况描述为“Performance seems to be approximately 1 Mbps(性能大约为 1 Mbps)”。通常,端节点将会失去与服务器的连接。
    对于设备报告的错误,它会提示可能的(尽管不是全部)根本原因。下面是几个实例。

Bad CRC Alignment:半/全双工不匹配,或者驱动程序、网卡或收发器或电缆故障
    冲突:通常流量太大,以太网无法处理。在极少的情况下可能是电缆、网卡或收发器故障导致的
    Giant Runt:网卡、网卡驱动程序或收发器故障
    Frame DroppedDrop TxDrop RxBuffer Overflow:流量大或网络设计问题
    Jabber:电缆、网卡或收发器故障

Giant:驱动程序或网卡问题


2016年08月