诊断和调试 LAN 拥塞/连接问题

诊断和调试 LAN 拥塞/连接问题

用于诊断和修复网络问题的前 N ​​种工具 / 方法是什么?

例如,给定一个 LAN,用户能够持续 ping 外部服务器,但任何数据密集型连接都不稳定;您将如何开始解决网络问题?

我认为拥塞、带宽限制、吞吐量限制等问题都是因素,但我不知道如何诊断这些问题。

我对 LAN 环境特别感兴趣(而不是 WAN)

答案1

这是一个非常广泛的主题,但作为入门工具,网络\数据包嗅探器是一种非常有价值的工具。有许多可用的工具。我倾向于根据网络问题的类型使用多种工具。我主要使用 Wireshark 来排除两个特定设备(客户端到服务器、服务器到服务器等)之间的问题,并使用 Colaso​​ft Capsa 来排除拥塞和利用率问题。Wireshark 非常擅长显示网络对话的细节,但在尝试“可视化”一般拥塞或利用率问题时可能会有点不知所措。Colaso​​ft Capsa 更适合“可视化”问题。

如果您遇到网络通信\性能缓慢的情况(由于拥塞和\或利用率高),您需要寻找以下内容:

大量的网络广播(在网络层或物理层)和/或大量的 TCP 重传和缓慢的确认。

大量广播可能表示 NIC、主机、交换机、软件、驱动程序等配置错误或存在故障,也可能表示网络中某处感染了恶意软件。广播可能导致拥塞,进而导致网络链路(交换机端口)利用率过高,因为每台主机都必须监听广播流量以确定流量是否发往自己。

TCP 重传和缓慢确认也是网络拥塞的征兆。拥塞会导致数据包传输和接收速度变慢,并导致“延迟”接收 ACK,从而迫使传输主机重新传输它正在等待 ACK 的数据包。如果拥塞是导致重传和缓慢确认的原因,那么可以肯定它会导致性能问题。

答案2

我使用 mtr(基于 Linux 屏幕的跟踪路由)以较慢的 ping 速率(每分钟 1 到 2 次)来监控对端点的响应。如果一个或多个交换机拥塞,则它们会显示 ping 丢失或响应缓慢。这可能是双工问题的结果。

在某些情况下,我发现 Cisco 路由器似乎在硬编码为全双工的链路上以半双工方式运行。可以通过双向传输大型文件来测试双工问题。一个方向的速度会比另一个方向慢得多。这使得无法通过网络安装软件包。

沿途转储所有接口(主机和路由器)上的错误计数器可能会有所帮助。错误计数器应为 0 或较低值,并且不会以明显的速率增加。

答案3

不确定你是否使用 Windows,但以下博客也会有所帮助,还可以从 MS 研究中获得 tcp 分析器,它非常酷。

http://blogs.technet.com/b/netmon/

http://research.microsoft.com/en-us/projects/tcpanalyzer/

答案4

如果您遇到数据密集型 TCP 传输速度变慢的情况,那么您可能正在遭受“全局同步”的影响,即线路上的所有 TCP 对话者最终都会出现 TCP 窗口大小(收到 ACK 之前允许的未完成字节数)大致同步增加的情况。

TCP 传输窗口越大,A 和 B 之间的数据传输速度就越快。当有多个主机通过单个链路发送 TCP(朝同一方向)时,此链路上使用的带宽将根据所有主机的窗口大小而波动。当链路不拥塞时,TCP 窗口大小将增加,直到数据包开始丢失(通常同时丢失所有 TCP 会话),并且 TCP 窗口大小将设置为最小大小,从而解除链路拥塞。然后,在没有拥塞的情况下,所有发送方将同步增加窗口大小。

如果您查看短间隔利用率图表,一旦使用完所有链路容量,就会从“锯齿状”上升和急剧下降中明显看出这一点。您可能需要以高于每五分钟的频率轮询 WAN 链路使用情况,我认为每分钟的统计数据可能就足够了,但您可能必须将其降至每 5-10 秒一次。

我所知道的消除此问题的最佳方法是启用加权随机早期丢弃,本质上是在 WAN 链路拥塞之前丢弃数据包,从而使 LAN 上所有主机的 TCP 窗口彼此分离。

相关内容