两个节点之间的网络波动/延迟监控

网络工程 网络 包分析 监控 sctp
2022-02-14 06:32:20

问题背景:我们的应用程序通过 SCTP 与多个其他节点通信。由于网络波动或在很短的时间内出现的过多延迟,过去报告了几次问题。持续时间的网络窥探可能有助于了解该持续时间内所有节点的行为。

我计划采取的一种方法是使用网络嗅探器、tcpdump、ngrep、wireshark 等监控 SCTP 重新传输,每 1-2 分钟将 15-30 秒的数据转储到文件中,并检查重新传输是否高于某个值阈值然后触发上述动作。此外,我想监控任何异常情况,例如更高的重传、长时间的延迟、丢包等,并在事情真正失败之前采取一些措施(可能是我在这里过于乐观)

上述方法的一个主要问题是每隔几分钟就会运行一次,不能保持运行,因为它也会消耗资源并可能影响应用程序性能,还是我们有性能影响非常低的嗅探器?当嗅探器不运行时,可能会出现波动。

监控网络和波动听起来像是其他人可能已经解决过的常见问题,希望得到一些指示以节省一些时间:)

2个回答

你没有说这是在什么样的网络上运行(任何隧道?)或运行速度是多少,但假设它不是很高(相对于你的设备)......

考虑使用以太网交换机的监控端口并在独立计算机上进行连续嗅探。这使您的实时系统免受调查 - 不要太海森堡!

连续嗅探足够长的时间比快照要好得多。

希望有帮助

编辑:wireshark 有很好的解释https://wiki.wireshark.org/CaptureSetup/Ethernet

考虑使用硬件网络分流器而不是软件分流器。我可以理解这会带来额外的复杂性,并且说服您的客户添加一个新的嗅探盒将是一个挑战,但我认为这是值得的。

网络分接头是嗅探流量的可靠且有效的方法。分路器是放置在网络中两个节点之间的无源拆分设备,因此它们不会引入延迟或改变数据的内容或结构。

设置网络分接头也不是一项复杂的任务,您只需要几根电线和插孔、网络接口和一台独立计算机即可。

希望有帮助。