【问题标题】:There is a way to measure latency network in java有一种方法可以在 java 中测量延迟网络
【发布时间】:2017-07-31 12:30:35
【问题描述】:

我正在使用一个简单的程序,一开始我将在所有 MAN 主机上执行 ping 操作,以验证是否所有主机都在线(完整),但我想实现一些测量主机之间延迟的方法。有没有办法做到这一点?有什么建议吗?

无论如何,谢谢

【问题讨论】:

  • 延迟不超过 ping 请求和收到回复之间的延迟。它应该就像在此延迟之前订购您的主机一样简单。
  • 网络延迟一直在变化,测量只反映在给定时间测试的延迟。下一个测试可能有完全不同的延迟。此外,不同的协议可能具有不同的延迟。例如,ping 使用 ICMP,它在优先级列表中较低,其延迟与您可能获得的 TCP 或 UDP 延迟无关。

标签: java networking network-programming


【解决方案1】:

您可以为 pingpong 打包并简单地计算两者之间的差异。

根据定义,延迟

您可以多次重复该过程以计算其他指标,例如抖动。

以下简单的东西应该可以达到目的。

while (sentPacket < MAX_PACK_NUM) {
            // Timestamp in ms when we send it
            Date now = new Date();
            long msSend = now.getTime();
             ....
            //send ping
            socket.send(ping);
            //receive ping
            socket.receive(response);
            now = new Date();
            long msReceived = now.getTime();
            // Print the packet and the delay
            long latency= msReceived - msSend;
            ++sentPacket;
         }

【讨论】:

  • @guru_007 基本上是的。不过,它也能够收集其他指标。
  • 好的@davide Spactaro,有没有其他方法可以在网络中存在系统,比如A和B连接到同一个局域网(以太网)而没有'ping'命令。
  • 其他指标是什么意思? @Davide Spactaro
猜你喜欢
  • 2017-10-03
  • 2020-09-22
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多