0

複数のマシンにpingを実行し、時間を記録するコードがあります。これはさまざまなパケットサイズ(1kbから100gb)で実行されますが、ネットワークの遅延を計算する方法を知りたいのですが、これをどのように実現できますか?

これは私がpingを測定するために使用しているコードです:

また、システムの帯域幅もどのように測定できますか?

助けてくれてありがとう!

4

1 に答える 1

3

レイテンシーと帯域幅が完全に一定である理想的なケースでは、それは単なる線形問題です。

delay = packetsize / bandwidth + latency

帯域幅と遅延の2つの変数があるため、それを解決するには少なくとも2つの異なるレコードが必要です。ただし、多くのデータペアについてそれらを計算し、たとえばすべての結果の中央値を取得することをお勧めします。

上記の方程式を解くのは簡単なはずだと思います。そうでない場合は、お気軽にお問い合わせください。

更新:上記の方程式を解く方法

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帯域幅が決まりました。

于 2013-03-26T14:16:42.357 に答える