我有 ping 几台机器并记录时间的代码,它针对各种数据包大小(1kb 到 100gb)执行此操作,但我想知道如何计算网络的延迟,如何实现?
这是我用来测量 ping 的代码:
我还如何测量系统的带宽?
谢谢你们的帮助!
在延迟和带宽完全恒定的理想情况下,这只是一个线性问题:
delay = packetsize / bandwidth + latency
有两个变量,带宽和延迟,所以你至少需要两条不同的记录来解决它。但是,我建议为许多数据对计算它们,例如取所有结果的中值。
我认为求解上述方程应该很容易。如果没有,请随时询问。
更新:如何求解上述方程
Let
y1, y2 values for delay
x1, x2 values for packetsize
a := 1/bandwith
b := latency
y1 = a * x1 + b
y2 = a * x2 + b
=> b = y1 - a * x1 [1]
=> y2 = a * x2 + y1 - a * x1
=> a = (y2 - y1) / (x2 + x1)
Now put it in equation [1]:
=> b = y1 - (y2 - y1) / (x2 + x1)
现在你有b
延迟和1 / a
带宽。