我有代码ping几台机器,并记录时间,它针对各种数据包大小(1kb到100gb)执行此操作,但我想知道如何计算网络的延迟,如何实现?
这是我用来衡量ping的代码:
我如何测量系统的带宽呢?
感谢帮助人员!
答案 0 :(得分:2)
在延迟和带宽完全不变的理想情况下,这只是一个线性问题:
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
的带宽。