複数のマシンにpingを実行し、時間を記録するコードがあります。これはさまざまなパケットサイズ(1kbから100gb)で実行されますが、ネットワークの遅延を計算する方法を知りたいのですが、これをどのように実現できますか?
これは私がpingを測定するために使用しているコードです:
また、システムの帯域幅もどのように測定できますか?
助けてくれてありがとう!
レイテンシーと帯域幅が完全に一定である理想的なケースでは、それは単なる線形問題です。
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
帯域幅が決まりました。