【问题标题】:What is the best way to monitor available network bandwidth between 2 nodes?监控 2 个节点之间可用网络带宽的最佳方法是什么?
【发布时间】:2012-02-17 19:37:14
【问题描述】:
我需要监控两个节点之间的网络带宽。我对两端都有完全访问权限,并且可以在两端运行服务器。您能否提供一些线索,想法或相关链接。还有使用 Java(Oracle) API 编写它的可能性。
更新:-
我可以使用时间和数据包大小来计算带宽吗?例如,将已知大小(5MB)的数据发送到其他节点并接收回来。
有可能吗?
准确到什么程度?
谢谢。
【问题讨论】:
标签:
java
network-programming
bandwidth
【解决方案1】:
如果不使用所有可用带宽当然很难做到这一点。
在我的脑海中,您可以在 host1 和 host2 之间进行大型 UDP 广播,然后让 host2 向 host1 报告发送的数据包百分比以及第一个数据包和最后一个数据包之间的延迟是多少。它必须足够大以溢出内核和路由器缓冲。
如果两台服务器上的时钟同步,那么您可以通过在每个数据包中发送时间戳并在服务器上进行比较来计算延迟。另一种方法是发送几个数据包并让它们立即被服务器确认。
不确定使用这种方法可以获得什么准确度。您可以通过每隔一段时间运行此测试来调整随机背景网络负载来对其进行一些改进。