我创建了一些测量延迟,数据包大小和带宽的Java代码。
计算延迟所需的等式是什么?
这是我目前使用的,但不确定它是否正确:
//latency = packetsize / delay + bandwidth
System.out.println("latency is " + (len*2) / (duration + transferRateMb));
EDIT 长度乘以2以得到正确的字节值
持续时间是ping完成所需的时间
传输率可通过以下方式找到:
double transferRateMb = ((len*524288.0) / (duration/ 1000000000.0) ) ; //amount of data in megabytes transferred in 1 second.
我已阅读各种指南,并且不理解它们,这只是项目的简单要求
这也将运行20次并取平均值
任何想法?
答案 0 :(得分:0)
我总是测量延迟。平均延迟通常不是很有趣,你真正需要知道的是延迟有多糟糕,例如百分之一,千分之一或更差的情况。为此,您需要测量每个延迟并对其进行采样(或保持最大值)。这将远远高于您的计算结果,例如:它很容易就是10倍
简而言之,您无法计算您应该关注的延迟,您必须对其进行衡量。