如何计算延迟

use*_*929 6 java networking

我创建了一些Java代码来测量延迟,数据包大小和带宽.

计算延迟所需的等式是多少?

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

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

编辑长度乘以2以得到正确的字节值

duration是ping完成所需的时间

转移率由以下公民发现:

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

我已经阅读了各种指南,并且不理解它们,这只是项目的一个简单要求

这也将运行20次并取平均值

有任何想法吗 ?

Pet*_*rey 0

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

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