我需要监控两个节点之间的网络带宽。我有两端的完全访问权限,可以在两端运行服务器。你能提供一些线索,想法或相关链接吗?还有使用Java(Oracle)API编写它的可能性。
更新: -
我可以使用时间和数据包大小来计算带宽。类似于,将已知大小(5MB)的数据发送到其他节点并将其接收回来。 有可能吗? 多么准确?
谢谢。
答案 0 :(得分:1)
如果不使用所有可用带宽当然很难做到这一点。
在我的脑海中,您可以在host1和host2之间进行大型UDP广播,然后让host2向主机1报告发送数据包的百分比以及第一个和最后一个数据包之间的延迟。它必须足够大才能溢出内核和路由器缓冲。
如果两台服务器上的时钟同步,那么您可以通过在每个数据包中发送时间戳并在服务器上比较它们来计算延迟。另一种方法是发送几个数据包并让它们立即被服务器确认。
不确定使用这种方法可以获得什么样的准确度。您可以通过每隔一段时间运行此测试来改进它,以调整随机后台网络负载。