网络丢包的四大原因和修复方法
网络性能问题是一个老生长谈的问题。网络是应用和数据的基础。所以一旦这一层出现问题,那么将会影响上层应用的体验。 造成网络性能问题的原因有很多种,但是在这篇文章中我们主要讨论丢包引起的网络性能问题。下面所说的引起丢包的四种原因是我们经常遇到的。
网络链接阻塞
数据在网络传输的过程中会经过很多设备和网路链接。 只要其中一个网路链接在数据传输过来之前已经满负载了,那么数据将会在这里阻塞一段时间,然后在经过网络线路传送(这也就是所谓的排队)。 如果说网络设备非常落后于这个网路链接的话,那么网路链接没有足够给新数据来等待的空间。所以它唯一能做的事情就是将信息丢掉。
"数据被丢弃"可能会听起来很残酷,但是大多数应用程序都能在不影响用户体验的情况下,很好的处理这种问题。用户端的应用程序,一旦发现丢包情况的发生, 它就会相应地降低传输速率,或者重新传输数据。如果它不是一个实时应用,那么只要丢包不是持续发生,那么受的影响都比较小。
一些应用程序在这方面处理的不好的话,那么丢包就会影响应用程序的用户体验。如果在你打电话的过程中发生丢包,由于它是一个实时性的对话,这时候没有时间 去重新发送。那么用户在丢包的时候,会发现通话断断续续,如果丢包严重的话,通话甚至可能会断掉,。另一个要低丢包率的重要程序是视频会议程序。如果两个用户端之间发生丢包,那么视频会 出现伪影,音频将会扭曲。
解决方法
我们可以通过以下两种方法来降低由网络链接阻塞引起的丢包的影响。
增加阻塞链接的带宽
使用Qos(流量优先级和资源保留控制机制)优先处理实时应用.尽管这种方法并不能缓解网络链接阻塞情况,但是它可以优先处理语音和视频来降低断线的可能性。
(路由器/交换机/防火墙/等等)的设备性能
如果带宽充足,但是如果你的路由器/交换机/防火墙不能处理流量,那么你仍然有面对丢包的情况. 让我们考虑一个场景,你刚将网络带宽从 1Gb 升级到 10Gb , 因为流量报告显示, 日高峰时期流量达到了顶点。升级之后, 你的图表显示你可以达到 1.5Gb , 但是你仍然遭受这网络性能问题。这个问题可能是应为设备能力无法处理流量, 你已经达到了你硬件所能提供的最大 的流量。
当网络数据包传送到达网络设备,但是此时网络设备的CPU,或者内存满载了,并没有能力来处理其他的数据包。这导致设备不能处理的数据包都被丢弃。
解决方法
你必须更换吞吐量更大,性能更好的网络硬件,或者构建集群来提高吞吐量。
网络设备上的软件问题(bug)
我们可能都希望我们网络设备上的软件是完美的,但是我可以肯定的告诉你事实并不是如此。这些网络设备十分复杂.你遇到bug只是时间问题而已。
当你部署的新功能的时候,这些bug可能会导致新功能无法工作,或者你在没发现网络性能问题之前的一段时间,你可能无法察觉这些bug的存在。
解决方法
你必须更新受软件问题影响的设备上的软件。
硬件或网络缆线的毛病
你的网络报告显示,你的网络链接并没有过载,硬件也没有违规使用。另外一个常见的导致丢包的问题可能是由物理组件的故障引起的。
如果硬件故障,那么它通常会在设备终端上或者系统日志中输出错误信息。
如果是网络链接错误,一般是网络接口出错。这可以在铜缆线和光纤上检测到。
解决方法
故障的硬件必须更换, 故障的网络链接必须修复。
这些是网络丢包的常见原因。但是其他很多原因也会导致丢包。确定根源的最好的方法就是通过网络评估和彻底的故障排查。
一个擅长于发现的各种网络的问题的伙伴可以帮助你制定补救策略, 让你免受糟糕的网络的困扰。