java - 如何计算延迟

标签 java networking

<分区>

我已经创建了一些 Java 代码来测量延迟、数据包大小和带宽。

计算延迟所需的方程式是什么?

这是我目前使用的但不确定它是否正确:

//latency = packetsize / delay + bandwidth 
System.out.println("latency is " + (len*2) / (duration + transferRateMb));

编辑 长度乘以 2 以给出以字节为单位的正确值

duration 是 ping 完成所用的时间

传输速率由 :

double transferRateMb = ((len*524288.0) / (duration/ 1000000000.0) ) ; //amount of data in megabytes transferred in 1 second. 

看了各种攻略,看不懂,这只是一个简单的项目需求

同样这将运行 20 次并取平均值

有什么想法吗?

最佳答案

我总是测量延迟。平均延迟通常不是很有趣,您真正需要知道的是延迟有多糟糕,例如100 分之一、1000 分之一或更糟的情况。为此,您需要测量每个单独的延迟并对其进行采样(或保持最大值)这将远远高于您的计算,例如它很容易是 10 倍

简而言之,您无法计算您应该关心的延迟,您必须测量它。

关于java - 如何计算延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16026137/

相关文章:

java - 如何阻止某人在java方法上输入特定值?

java - SimpleDateFormat 用 'Z' 文字解析日期

java - 从 32 位 java 运行 64 位 Windows 命令

haskell - 主机字节顺序和网络的 HostAddress6

有效网络掩码的 c 代码

java.lang.NoClassDefFoundError : org/slf4j/impl/StaticLoggerBinder SBT Scala

java - string.toUppercase() 在堆或字符串池中创建了一个新对象

python - 在 TOR 中选择特定的导出节点(使用 Python 代码)

c++ - 32 位到 16 位浮点转换

Java 和 TCP 消息 - 每次在不同端口发送的消息